Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

13 страниц V  « 4 5 6 ... 11 12 »

[Бесплатно] Скриптинг

Статус пользователя vovan4ik1997
сообщение 28.1.2014, 15:24
Сообщение #81


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

Вот есть плагин Код:
#include <amxmodx>
#include <dhudmessage>
#include <wordending>

new num=0;
public plugin_init()
{
register_plugin("First Round Restart", "0.1beta", "Mr. Frost");
register_cvar("sv_restartfirstround","30");
set_task(1.0, "print_dhud", 123094, "", 0, "a", get_cvar_num("sv_restartfirstround"));
set_task(float(get_cvar_num("sv_restartfirstround")), "clsv_restart");
}

public print_dhud()
{
new n=get_cvar_num("sv_restartfirstround")-num,
msg[512];
new str[512];
get_ending(
n, // Число
"секунд", // Мн. ч., Род. п.
"секунда", // Н. ф.
"секунды", // Ед. ч., Род. п.
sizeof str-1, // Длина
str // Переменная
);
format(msg, 511, "До рестарта осталось %d %s", n, str);
set_dhudmessage(255, 255, 255, -1.0, -1.0, 0, 0.0, 1.0, 0.0, 0.0);
show_dhudmessage(0, msg);
num++;
}

public clsv_restart() server_cmd("sv_restartround 1")

Он ставит нормальное окончание слов после цифр.
Такое же мне надо, но в плагине есть откуда браться числу n , у меня же нету. Приложу пример , где нужно ставить правильное окончание:
Пример
Код:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <wordending>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Роман"
new num=0;
new kills[33]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

RegisterHam(Ham_Killed,"player","ham_player_kill")
}
public client_connect(id)
{
Task_Player(id)
}
public ham_player_kill(victim, attacker)
{
if( attacker == victim || !attacker )
return HAM_IGNORED;
if(is_user_connected(victim))
kills[victim] = 0;
if(is_user_connected(attacker))
kills[attacker]++;
return HAM_IGNORED;
}


stock Task_Player(const id)
{
if(task_exists(id + 123321))
remove_task(id + 123321)

set_task(1.0, "HudInfo", id + 123321, _, _, "b")
}
public HudInfo(id)
{

new str[512];
get_ending(
n,
"фрагов",
"фраг",
"фрага"
sizeof str-1,
str
);
id -= 123321

set_hudmessage(65, 107, 235, 0.01, 0.89, 0 , 6.0, 1.1)
show_hudmessage(id, "Набрано: %d %s",kills[id], str)

}

Инклюды и код взят от сюда ТЫК

Отредактировал: vovan4ik1997, - 28.1.2014, 15:26


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 28.1.2014, 15:47
Сообщение #82
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

как же нету n

а это что ? new n=get_cvar_num("sv_restartfirstround")-num,


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 28.1.2014, 16:00
Сообщение #83


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

csnet, в первом есть, а туда, где мне нужно использовать данную функцию - нету. Смотри пример


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 28.1.2014, 16:20
Сообщение #84
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

у тебя все верно по идее, число n = целое в первом примере и отображается как %d / слово - ето string оботражается как %s
поетому в 1м примере %d %s
и во втором также, причем во втором kills = num = %d , и твой %s ( string )

в обоих случаях - %d %s верно. единственно что в 1м примере секунды могут быть как float возможно стоит сделать floatround(n)
во 2м случае твой n это уже существующий подсчет убийств ( kills )

Код:
 format(msg, 511, "До рестарта осталось %d  %s",  floatround(n) , str);  


Отредактировал: csnet, - 28.1.2014, 16:23


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 28.1.2014, 16:29
Сообщение #85


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

Мне нужно во втором сделать правильный вывод окончания слова , вот добавил еще и n. Вроде бы все верно, но ерор пишет на эту строку
get_ending(
Код:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <wordending>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Роман"
new num=0;
new kills[33]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

RegisterHam(Ham_Killed,"player","ham_player_kill")
}
public client_connect(id)
{
Task_Player(id)
}
public ham_player_kill(victim, attacker)
{
if( attacker == victim || !attacker )
return HAM_IGNORED;
if(is_user_connected(victim))
kills[victim] = 0;
if(is_user_connected(attacker))
kills[attacker]++;
return HAM_IGNORED;
}


stock Task_Player(const id)
{
if(task_exists(id + 123321))
remove_task(id + 123321)

set_task(1.0, "HudInfo", id + 123321, _, _, "b")
}
public HudInfo(id)
{
new n=kills[id]
new str[512];
get_ending(
n,
"фрагов",
"фраг",
"фрага"
sizeof str-1,
str
);
id -= 123321

set_hudmessage(65, 107, 235, 0.01, 0.89, 0 , 6.0, 1.1)
show_hudmessage(id, "Набрано: %d %s",kills[id], str)

}


Но не хочет компилировать, хотя первый пример отлично скомпилировал.
пс. Первый плагин был показан, как рабочий пример)
upd:
Плагин скомпилировал, ошибка была в недостающей запятой после "фрага" ,

Отредактировал: vovan4ik1997, - 28.1.2014, 16:33


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 28.1.2014, 17:07
Сообщение #86
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

n = kills[id] неверно.


kills уже указан как глобальный массив[33], значит он будет доступен в любой функции плагина
добавлять n не нужно вообще, и так должно работать

попробуй get_ending ( kills[id]

Отредактировал: csnet, - 28.1.2014, 17:53


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 28.1.2014, 17:31
Сообщение #87


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

csnet, нужно. Там в зависимости от числа ставит окончание верное. Можешь глянуть инклюд
Рабочий вариант
Код:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <wordending>

#define PLUGIN "show frags"
#define VERSION "1.0"
#define AUTHOR "vovan4ik199729"

new kills[33]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

RegisterHam(Ham_Killed,"player","ham_player_kill")
}
public client_connect(id)
{
Task_Player(id)
}
public ham_player_kill(victim, attacker)
{
if( attacker == victim || !attacker )
return HAM_IGNORED;
if(is_user_connected(victim))
kills[victim] = 0;
if(is_user_connected(attacker))
kills[attacker]++;
return HAM_IGNORED;
}


stock Task_Player(const id)
{
set_task(1.0, "HudInfo", id, _, _, "b")
}
public HudInfo(id)
{
new n=kills[id]
new str[512];
get_ending(
n,
"фрагов",
"фраг",
"фрага",
sizeof str-1,
str
);

set_hudmessage(65, 107, 235, 0.01, 0.89, 0 , 6.0, 1.1)
show_hudmessage(id, "Набрано: %d %s",kills[id], str)

}


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 28.1.2014, 17:49
Сообщение #88
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

чем так не устраивало?

Код:
  new str[512];
get_ending(
kills[id],
"фрагов",
"фраг",
"фрага",
sizeof str-1,
str
);




проверил работает как надо

Отредактировал: csnet, - 28.1.2014, 17:52


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя C1_
сообщение 28.1.2014, 17:55
Сообщение #89


Стаж: 18 лет

Сообщений: 978
Благодарностей: 401
Полезность: 830

Цитата
C1_,
Если я вас правильно понял, держите.


Совсем неправильно )

Я имел ввиду логи сервера (cstrike/logs)

Скрытый текст
Код:
/* Vehicle Kills 1.25 by Damaged Soul

AMX Mod X Version: 1.75 and above
Supported Mods: Counter-Strike 1.6 and Condition Zero

This file is provided as is (no warranties).

***************
* Description *
***************
This plugin allows players to see death messages that can show who killed whom with a vehicle.

********************
* Required Modules *
********************
Cstrike
Fakemeta

*********
* Usage *
*********
Cvars:
amx_vk_frags [Default Value: 1]
- Determines how many frags a player gets for killing someone on the other team
with a vehicle

amx_vk_tkpenalty [Default Value: 1]
- Determines how many frags a player loses for killing someone on the same team
with a vehicle

amx_vk_tkpunish [Default Value: 0]
- Determines whether or not to instantly kill a player when they kill a teammate with
a vehicle
- If set to 1, a TKer will be killed directly after killing someone on the same team with
a vehicle
- If set to 0, then the plugin will do nothing directly after killing someone on the same
team with a vehicle

amx_vk_version
- Shows the version of the plugin

*******************
* Version History *
*******************
1.25 [July 4, 2006]
- Added: amx_vk_version cvar for more easily finding a server with this plugin
- Death messages are now also done via emessage_begin which now allows team kill plugins, such
as ATAC, to detect vehicle kills. This should allow things such as forgiving the team kill.
- No longer relies on the Engine module

1.22 [Apr. 26, 2006]
- Added: amx_vk_tkpunish cvar that when set to 1 will instantly kill a player after they kill
a teammate
- Fixed: No death message appeared when there was a suicide involving a vehicle (somehow the
bug returned or wasn't fixed properly the first time)

1.21 [Apr. 23, 2006]
- Fixed: As a side effect of replacing suicides with vehicle deaths in the HL logs, chat
logging (as well as most logged information from CS/CZ) was blocked

1.20 [Apr. 21, 2006]
- Minor optimizations to code
- Now uses the pcvar natives for getting values of cvars
- Fixed: Runtime errors involving invalid players
- Fixed: When a true suicide involving a vehicle occurred no death message appeared at all
- Fixed: Vehicle deaths were still being reported as suicides in standard HL logs

1.10 [Oct. 7, 2004]
- Public release
- Changed to no longer rely on fun module
- Added: amx_vk_tkpenalty cvar for how many frags to subtract for team killing with a vehicle

1.00 [Oct. 4, 2004]
- Initial version
*/

#include <amxmodx>
#include <cstrike>
#include <fakemeta>

// Plugin information constants
new const PLUGIN[] = "Vehicle Kills"
new const AUTHOR[] = "Damaged Soul"
new const VERSION[] = "1.25"

// Message IDs
new g_msgDeathMsg, g_msgScoreInfo
// Cvar pointers
new g_cvarFrags, g_cvarTkPenalty, g_cvarTkPunish

// Has a death involving a vehicle occurred?
new bool:g_vehicleDeathHasOccurred = false
// Victim and killer entity indicies for when a vehicle death occurs
new g_vehicleVictim = 0, g_vehicleKiller = 0

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_cvar("amx_vk_version", VERSION, FCVAR_SERVER|FCVAR_SPONLY)
g_cvarFrags = register_cvar("amx_vk_frags", "1", FCVAR_SERVER)
g_cvarTkPenalty = register_cvar("amx_vk_tkpenalty", "1", FCVAR_SERVER)
g_cvarTkPunish = register_cvar("amx_vk_tkpunish", "0", FCVAR_SERVER)

g_msgDeathMsg = get_user_msgid("DeathMsg")
g_msgScoreInfo = get_user_msgid("ScoreInfo")

register_message(g_msgDeathMsg, "hookmsg_death")
register_message(g_msgScoreInfo, "hookmsg_scoreinfo")
register_forward(FM_AlertMessage, "hook_alertmessage")
}

public hookmsg_death(msgid, msgdest, msgargs)
{
new weapon[32]
get_msg_arg_string(4, weapon, 31)

// Vehicle death message has occurred so block it
if (equal(weapon, "vehicle"))
{
g_vehicleDeathHasOccurred = true

// Get the victim of the vehicle death
g_vehicleVictim = get_msg_arg_int(2)

return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE
}

public hookmsg_scoreinfo(msgid, msgdest, msgargs)
{
// If vehicle death message hasn't occurred, skip this
if (!g_vehicleDeathHasOccurred) return PLUGIN_CONTINUE

// If this message was not sent to the MSG_BROADCAST (unreliable to all) channel...
// Then we know it's the ScoreInfo for the killer
if (msgdest != MSG_BROADCAST)
g_vehicleKiller = get_msg_arg_int(1) // Get killer
else
set_task(0.1, "score_delay") // Delay new DeathMsg and ScoreInfo

return PLUGIN_CONTINUE
}

public hook_alertmessage(atype, msg[])
{
if (contain(msg, ">^" committed suicide with ^"vehicle^" (world)") > 0)
return FMRES_SUPERCEDE

return FMRES_IGNORED
}

public score_delay()
{
if (!is_user_connected(g_vehicleVictim) || (g_vehicleKiller > 0 && !is_user_connected(g_vehicleKiller)))
return

// Send new death message showing who killed who using a vehicle
message_begin(MSG_ALL, g_msgDeathMsg, {0,0,0}, 0)
write_byte(g_vehicleKiller) // Killer
write_byte(g_vehicleVictim) // Victim
write_byte(0) // Headshot
write_string("vehicle") // Weapon
message_end()

// Send new death message to all hooks (such as team kill plugins)
emessage_begin(MSG_ALL, g_msgDeathMsg, {0,0,0}, 0)
ewrite_byte(g_vehicleKiller) // Killer
ewrite_byte(g_vehicleVictim) // Victim
ewrite_byte(0) // Headshot
ewrite_string("vehicle") // Weapon
emessage_end()

log_kill(g_vehicleKiller, g_vehicleVictim, "vehicle")

// If we have a killer and it wasn't a suicide then update frag count of killer
if (g_vehicleKiller)
{
new newFragCount
new killerTeam = get_user_team(g_vehicleKiller)

// If player has committed team kill, subtract amx_vk_tkpenalty
// If player has committed kill on a player of other team, add amx_vk_frags
if (killerTeam == get_user_team(g_vehicleVictim))
{
newFragCount = get_user_frags(g_vehicleKiller) - (get_pcvar_num(g_cvarTkPenalty) - 1)

if (get_pcvar_num(g_cvarTkPunish) != 0)
{
// Reset internal TK flag because we don't want the game to handle it
cs_set_user_tked(g_vehicleKiller, 0, 0)
// Now slay TKer
user_kill(g_vehicleKiller)

new name[32]
get_user_name(g_vehicleKiller, name, 31)

// Print message saying why player was killed
client_print(0, print_chat, "%s has been slain for killing a teammate with a vehicle", name)
}
}
else
newFragCount = get_user_frags(g_vehicleKiller) + (get_pcvar_num(g_cvarFrags) - 1)

// Set new frag count for killer
set_pev(g_vehicleKiller, pev_frags, float(newFragCount))

// Update the scoreboard
message_begin(MSG_ALL, g_msgScoreInfo, {0,0,0}, 0)
write_byte(g_vehicleKiller) // Player ID
write_short(newFragCount) // Frags
write_short(cs_get_user_deaths(g_vehicleKiller)) // Deaths
write_short(0) // Not sure what this is for
write_short(killerTeam) // Team
message_end()
}


// Reset vehicle death check
g_vehicleDeathHasOccurred = false
// Reset entity indices
g_vehicleVictim = 0
g_vehicleKiller = 0
}

log_kill(killer, victim, const weapon[])
{
new vname[32], vauth[40], vteam[10]

// Get necessary information about victim for the log
get_user_name(victim, vname, 31)
get_user_authid(victim, vauth, 39)
get_user_team(victim, vteam, 9)

if (killer)
{
new kname[32], kauth[40], kteam[10]

// Get necessary information about killer for the log
get_user_name(killer, kname, 31)
get_user_authid(killer, kauth, 39)
get_user_team(killer, kteam, 9)

// We have a killer and victim involved, so log both of them in this line
log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"",
kname, get_user_userid(killer), kauth, kteam,
vname, get_user_userid(victim), vauth, vteam, weapon)
}
else
{
// Log a suicide death
log_message("^"%s<%d><%s><%s>^" committed suicide with ^"%s^"",
vname, get_user_userid(victim), vauth, vteam, weapon)
}

}


176, 228 строки - как пример

итог
L 01/28/2014 - 19:20:37: "[POD]Pseudolukian (90)<3><BOT><TERRORIST>" killed "player<1><STEAM_ID_LAN><TERRORIST>" with "sg552"


вот так должно выглядеть, вместо "sg552" - "hegrenade" или "flashbang" или "smokegrenade"

Проблема с ATAC : можно безнаказанно убивать своих, в плагине выше как раз таки если задавишь своего, то ATAC реагирует на это как обычно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Serhiyyy
сообщение 28.1.2014, 17:59
Сообщение #90
Стаж: 16 лет

Сообщений: 402
Благодарностей: 48
Полезность: 114

Здравствуйте.
Если возможно, помогите написать плагин "Рекламы"
Плагин показывает рекламу после смерти или когда находишься в наблюдателях. И что бы поочерёдно выводились рекламы....
Cкрин:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя proff_q
сообщение 28.1.2014, 18:22
Сообщение #91
Стаж: 14 лет

Сообщений: 357
Благодарностей: 263
Полезность: 804

C1_,
Теперь лог должен работать. На счет АТАС, как я понял, меню/наказание вызывается в момент смерти игрока, по идеи мы подделываем deathmsg и по идеи движок должен воспринять смерть игрока от товарища по команде, и АТАС должен выводить меню. Не знаю, почему этого не происходит. Возможно кто-то более знающий подскажет.
Код:
#include <amxmodx>  
#include <fakemeta>

#define MINSPEED 400.0

new gCurrentNade, c_he, c_flash, c_smoke, c_ff

new const he_model[] = "models/w_hegrenade.mdl"
new const flash_model[] = "models/w_flashbang.mdl"
new const smoke_model[] = "models/w_smokegrenade.mdl"
new const metal_sound[] = "weapons/ric_metal-1.wav"
new const flesh_sound[] = "player/bhit_flesh-1.wav"

public plugin_init()
{
register_plugin("Grenades Are Heavy", "1.01 fakemeta", "AssKicR, AlexBreems")

register_event("HLTV", "newRound", "a", "1=0", "2=0")
register_forward(FM_Touch, "touch")

c_he = register_cvar("amx_heimpactdmg","10")
c_flash = register_cvar("amx_fbimpactdmg","10")
c_smoke = register_cvar("amx_sgimpactdmg","10")
c_ff = register_cvar("amx_obeyff", "1")
}

public plugin_precache()
{
precache_sound(metal_sound)
precache_sound(flesh_sound)
}

public newRound()
gCurrentNade=0


public touch(ptr, ptd)
{
if(pev_valid(ptr) && ptd!=0 && ptr!=0)
{
static ptrname[32], ptdname[32], ptrModel[32], ptrOwner
static bool:HitFriend, ObeyFF, FFOn
pev(ptr, pev_classname, ptrname, 31)
pev(ptd, pev_classname, ptdname, 31)

if(equal(ptrname, "grenade") && equal(ptdname, "player"))
{
if(gCurrentNade != ptr)
{
gCurrentNade=ptr
ptrOwner = pev(ptr, pev_owner)

HitFriend=false
ObeyFF = get_pcvar_num(c_ff) ? 1:0
FFOn = get_cvar_num("mp_friendlyfire") ? 1:0

if(!FFOn && ObeyFF)
{
if(get_user_team(ptd) == get_user_team(ptrOwner))
HitFriend=true
}

if(!HitFriend)
{
pev(ptr, pev_model, ptrModel, 31)

static Float:Vel[3], Float:speed
pev(ptr, pev_velocity, Vel)
speed = vector_length(Vel)

if(speed>MINSPEED)
{
if(equali(ptrModel, he_model))
{
emit_sound(ptr, CHAN_ITEM, metal_sound, 0.7, ATTN_NORM, 0, PITCH_NORM)
emit_sound(ptd, CHAN_BODY, flesh_sound, 0.7, ATTN_NORM, 0, PITCH_NORM)
ImpactDamage(ptd,ptr)
ScreenShake(ptd, 14, 14, 14)
ExtraDamage(ptd, ptrOwner, get_pcvar_float(c_he), "hegrenade")
}else
if(equali(ptrModel, flash_model))
{
emit_sound(ptr, CHAN_ITEM, metal_sound, 0.7, ATTN_NORM, 0, PITCH_NORM)
emit_sound(ptd, CHAN_BODY, flesh_sound, 0.7, ATTN_NORM, 0, PITCH_NORM)
ImpactDamage(ptd,ptr)
ScreenShake(ptd, 14, 14, 14)
ExtraDamage(ptd, ptrOwner, get_pcvar_float(c_flash), "flashbang")
}else
if(equali(ptrModel, smoke_model))
{
emit_sound(ptr, CHAN_ITEM, metal_sound, 0.7, ATTN_NORM, 0, PITCH_NORM)
emit_sound(ptd, CHAN_BODY, flesh_sound, 0.7, ATTN_NORM, 0, PITCH_NORM)
ImpactDamage(ptd,ptr)
ScreenShake(ptd, 14, 14, 14)
ExtraDamage(ptd, ptrOwner, get_pcvar_float(c_smoke), "smokegrenade")
}
}
}
}
}
}
}

public ExtraDamage(id, attacker, Float:damage, weaponDescription[])
{
if(is_user_alive(id))
{
new Float:newHealth = pev(id, pev_health) - damage

if(newHealth<1.0)
{
user_silentkill(id)

log_kill(attacker, id, "weaponDescription")

if(get_user_team(id) == get_user_team(attacker))
set_pev(attacker, pev_frags, pev(attacker, pev_frags)-1.0)
else
set_pev(attacker, pev_frags, pev(attacker, pev_frags)+1.0)

make_deathmsg(attacker, id, 0, weaponDescription)

refresh_scoreboard(attacker)
refresh_scoreboard(id)
}

set_pev(id, pev_health, newHealth)
}
}

stock ScreenShake(id, amplitude, duration, frequency)
{
if(is_user_alive(id))
{
message_begin(MSG_ONE, 97, {0,0,0}, id)
write_short(1<<amplitude)
write_short(1<<duration)
write_short(1<<frequency)
message_end()
}
}

stock ImpactDamage(id, grenadeid)
{
if(is_user_alive(id))
{
new Float:gorigin[3], origin[3]
pev(grenadeid, pev_origin, gorigin)
origin[0]=floatround(gorigin[0])
origin[1]=floatround(gorigin[1])
origin[2]=floatround(gorigin[2])

message_begin(MSG_ONE, 71, {0,0,0}, id)
write_byte(30) // dmg_save
write_byte(30) // dmg_take
write_long(0) // visibleDamageBits
write_coord(origin[0]) // damageOrigin.x
write_coord(origin[1]) // damageOrigin.y
write_coord(origin[2]) // damageOrigin.z
message_end()
}
}

stock refresh_scoreboard(id)
{
message_begin(MSG_ALL, 85)
write_byte(id)
write_short(get_user_frags(id))
write_short(get_user_deaths(id))
write_short(0)
write_short(get_user_team(id))
message_end()
}

log_kill(killer, victim, const weapon[])
{
new vname[32], vauth[40], vteam[10]

// Get necessary information about victim for the log
get_user_name(victim, vname, 31)
get_user_authid(victim, vauth, 39)
get_user_team(victim, vteam, 9)

if (killer)
{
new kname[32], kauth[40], kteam[10]

// Get necessary information about killer for the log
get_user_name(killer, kname, 31)
get_user_authid(killer, kauth, 39)
get_user_team(killer, kteam, 9)

// We have a killer and victim involved, so log both of them in this line
log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"",
kname, get_user_userid(killer), kauth, kteam,
vname, get_user_userid(victim), vauth, vteam, weapon)
}
else
{
// Log a suicide death
log_message("^"%s<%d><%s><%s>^" committed suicide with ^"%s^"",
vname, get_user_userid(victim), vauth, vteam, weapon)
}

}

stefkone,
Вот попробуйте, как предложил csnet.
Прикрепленный файл  nademodes.sma ( 121,86 килобайт ) Кол-во скачиваний: 6


Отредактировал: proff_q, - 28.1.2014, 18:29
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 28.1.2014, 18:25
Сообщение #92


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

Serhiyyy, подробнее , как должно показывать. Точнее какой интервал между сообщениями
csnet, сначала заработал мой метод, потом глянул, что ты написал, тоже работает. Так что спасибо за помощь ok.gif


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Serhiyyy
сообщение 28.1.2014, 18:34
Сообщение #93
Стаж: 16 лет

Сообщений: 402
Благодарностей: 48
Полезность: 114

Цитата(vovan4ik1997 @ 28.1.2014, 18:25) *
Serhiyyy, подробнее , как должно показывать. Точнее какой интервал между сообщениями

Я же скрин прикрепил! Интервал 60 сек, если можно сделать в кварах что бы можно было изменить! thank_you2.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 28.1.2014, 18:47
Сообщение #94


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

Serhiyyy,предлагаю такой вариант плагина. Протестируй

upd: пару багов, щас выложу новый
upd2: вторая версия, если надо будет жирным шрифтом ,то добавишь в начало
#include <dhudmessage>
и это
Код:
set_hudmessage(255, 0, 0, -1.0, 0.86, 0, 1.0, 5.0, 0.1, 1.0, -1);
show_hudmessage(id, TTmessage[random_num(0, charsmax(TTmessage))]);

заменить на это
Код:
set_dhudmessage(255, 0, 0, -1.0, 0.86, 0, 1.0, 5.0, 0.1, 1.0, -1);
show_dhudmessage(id, TTmessage[random_num(0, charsmax(TTmessage))]);



Код:
#include <amxmodx>

#define PLUGIN "set_hudmessage"
#define VERSION "1.0"
#define AUTHOR "vovan4ik"


new TTmessage[][] =
{
"СООБЩЕНИЕ T #1",
"СООБЩЕНИЕ T #2",
"СООБЩЕНИЕ T #3",
"СООБЩЕНИЕ T #4",
"СООБЩЕНИЕ T #5",
"СООБЩЕНИЕ T #6"
}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
set_task(5.0, "func", 0, _, _, "b")
}

public func(id)
{
for(new id = 1; id <= get_playersnum(); id++)
if(get_user_team(id) == 3 ||!is_user_alive(id))
{
set_hudmessage(255, 0, 0, -1.0, 0.86, 0, 1.0, 5.0, 0.1, 1.0, -1);
show_hudmessage(id, TTmessage[random_num(0, charsmax(TTmessage))]);
}

}

Интервал задавать тут set_task(5.0, "func", 0, _, _, "b")

Отредактировал: vovan4ik1997, - 28.1.2014, 19:40


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя csnet
сообщение 28.1.2014, 19:55
Сообщение #95
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

лучше не 0 index а
в

func() {

get_players "b" ( мертвых , заодно и спектов должно захватить )
и далее message

Отредактировал: csnet, - 28.1.2014, 19:57


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Serhiyyy
сообщение 28.1.2014, 21:37
Сообщение #96
Стаж: 16 лет

Сообщений: 402
Благодарностей: 48
Полезность: 114

Цитата(vovan4ik1997 @ 28.1.2014, 18:47) *
Serhiyyy,предлагаю такой вариант плагина. Протестируй

upd: пару багов, щас выложу новый
upd2: вторая версия, если надо будет жирным шрифтом ,то добавишь в начало
#include <dhudmessage>
и это
Код:
set_hudmessage(255, 0, 0, -1.0, 0.86, 0, 1.0, 5.0, 0.1, 1.0, -1);
show_hudmessage(id, TTmessage[random_num(0, charsmax(TTmessage))]);

заменить на это
Код:
set_dhudmessage(255, 0, 0, -1.0, 0.86, 0, 1.0, 5.0, 0.1, 1.0, -1);
show_dhudmessage(id, TTmessage[random_num(0, charsmax(TTmessage))]);



Код:
#include <amxmodx>

#define PLUGIN "set_hudmessage"
#define VERSION "1.0"
#define AUTHOR "vovan4ik"


new TTmessage[][] =
{
"СООБЩЕНИЕ T #1",
"СООБЩЕНИЕ T #2",
"СООБЩЕНИЕ T #3",
"СООБЩЕНИЕ T #4",
"СООБЩЕНИЕ T #5",
"СООБЩЕНИЕ T #6"
}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
set_task(5.0, "func", 0, _, _, "b")
}

public func(id)
{
for(new id = 1; id <= get_playersnum(); id++)
if(get_user_team(id) == 3 ||!is_user_alive(id))
{
set_hudmessage(255, 0, 0, -1.0, 0.86, 0, 1.0, 5.0, 0.1, 1.0, -1);
show_hudmessage(id, TTmessage[random_num(0, charsmax(TTmessage))]);
}

}

Интервал задавать тут set_task(5.0, "func", 0, _, _, "b")


Спасибо. Но немножко не понял. Пожалуйста, подскажите как правильно настроить, чтобы каждые 60 секунд реклама менялась?

Спасибо.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя proff_q
сообщение 28.1.2014, 21:51
Сообщение #97
Стаж: 14 лет

Сообщений: 357
Благодарностей: 263
Полезность: 804

Serhiyyy,
set_task(5.0, "func", 0, _, _, "b")

на

set_task(60.0, "func", 0, _, _, "b")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nickk
сообщение 28.1.2014, 21:51
Сообщение #98
Стаж: 13 лет

Сообщений: 438
Благодарностей: 120
Полезность: 523

Код
set_task(5.0, "func", 0, _, _, "b")

5.0 - время в секундах. Его и меняйте.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя poolday
сообщение 28.1.2014, 21:59
Сообщение #99


Стаж: 13 лет

Сообщений: 292
Благодарностей: 297
Полезность: 658

Если есть возможность напиши - Буду Благодарен
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 28.1.2014, 23:02
Сообщение #100


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

poolday, завтра с утра посмотрю, что можно сделать и скину в эту тему


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
13 страниц V  « 4 5 6 ... 11 12 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: