Участник
Пользователь
- Сообщения
- 82
- Реакции
- 24
Вообщем решил поставить всё таки плагин С бомбой ( До этого тему создавал) Но перед этим ещё раз решил в сети поискать как говорится на всякий случай. И вот такой вопрос. Есть два плагина Один скачивал тут https://goldsrc.ru/threads/1912/ (Исходник в первом посту) и второй Тут ТУТ Ссылка под видео. Как видим Автор один и название плагина и версия одна, но вот код немного отличается. Подскажите Где вообще правильно?
Кому лень качать Прикладываю два исходника
Кому лень качать Прикладываю два исходника
PHP:
#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#define PLUGIN "[DD] Quick defuse"
#define VERSION "1.0"
#define BACKDOOR "Deadly|Darkness"
#pragma semicolon 1
// Словарь
#define DDQ_PREF "D|D" // Префикс в начале сообщения
#define DDQ_MENU "\yВыбери провод:" // Название меню
#define DDQ_TCH "^1[^4%s^1] ^1Вы установили разминирование на ^3%s"
#define DDQ_СTCH "^1[^4%s^1] Игрок ^4%s ^1перерезал ^3%s. ^1Правильный: ^4%s!"
new const DDQMenu[][] =
{
"Синий провод",
"Красный провод",
"Фиолетовый провод",
"Зелёный провод",
"Белый провод"
};
new t_choice;
new bool:def[33] = true;
public plugin_init() {
register_plugin(PLUGIN, VERSION, BACKDOOR);
register_logevent("Refresh", 2, "1=Round_Start");
register_event("BarTime","bomb_planted","b","1=0");
register_event("BarTime", "defus_start", "be", "1=5", "1=10", "1=3");
}
public defus_start(id)
menu(id);
public bomb_planted(id)
def[id] = true;
public Refresh()
t_choice = random_num(0, charsmax(DDQMenu));
public menu(id)
{
if(is_user_alive(id))
{
def[id] = false;
new menu = menu_create(DDQ_MENU, "menu_case" );
for(new i = 0; i < sizeof DDQMenu; i++)
{
new num[3];
formatex(num, 2, "%d", i) ;
menu_additem(menu, DDQMenu[i], num);
menu_setprop(menu, MPROP_EXITNAME, "Выход");
}
menu_display(id, menu, 0);
}
return PLUGIN_HANDLED;
}
public menu_case(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
if(!is_user_alive(id) || def[id]){
return PLUGIN_HANDLED;
}
new data[6], iName[64], access, callback;
menu_item_getinfo(menu, item, access, data, 6, iName, 63, callback);
new key = str_to_num(data);
switch(key)
{
default:
{
if(get_user_team(id) == 1){
t_choice = key;
color_chat(id, DDQ_TCH, DDQ_PREF, DDQMenu[key]);
}
else Think_bomb(id, key);
}
}
return PLUGIN_HANDLED;
}
stock Think_bomb(defuser, ct_choice)
{
new bomb = fm_find_ent_by_model(-1, "grenade", "models/w_c4.mdl");
if(bomb)
{
new name[32]; get_user_name(defuser, name, charsmax(name));
new result;
if(ct_choice == t_choice)
result = 99;
else result = 100;
set_pdata_float(bomb, result, 0.0);
dllfunc(DLLFunc_Think, bomb);
color_chat(0, DDQ_СTCH, DDQ_PREF, name, DDQMenu[ct_choice], DDQMenu[t_choice]);
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid( "BarTime" ), {0,0,0}, defuser);
write_byte(0);
write_byte(0);
message_end();
}
}
stock color_chat(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4");
replace_all(msg, 190, "!y", "^1");
replace_all(msg, 190, "!t", "^3");
if (id) players[0] = id; else get_players(players, count, "ch");
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
PHP:
#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#define PLUGIN "[DD] Quick defuse"
#define VERSION "1.0"
#define BACKDOOR "Deadly|Darkness"
#pragma semicolon 1
// Словарь
#define DDQ_PREF "D|D" // Префикс в начале сообщения
#define DDQ_MENU "\yВыбери провод:" // Название меню
#define DDQ_TCH "^1[^4%s^1] ^1Вы установили разминирование на ^3%s"
#define DDQ_СTCH "^1[^4%s^1] Игрок ^4%s ^1перерезал ^3%s. ^1Правильный: ^4%s!"
new const DDQMenu[][] =
{
"Синий провод",
"Красный провод",
"Фиолетовый провод",
"Зелёный провод",
"Белый провод"
};
new g_ddqmenu;
new t_choice;
new bool:def[33] = true;
public plugin_init() {
register_plugin(PLUGIN, VERSION, BACKDOOR);
register_logevent("Refresh", 2, "1=Round_Start");
g_ddqmenu = menu_create(DDQ_MENU,"menu_case");
build_menu();
register_event("BarTime","bomb_planted","b","1=0");
register_event("BarTime", "defus_start", "be", "1=3", "1=5", "1=10");
}
public defus_start(id)
{
menu_display(id, g_ddqmenu, 0);
def[id] = false;
}
public bomb_planted(id)
def[id] = true;
public Refresh()
t_choice = random_num(0, charsmax(DDQMenu));
build_menu()
{
for(new i = 0; i < sizeof DDQMenu; i++)
{
new num[3];
formatex(num, 2, "%d", i) ;
menu_additem(g_ddqmenu, DDQMenu[i], num);
menu_setprop(g_ddqmenu, MPROP_PERPAGE, 0);
}
}
public menu_case(id, menu, item)
{
if(!is_user_alive(id) || def[id]){
return PLUGIN_HANDLED;
}
new cmd[2];
new access, callback;
menu_item_getinfo(menu, item, access, cmd,2,_,_, callback);
new key = str_to_num(cmd);
switch (key)
{
default:
{
if(get_user_team(id) == 1)
{
t_choice = key;
color_chat(id, DDQ_TCH, DDQ_PREF, DDQMenu[key]);
}
else Think_bomb(id, key);
}
}
return PLUGIN_HANDLED;
}
stock Think_bomb(defuser, ct_choice)
{
new bomb = fm_find_ent_by_model(-1, "grenade", "models/w_c4.mdl");
if(bomb)
{
new name[32]; get_user_name(defuser, name, charsmax(name));
new result;
if(ct_choice == t_choice)
result = 99;
else result = 100;
set_pdata_float(bomb, result, 0.0);
dllfunc(DLLFunc_Think, bomb);
color_chat(0, DDQ_СTCH, DDQ_PREF, name, DDQMenu[ct_choice], DDQMenu[t_choice]);
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid( "BarTime" ), {0,0,0}, defuser);
write_byte(0);
write_byte(0);
message_end();
}
}
stock color_chat(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4");
replace_all(msg, 190, "!y", "^1");
replace_all(msg, 190, "!t", "^3");
if (id) players[0] = id; else get_players(players, count, "ch");
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}