Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Форум Perfect Soft » Проекты портала » Плагины для Counter-Strike 1.6 » Плагин "Арифметика" или "Ответы на Воспросы " (Сам плагин)
Плагин "Арифметика" или "Ответы на Воспросы "
Хомка
Дата: Суббота, 07.04.2012, 21:47 | Сообщение # 1
офлайн

  • Сообщения: 60
  • Награды: 1
  • Замечания:
 
И так недавно я просил помочь мне написать плагин "Арифметика на сервер"
И вот всё таки мы вырезали его из мода "Deathrun"
Конечно плагин был весь исправлен , почти 80% тут своего nothingsay

И так , сам исходник
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

/==============
Незабываем ставить +
/==============
Прикрепления: vopros.sma (8.8 Kb) · vopros.amxx (9.4 Kb) · questions.ini (0.2 Kb)


Сообщение отредактировал Хомка - Суббота, 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 могут сделать плагин на любом форме ну или даже я.

Можно и бесплатно, дай исходник кому ни будь...
haha Я промолчу и про себя посмеюсь -)


 
Форум Perfect Soft » Проекты портала » Плагины для Counter-Strike 1.6 » Плагин "Арифметика" или "Ответы на Воспросы " (Сам плагин)
  • Страница 1 из 1
  • 1
Поиск: