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

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

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

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

ZP айтем через чат

Статус пользователя Fred Perry
сообщение 25.8.2013, 12:49
Сообщение #1


Иконка группы

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Всем здарова.

Помогите реализовать покупка ЗП предмета через чат (команда say /invis) за Аммо-Паки

Код:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <zombieplague>

#define PLUGIN "[EI] Stealth"
#define VERSION "1.0"
#define AUTHOR "Doomsday"

#define STEALTH 8.0

new g_item_stealth, name[32]

new const sound_stealth[] = { "cfg/pressure_female.wav" }

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

g_item_stealth = zp_register_extra_item("Невидимость \r8сек", 8, ZP_TEAM_ANY)

}

public plugin_precache()
{
precache_sound(sound_stealth)
}

public zp_extra_item_selected(Player, itemid)
{
if (itemid == g_item_stealth)
{
set_user_rendering ( Player, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0 )

get_user_name(Player, name, 31)
print(0, "^x04[ZP]^x03 %s ^x01 невидимый!", name)
client_cmd(Player, "spk %s", sound_stealth)
set_task( STEALTH , "remove_stealth", Player)
}
}

public remove_stealth(Player)
{
get_user_name(Player, name, 31)
set_user_rendering(Player)
print(0, "^x04[ZP]^x03 %s ^x01 невидимость окончена", name)
}

stock print(const id, const input[], any:...)
{

new iCount = 1, iPlayers[32]

static szMsg[191]
vformat(szMsg, charsmax(szMsg), input, 3)

replace_all(szMsg, 190, "^x04", "^4") // green txt
replace_all(szMsg, 190, "^x01", "^1") // orange txt
replace_all(szMsg, 190, "^x03", "^3") // team txt
replace_all(szMsg, 190, "^x00", "^0") // team txt

if(id) iPlayers[0] = id
else get_players(iPlayers, iCount, "ch")

for (new i = 0; i < iCount; i++)
{
if (is_user_connected(iPlayers[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, iPlayers[i])
write_byte(iPlayers[i])
write_string(szMsg)
message_end()
}
}
}


Гнилой фашистской нечисти
Загоним пулю в лоб,
Отродью человечества
Сколотим крепкий гроб!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Fred Perry
сообщение 26.8.2013, 12:39
Сообщение #2


Иконка группы

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Вот подскажите, правильно ли я делаю.

Cначала регистрируем команду
Код:
public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)
register_clcmd("say /invis", "buy_invis")
g_item_stealth = zp_register_extra_item("Невидимость \r8сек", 8, ZP_TEAM_ANY)

}


Далее такой кусок
Код:
public buy_invis(Player)
{
if (!zp_has_round_started()) //проверка до первого зомби
{
ChatColor(id, "!g[ZP]!y !tРаунд ещё не начался!!y")
return PLUGIN_CONTINUE
}

if (cs_get_user_team(Player) == CS_TEAM_SPECTATOR) //проверка на спектры
{
ChatColor(id, "!g[ZP]!y Покупка брони доступна !tтолько для живых!y!")
return PLUGIN_CONTINUE
}

if ( !is_user_alive(Player) ) //проверка на живучесть
{
ChatColor(id, "!g[ZP]!y Покупка брони доступна !tтолько для живых!y!")
return PLUGIN_CONTINUE
}

if(zp_get_user_ammo_packs(Player) < COST) // Проверка на аммо
{
ChatColor(id, "!g[ZP]!y !tНе хватает!y аммо!")
return PLUGIN_CONTINUE
}

set_user_rendering ( Player, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0 )

get_user_name(Player, name, 31)
print(0, "^x04[ZP]^x03 %s ^x01 невидимый!", name)
client_cmd(Player, "spk %s", sound_stealth)
set_task( STEALTH , "remove_stealth", Player)
zp_set_user_ammo_packs(Player, zp_get_user_ammo_packs(id) - 8) // снятие аммо

return PLUGIN_CONTINUE
}


И сразу второй вопрос:
Можно в том блоке просто сет таск?
Код:
public buy_invis(Player)
{
set_task(1.0, "zp_extra_item_selected", Player)
}


Гнилой фашистской нечисти
Загоним пулю в лоб,
Отродью человечества
Сколотим крепкий гроб!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: