Плагин "Арифметика" или "Ответы на Воспросы "
|
|
Хомка | Дата: Суббота, 07.04.2012, 21:47 | Сообщение # 1 |
- Сообщения: 60
- Награды: 1
- Замечания:
|
И так недавно я просил помочь мне написать плагин "Арифметика на сервер" И вот всё таки мы вырезали его из мода "Deathrun" Конечно плагин был весь исправлен , почти 80% тут своего
И так , сам исходник Quote #include <amxmodx> #include <amxmisc> #include <fun> #include <cstrike>
#define PLUGIN "The Smartest" #define VERSION "1.0" #define AUTHOR "Krevedko"
//new string_nums new question[131] new answer[64] new quest[64] new nick_winner[32] new results new string_num new random_quest new SayText new nagrade
// Квары new red, green, blue new money, health, armor, sound
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_logevent("newround", 2, "1=Round_Start"); red = register_cvar("sm_red","0"); green = register_cvar("sm_green","255"); blue = register_cvar("sm_blue","0"); money = register_cvar("sm_money","3500"); sound = register_cvar("sm_sound","1"); health = register_cvar("sm_health","15"); armor = register_cvar("sm_armor","100"); register_clcmd("say /vopros","resultats"); register_clcmd("say /question","resultats"); register_clcmd("say /winner", "winner"); register_clcmd("say","check_results"); register_clcmd("say_team","check_results"); SayText = get_user_msgid("SayText"); readfiles() }
public plugin_precache() { precache_sound("the_smart/pipewarp.wav") return PLUGIN_CONTINUE }
public readfiles() { if (!file_exists("addons/amxmodx/configs/questions.ini")) { write_file("addons/amxmodx/configs/questions.ini", ";Это файл с вопросами и ответам. Как должен выглядеть файл:^n;^"вопрос^" ^"ответ^"^n^"1+1^" ^"2^"", -1) } }
public newround() { results = 0 new txtlen string_num = file_size("addons/amxmodx/configs/questions.ini", 1) random_quest = random_num ( 1,string_num ) read_file("addons/amxmodx/configs/questions.ini", random_quest, question, 130, txtlen) while ( (question[0] == ';' || equali(question,"")) ) { random_quest = random_num ( 1,string_num ) read_file("addons/amxmodx/configs/questions.ini", random_quest, question, 130, txtlen) }
// парсим trim(question)
parse(question, quest, sizeof(quest) , answer, sizeof(answer))
set_hudmessage(get_pcvar_num(red), get_pcvar_num(green), get_pcvar_num(blue), 0.03, 0.55, 0, 6.0, 12.0, 0.2, 0.2, -1) show_hudmessage(0, "Конкурс: %s = ?", quest) }
public check_results(id) { static chat[192]; read_args(chat, sizeof(chat) - 1); remove_quotes(chat);
if ( results == 0 ) { if (equali(chat, answer )) { go_nagrada(id) }else{ if (chat[0] == '-' || chat[0] == '1' || chat[0] == '2' || chat[0] == '3' || chat[0] == '4' || chat[0] == '5' || chat[0] == '6' || chat[0] == '7' || chat[0] == '8' || chat[0] == '9' || chat[0] == '0') print_col_chat(0, "^4К сожалению, ^3вы неверное ответили на вопрос") } }else{ if (chat[0] == '-' || chat[0] == '1' || chat[0] == '2' || chat[0] == '3' || chat[0] == '4' || chat[0] == '5' || chat[0] == '6' || chat[0] == '7' || chat[0] == '8' || chat[0] == '9' || chat[0] == '0') print_col_chat(0, "^4К сожалению, игрок ^3%s ^4уже ответил на этот вопрос и получил награду.", nick_winner) } }
public go_nagrada(id) // награда { results = 1 // записываем ответ
if (get_pcvar_num(sound) == 1) { client_cmd(0, "spk the_smart/pipewarp" ) }
if (is_user_alive(id)) { nagrade = random_num(1, 5)
switch(nagrade) { case 1: { give_item(id, "weapon_smokegrenade") cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 4); }
case 2: { give_item(id, "weapon_flashbang") cs_set_user_bpammo(id, CSW_FLASHBANG, 9); }
case 3: { give_item(id, "weapon_shield") }
case 4: { cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(money)) }
case 5: { set_user_health(id, get_user_health(id)+get_pcvar_num(health)) set_user_armor(id, get_user_armor(id)+get_pcvar_num(armor)) } } }
get_user_name(id,nick_winner,31); if(nagrade ==1) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 5 SmokeGrenade", nick_winner) }
if(nagrade ==2) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 10 FlashGrenade", nick_winner) }
if(nagrade ==3) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 Щит", nick_winner) }
if(nagrade ==4) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3%i ^4$ ", nick_winner, get_pcvar_num(money)) }
if(nagrade ==5) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3%i ^4hp, ^3%i ^4брони", nick_winner, get_pcvar_num(health), get_pcvar_num(armor)) } }
public winner(id) { if ( results == 1 ) { if(nagrade ==1) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 5 SmokeGrenade", nick_winner) }
if(nagrade ==2) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 10 FlashGrenade", nick_winner) }
if(nagrade ==3) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 Щит", nick_winner) }
if(nagrade ==4) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3%i ^4$ ", nick_winner, get_pcvar_num(money)) }
if(nagrade ==5) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3%i ^4hp, ^3%i ^4брони", nick_winner, get_pcvar_num(health), get_pcvar_num(armor)) } }else{ print_col_chat(id, "^4Победителя еще нет. Будешь первым?") } }
public resultats(id) { set_hudmessage(get_pcvar_num(red), get_pcvar_num(green), get_pcvar_num(blue), 0.03, 0.55, 0, 6.0, 12.0, 0.2, 0.2, -1)
if ( results == 1 ) { show_hudmessage(id, "Конкурс окончен. Победитель в чате") if(nagrade ==1) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 5 SmokeGrenade", nick_winner) }
if(nagrade ==2) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 10 FlashGrenade", nick_winner) }
if(nagrade ==3) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 Щит", nick_winner) }
if(nagrade ==4) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3%i ^4$ ", nick_winner, get_pcvar_num(money)) }
if(nagrade ==5) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3%i ^4hp, ^3%i ^4брони", nick_winner, get_pcvar_num(health), get_pcvar_num(armor)) } }else{ show_hudmessage(id, "Конкурс: %s = ?", quest) } }
stock print_col_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"); // Green Color replace_all(msg, 190, "!y", "^1"); // Default Color (у©° ж№«ој©) replace_all(msg, 190, "!t", "^3"); // Team Color 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, SayText, _, players[i]); write_byte(players[i]); write_string(msg); message_end(); } } } }
В исходнике можете добавить свои призы , сейчас тут
1.x5 гранат smoke (сразу 5) 2.x10 гранат flash давало (сразу 10) 3.Щит 4. 3500$ 5.+15 хп + 100 бронь
Так же имеются квары Quote money = register_cvar("sm_money","3500"); sound = register_cvar("sm_sound","1"); Советую ставить 0 (меньше хлама) Музыка если кто то win health = register_cvar("sm_health","15"); Жизни 15 хп armor = register_cvar("sm_armor","100"); Броня 100
Если есть вопросы или пожелания , могу что то подправить... Бесплатно
//======================== Часто задаваемые вопросы ?! //======================== 1. Как сделать свои вопросы ? Ответ:Заходим в файл questions.ini и ищем там вопросы,что то типо такого
"86-75+15" "26" Добавляем свои вопросы "вопрос" "ответ"
то-есть
86-75=11 11+15=26 Пишем в чат ответ 26
/============== Незабываем ставить + /==============
Сообщение отредактировал Хомка - Суббота, 07.04.2012, 22:13 |
|
| |
MK | Дата: Вторник, 23.10.2012, 00:05 | Сообщение # 2 |
- Сообщения: 43
- Награды: 0
- Замечания:
|
Подскажите пожалуста что не так.
Изменяю:
register_logevent("newround", 2, "1=Round_Start"); //каждый раунд на register_logevent("newround", 2, "1=Game_Commencing"); //один раз в начале игры
И вотрос перестаёт высвечиватся(пишет Вопрос: =?), и ответом становится пустота т.е. пишеш say и плагин защитывает правильный ответ. Меняешь обратно,чтоб каждый раунд задавался вопрос и всё становится нормально.
Может кто в курсе где ошибка, подскажите пожалуста =)))
Quote #include <amxmodx> #include <amxmisc> #include <fun> #include <cstrike>
#define PLUGIN "The Smartest" #define VERSION "1.0" #define AUTHOR "Krevedko"
//new string_nums new question[131] new answer[64] new quest[64] new nick_winner[32] new results new string_num new random_quest new SayText new nagrade
// Квары new red, green, blue new money, health, armor, sound
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_logevent("newround", 2, "1=Game_Commencing"); red = register_cvar("sm_red","0"); green = register_cvar("sm_green","255"); blue = register_cvar("sm_blue","0"); money = register_cvar("sm_money","3500"); sound = register_cvar("sm_sound","1"); health = register_cvar("sm_health","15"); armor = register_cvar("sm_armor","100"); register_clcmd("say /vopros","resultats"); register_clcmd("say /question","resultats"); register_clcmd("say /winner", "winner"); register_clcmd("say","check_results"); register_clcmd("say_team","check_results"); SayText = get_user_msgid("SayText"); readfiles() }
public plugin_precache() { precache_sound("the_smart/pipewarp.wav") return PLUGIN_CONTINUE }
public readfiles() { if (!file_exists("addons/amxmodx/configs/questions.ini")) { write_file("addons/amxmodx/configs/questions.ini", ";Это файл с вопросами и ответам. Как должен выглядеть файл:^n;^"вопрос^" ^"ответ^"^n^"1+1^" ^"2^"", -1) } }
public newround() { results = 0 new txtlen string_num = file_size("addons/amxmodx/configs/questions.ini", 1) random_quest = random_num ( 1,string_num ) read_file("addons/amxmodx/configs/questions.ini", random_quest, question, 130, txtlen) while ( (question[0] == ';' || equali(question,"")) ) { random_quest = random_num ( 1,string_num ) read_file("addons/amxmodx/configs/questions.ini", random_quest, question, 130, txtlen) } // парсим trim(question) parse(question, quest, sizeof(quest) , answer, sizeof(answer)) set_hudmessage(get_pcvar_num(red), get_pcvar_num(green), get_pcvar_num(blue), 0.03, 0.55, 0, 6.0, 12.0, 0.2, 0.2, -1) show_hudmessage(0, "Конкурс: %s = ?", quest) }
public check_results(id) { static chat[192]; read_args(chat, sizeof(chat) - 1); remove_quotes(chat);
if ( results == 0 ) { if (equali(chat, answer )) { go_nagrada(id) }else{ if (chat[0] == '-' || chat[0] == '1' || chat[0] == '2' || chat[0] == '3' || chat[0] == '4' || chat[0] == '5' || chat[0] == '6' || chat[0] == '7' || chat[0] == '8' || chat[0] == '9' || chat[0] == '0') print_col_chat(0, "^4К сожалению, ^3вы неверное ответили на вопрос") } }else{ if (chat[0] == '-' || chat[0] == '1' || chat[0] == '2' || chat[0] == '3' || chat[0] == '4' || chat[0] == '5' || chat[0] == '6' || chat[0] == '7' || chat[0] == '8' || chat[0] == '9' || chat[0] == '0') print_col_chat(0, "^4К сожалению, игрок ^3%s ^4уже ответил на этот вопрос и получил награду.", nick_winner) } }
public go_nagrada(id) // награда { results = 1 // записываем ответ
if (get_pcvar_num(sound) == 1) { client_cmd(0, "spk the_smart/pipewarp" ) }
if (is_user_alive(id)) { nagrade = random_num(1, 5)
switch(nagrade) { case 1: { give_item(id, "weapon_smokegrenade") cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 4); }
case 2: { give_item(id, "weapon_flashbang") cs_set_user_bpammo(id, CSW_FLASHBANG, 9); }
case 3: { give_item(id, "weapon_shield") }
case 4: { cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(money)) }
case 5: { set_user_health(id, get_user_health(id)+get_pcvar_num(health)) set_user_armor(id, get_user_armor(id)+get_pcvar_num(armor)) } } }
get_user_name(id,nick_winner,31); if(nagrade ==1) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 5 SmokeGrenade", nick_winner) }
if(nagrade ==2) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 10 FlashGrenade", nick_winner) }
if(nagrade ==3) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 Щит", nick_winner) }
if(nagrade ==4) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3%i ^4$ ", nick_winner, get_pcvar_num(money)) }
if(nagrade ==5) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3%i ^4hp, ^3%i ^4брони", nick_winner, get_pcvar_num(health), get_pcvar_num(armor)) } }
public winner(id) { if ( results == 1 ) { if(nagrade ==1) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 5 SmokeGrenade", nick_winner) }
if(nagrade ==2) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 10 FlashGrenade", nick_winner) }
if(nagrade ==3) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 Щит", nick_winner) }
if(nagrade ==4) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3%i ^4$ ", nick_winner, get_pcvar_num(money)) }
if(nagrade ==5) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3%i ^4hp, ^3%i ^4брони", nick_winner, get_pcvar_num(health), get_pcvar_num(armor)) } }else{ print_col_chat(id, "^4Победителя еще нет. Будешь первым?") } }
public resultats(id) { set_hudmessage(get_pcvar_num(red), get_pcvar_num(green), get_pcvar_num(blue), 0.03, 0.55, 0, 6.0, 12.0, 0.2, 0.2, -1)
if ( results == 1 ) { show_hudmessage(id, "Конкурс окончен. Победитель в чате") if(nagrade ==1) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 5 SmokeGrenade", nick_winner) }
if(nagrade ==2) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 10 FlashGrenade", nick_winner) }
if(nagrade ==3) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3 Щит", nick_winner) }
if(nagrade ==4) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3%i ^4$ ", nick_winner, get_pcvar_num(money)) }
if(nagrade ==5) { print_col_chat(0, "^4На вопрос конкурса первым ответил ^3%s ^4и получил награду! ^3%i ^4hp, ^3%i ^4брони", nick_winner, get_pcvar_num(health), get_pcvar_num(armor)) } }else{ show_hudmessage(id, "Конкурс: %s = ?", quest) } }
stock print_col_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"); // Green Color replace_all(msg, 190, "!y", "^1"); // Default Color (у©° ж№«ој©) replace_all(msg, 190, "!t", "^3"); // Team Color 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, SayText, _, players[i]); write_byte(players[i]); write_string(msg); message_end(); } } } }
|
|
| |
Хомка | Дата: Четверг, 25.10.2012, 14:02 | Сообщение # 3 |
- Сообщения: 60
- Награды: 1
- Замечания:
|
Тема создана 6 месяцев назад, плагин ещё дольше...
Тут надо сидить и смотреть в чем проблема , может тебе что то мешает ( плагины например ). Попробуй по отключать плагины и проверить. Можно конечно посидеть - подумать чё да как , но я трачу своё время. Рублей так за 100 могут сделать плагин на любом форме ну или даже я.
Можно и бесплатно, дай исходник кому ни будь...
|
|
| |
KinD | Дата: Четверг, 25.10.2012, 15:56 | Сообщение # 4 |
- Сообщения: 1148
- Награды: 22
- Замечания:
|
За 100 рублей?Я только Total открою.
Skype:daywerok
|
|
| |
ganya | Дата: Пятница, 26.10.2012, 11:17 | Сообщение # 5 |
- Сообщения: 41
- Награды: 0
- Замечания:
|
Quote Тема создана 6 месяцев назад, плагин ещё дольше...
Тут надо сидить и смотреть в чем проблема , может тебе что то мешает ( плагины например ). Попробуй по отключать плагины и проверить. Можно конечно посидеть - подумать чё да как , но я трачу своё время. Рублей так за 100 могут сделать плагин на любом форме ну или даже я.
Можно и бесплатно, дай исходник кому ни будь... Я промолчу и про себя посмеюсь -)
|
|
| |