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

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

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

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

Ошибка при компиляции [Викторина]

Статус пользователя narkk3
сообщение 26.10.2016, 19:25
Сообщение #1
Стаж: 10 лет

Сообщений: 99
Благодарностей: 2
Полезность: < 0

Добрый день!
В общем.. Решил переделать 'всеизвестный' плагин Викторины (иными словами плагин SmartTest/Sam_umniy).
Переделывал под себя, заменял худы на чат, т.к не вижу смысла делать в худе, т.к худ только отвлекает игроков.
Ближе к делу. Делал функцию, чтобы если выдавало AWP, автоматически выкидывалось у игрока, которому дается AWP, основное оружие, но выбивает ошибку. Не соображаю как ее исправить под конец дня)
Помогите, кому не лень.
P.s знаю, что налепил код немного криво (там где с выдачей награды и AWP, но не суть)
Код

Код
#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 bool:HasC4[33]

// Квары
new red, green, blue
new money, awp, strip_weapon, health, armor, kevlar, 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");
    awp = register_cvar("sm_awp","1");
    sound = register_cvar("sm_sound","1");
    health = register_cvar("sm_health","15");
    armor = register_cvar("sm_armor","100");
    kevlar = register_cvar("sm_kevlar","1");
    strip_weapon = register_cvar("sm_strip","1");
    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))
    
        
    print_col_chat(id, "^4Внимание^1! Конкурс: ^3%s = ^1?", quest)
    //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, "^1К сожалению, игрок ^3%s ^1уже ответил на этот вопрос и получил награду.", 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)) {
if (get_pcvar_num(awp) == 1)
{
if (get_pcvar_num(strip_weapon) == 1)
{

if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
HasC4[id] = true;
else
HasC4[id] = false;

strip_user_weapons(id)

if (HasC4[id])
{
give_item(id, "weapon_c4");
cs_set_user_plant( id );
}

give_item(id, "weapon_knife")
give_item(id, "weapon_deagle")
cs_set_user_bpammo( id, CSW_DEAGLE, 35 )

}
fnDropWeapons(id, 2);
give_item(id, "weapon_awp")
cs_set_user_bpammo( id, CSW_AWP, 20 )
}
if ( get_pcvar_num(kevlar) == 1 ) {
give_item(id, "item_kevlar")
}
new give_health = get_user_health(id) + get_pcvar_num(health)
set_user_health(id, give_health)
new give_armor = get_pcvar_num(armor)
set_user_armor(id, give_armor)
}    
get_user_name(id,nick_winner,31);
new give_money = cs_get_user_money(id) + get_pcvar_num(money)
cs_set_user_money(id, give_money)
print_col_chat(0, "^1На вопрос конкурса 1ым ответил ^3%s ^1и получил %i^4$^1.", nick_winner, get_pcvar_num(money))
if ( get_pcvar_num(awp) == 1)
print_col_chat(0, "^4и ^3AWP")
}

public winner(id)
{
    if ( results == 1 )
    {                                                                                                                  
    print_col_chat(id, "^1На вопрос конкурса 1ым ответил ^3%s ^1и получил %i^4$^1.", nick_winner, get_pcvar_num(money))
    if ( get_pcvar_num(awp) == 1)
    print_col_chat(id, "^4и ^3AWP")
    } else
    print_col_chat(id, "^1Победителя еще ^3нет^1. Будешь ^4первым^1?")
}

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, "Конкурс окончен. Победитель в чате")
print_col_chat(id, "^1На вопрос конкурса 1ым ответил ^3%s ^1и получил %i^4$^1.", nick_winner, get_pcvar_num(money))
if ( get_pcvar_num(awp) == 1)
print_col_chat(id, "^4и ^3AWP")
} else
{
//show_hudmessage(id, "Конкурс: %s = ?", quest)
print_col_chat(id, "^4Внимание^1! Конкурс: ^3%s = ^1?", 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();
            }
        }
    }
}    
stock fnDropWeapons(const id, iNum)
{
   new iWeapons[32], iWeaponsNum;
   get_user_weapons(id, iWeapons, iWeaponsNum);
   for(new i; i < iWeaponsNum; i++)
   {
      if((iNum == 1 ? ALL_WEAPONS : PISTOLS_WEAPONS) & (1<<iWeapons[i]))
      {
         new szWeaponName[24], iEnt;
         get_weaponname(iWeapons[i], szWeaponName, charsmax(szWeaponName));
         while((iEnt = engfunc(EngFunc_FindEntityByString, iEnt, "classname", szWeaponName)) && pev(iEnt, pev_owner) != id) {}
         if(iEnt)
         {
            ExecuteHamB(Ham_Weapon_RetireWeapon, iEnt);
            if(ExecuteHamB(Ham_RemovePlayerItem, id, iEnt))
            {
               ExecuteHamB(Ham_Item_Kill, iEnt);
               set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<iWeapons[i]));
            }
         }
      }
   }
}



Отредактировал: narkk3, - 26.10.2016, 19:27
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя winzh1
сообщение 27.10.2016, 2:48
Сообщение #2


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

В код не вникал, исправил только ошибки
Код:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "The Smartest"
#define VERSION "1.0"
#define AUTHOR "Krevedko"

#define ALL_WEAPONS (1<<CSW_HEGRENADE|1<<CSW_FLASHBANG|1<<CSW_SMOKEGRENADE|1<<CSW_SCOUT|1<<CSW_XM1014|1<<CSW_MAC10|1<<CSW_AUG|1<<CSW_UMP45|1<<CSW_SG550|1<<CSW_GALIL|1<<CSW_FAMAS|1<<CSW_AWP|1<<CSW_MP5NAVY|1<<CSW_M249|1<<CSW_M3|1<<CSW_M4A1|1<<CSW_TMP|1<<CSW_G3SG1|1<<CSW_SG552|1<<CSW_AK47|1<<CSW_P90)
#define PISTOLS_WEAPONS (1<<CSW_P228|1<<CSW_ELITE|1<<CSW_FIVESEVEN|1<<CSW_USP|1<<CSW_GLOCK18|1<<CSW_DEAGLE)

//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 bool:HasC4[33]

// Квары
new red, green, blue
new money, awp, strip_weapon, health, armor, kevlar, 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");
awp = register_cvar("sm_awp","1");
sound = register_cvar("sm_sound","1");
health = register_cvar("sm_health","15");
armor = register_cvar("sm_armor","100");
kevlar = register_cvar("sm_kevlar","1");
strip_weapon = register_cvar("sm_strip","1");
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(id)
{
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))


print_col_chat(id, "^4Внимание^1! Конкурс: ^3%s = ^1?", quest)
//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, "^1К сожалению, игрок ^3%s ^1уже ответил на этот вопрос и получил награду.", 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)) {
if (get_pcvar_num(awp) == 1)
{
if (get_pcvar_num(strip_weapon) == 1)
{

if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
HasC4[id] = true;
else
HasC4[id] = false;

strip_user_weapons(id)

if (HasC4[id])
{
give_item(id, "weapon_c4");
cs_set_user_plant( id );
}

give_item(id, "weapon_knife")
give_item(id, "weapon_deagle")
cs_set_user_bpammo( id, CSW_DEAGLE, 35 )

}
fnDropWeapons(id, 2);
give_item(id, "weapon_awp")
cs_set_user_bpammo( id, CSW_AWP, 20 )
}
if ( get_pcvar_num(kevlar) == 1 ) {
give_item(id, "item_kevlar")
}
new give_health = get_user_health(id) + get_pcvar_num(health)
set_user_health(id, give_health)
new give_armor = get_pcvar_num(armor)
set_user_armor(id, give_armor)
}
get_user_name(id,nick_winner,31);
new give_money = cs_get_user_money(id) + get_pcvar_num(money)
cs_set_user_money(id, give_money)
print_col_chat(0, "^1На вопрос конкурса 1ым ответил ^3%s ^1и получил %i^4$^1.", nick_winner, get_pcvar_num(money))
if ( get_pcvar_num(awp) == 1)
print_col_chat(0, "^4и ^3AWP")
}

public winner(id)
{
if ( results == 1 )
{
print_col_chat(id, "^1На вопрос конкурса 1ым ответил ^3%s ^1и получил %i^4$^1.", nick_winner, get_pcvar_num(money))
if ( get_pcvar_num(awp) == 1)
print_col_chat(id, "^4и ^3AWP")
} else
print_col_chat(id, "^1Победителя еще ^3нет^1. Будешь ^4первым^1?")
}

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, "Конкурс окончен. Победитель в чате")
print_col_chat(id, "^1На вопрос конкурса 1ым ответил ^3%s ^1и получил %i^4$^1.", nick_winner, get_pcvar_num(money))
if ( get_pcvar_num(awp) == 1)
print_col_chat(id, "^4и ^3AWP")
} else
{
//show_hudmessage(id, "Конкурс: %s = ?", quest)
print_col_chat(id, "^4Внимание^1! Конкурс: ^3%s = ^1?", 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();
}
}
}
}
stock fnDropWeapons(const id, iNum)
{
new iWeapons[32], iWeaponsNum;
get_user_weapons(id, iWeapons, iWeaponsNum);
for(new i; i < iWeaponsNum; i++)
{
if((iNum == 1 ? ALL_WEAPONS : PISTOLS_WEAPONS) & (1<<iWeapons[i]))
{
new szWeaponName[24], iEnt;
get_weaponname(iWeapons[i], szWeaponName, charsmax(szWeaponName));
while((iEnt = engfunc(EngFunc_FindEntityByString, iEnt, "classname", szWeaponName)) && pev(iEnt, pev_owner) != id) {}
if(iEnt)
{
ExecuteHamB(Ham_Weapon_RetireWeapon, iEnt);
if(ExecuteHamB(Ham_RemovePlayerItem, id, iEnt))
{
ExecuteHamB(Ham_Item_Kill, iEnt);
set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<iWeapons[i]));
}
}
}
}
}


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя narkk3
сообщение 27.10.2016, 19:24
Сообщение #3
Стаж: 10 лет

Сообщений: 99
Благодарностей: 2
Полезность: < 0

winzh1, Спасибо.

Отредактировал: narkk3, - 27.10.2016, 21:07
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: