Сompiler AmxModX 1.8.2_fix ошибка при компилировании

backedtracked

Пользователь
Регистрация
26 Мар 2019
Сообщения
37
Симпатии
2
Amx Mod X
AMXX 1.8.2
Ошибка
Код:
12/17/2019 - 23:53:06: [AMXX] Load error 17 (invalid file format or version) (plugin "Welcome.amxx")
Исходник
Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta_util>
#include <hamsandwich>

#define PLUGIN "IDEAL VIP"
#define VERSION "3 c xepoM]"
#define AUTHOR "15% oT Ba/lePa"

#define GOLD //Золотое оружие он/офф
#define TAB_SHOW //VIP в scoreboard
#define AUTO_ARMOR //автовыдача гранат и аммуниции в начале раунда
#define AUTO_PISTOLS //авто-меню пистолетов, если не выбран в наборе
//#define AUTO_WEAPMENU //випменю в начале раунда
#define vip_flag ADMIN_LEVEL_B //флаг випа или кого там надо...
#define c_round 3 //с какого раунда доступно меню
#define c_health 5 //+здоровья за 1 килл
#define c_health_head 10 //+здоровья за 1 килл в башню
#define c_health_max 100 //максимум здоровья для випа (зря бабки платил что-ли)
#define c_money 500 //+баксов за 1 килл
#define c_money_head 800 //+баксов за 1 килл в голову

#define VIP_TAG (1<<2)
#define m_LastHitGroup 75

#if defined GOLD
#define MAX_ITEM_TYPES 6
#define m_linux_entity 4
#define m_pPlayer 41
#define m_pActiveItem 373
#define DMG_VALUE 1.3 //множитель урона
#define linuxdiff 5

new const m_rgpPlayerItems[MAX_ITEM_TYPES] = {34, 35, ...}

new V_AK[] = "models/gold/v_ak47_gold.mdl"
new P_AK[] = "models/gold/p_ak47_gold.mdl"
new W_AK[] = "models/gold/w_ak47_gold.mdl"

new V_M4[] = "models/gold/v_m4a1_gold.mdl"
new P_M4[] = "models/gold/p_m4a1_gold.mdl"
new W_M4[] = "models/gold/w_m4a1_gold.mdl"

new V_AWP[] = "models/gold/v_awp_gold.mdl"
new P_AWP[] = "models/gold/p_awp_gold.mdl"
new W_AWP[] = "models/gold/w_awp_gold.mdl"
#endif

new bool:g_map_valid = false
new bool:g_vip_allow[33] = true
new bool:g_haveGold[33] = false

static g_Round, g_SecondWeap[33], g_SecondHave[33], g_buyTime, set_SecCase, i_Menu, g_maxPlayers

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

register_message(get_user_msgid("ScoreAttrib"), "msgScoreAttrib")

register_event("HLTV", "round_start", "a", "1=0", "2=0")
register_event("TextMsg", "round_restart", "a", "2=#Game_will_restart_in","2=#Game_Commencing")

RegisterHam(Ham_Killed, "player", "player_killed", 1)
RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")

register_clcmd("say /vipmenu", "main_menu")
register_clcmd("say_team /vipmenu", "main_menu")
register_clcmd("vipmenu", "main_menu")

g_maxPlayers = get_maxplayers()

new szPrefixMap[][] = {"de_", "cs_", "css_","as_"}
new map[32]; get_mapname(map, charsmax(map));
for(new i; i < sizeof szPrefixMap; i++)
{
if(containi(map, szPrefixMap) != -1)
g_map_valid = true

}
#if defined GOLD
RegisterHam(Ham_Item_Deploy, "weapon_ak47", "deploy_weapon", 1)
RegisterHam(Ham_Item_Deploy, "weapon_m4a1", "deploy_weapon", 1)
RegisterHam(Ham_Item_Deploy, "weapon_awp", "deploy_weapon", 1)


register_forward(FM_SetModel, "set_model", 1)
#endif
}


#if defined GOLD
public plugin_precache()
{
precache_model (V_AK)
precache_model (P_AK)
precache_model (W_AK)


precache_model (V_M4)
precache_model (P_M4)
precache_model (W_M4)


precache_model (V_AWP)
precache_model (P_AWP)
precache_model (W_AWP)
}
#endif


public client_putinserver(id)
{
g_SecondWeap[id] = 0

new name[32]; get_user_name(id, name, 31)


if(get_user_flags(id) & ADMIN_BAN)
return client_print_color(0, 0, "^4[VIP] ^1На сервер зашел ^4Администратор ^3%s", name)


if(get_user_flags(id) & ADMIN_LEVEL_H)
return client_print_color(0, 0, "^4[VIP] ^1На сервер зашел ^4ВИП игрок ^3%s", name)


return PLUGIN_HANDLED
}

public client_disconnect(id)
{
g_SecondHave[id] = 0
g_SecondWeap[id] = 0
g_haveGold[id] = false
}

public round_start()
{
g_Round++
g_buyTime = get_systime()
}


public round_restart()
g_Round = 0

public player_spawn(Player)
{
if(!g_map_valid || !user_admin(Player))
return 1

g_vip_allow[Player] = true

if(is_user_alive(Player))
{
task_funk(Player)

#if defined AUTO_WEAPMENU
if(g_Round >= c_round)
main_menu(Player)
#endif
}

return 1
}


public task_funk(id)
{
#if defined AUTO_ARMOR
if(cs_get_user_team(id) == CS_TEAM_CT)
cs_set_user_defuse(id, 1, 255, 255, 0,_,0)
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
cs_set_user_armor(id, 100, CS_ARMOR_KEVLAR)

give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
#endif

#if defined AUTO_PISTOLS
if(g_SecondHave[id])
return 1
Give_Second_Weapon(id, g_SecondWeap[id])
#endif

return 0
}


public main_menu(id)
{
if(!user_admin(id))
return client_print_color(id, 0, "^1[^4VIP^1] ^3У вас нет доступа для открытия этого меню!")

if(!g_map_valid)
return client_print_color(id, 0, "^1[^4VIP^1] ^1На данной карте Оружейка недоступна!")


if(!is_user_alive(id))
return client_print_color(id, 0, "^1[^4VIP^1] ^3Зачем мертвому оружие?))")

if(g_Round < c_round)
return client_print_color(id, 0, "^1[^4VIP^1] ^3Оружейная комната доступна с %d-го раунда!", c_round)

if(!g_vip_allow[id] || get_systime() > (g_buyTime + 20))
return client_print_color(id, 0, "^1[^4VIP^1] ^3Вип меню недоступно! Ждите нового раунда.")


new s_Title[128], s_Pistol[32], szMenuMulti[64]
switch(g_SecondWeap[id])
{
case 0: s_Pistol = "NONE"
case 1: s_Pistol = "Deagle"
case 2: s_Pistol = "Usp"
case 3: s_Pistol = "Glock"
}


formatex(s_Title, charsmax(s_Title), "\r ВИП стоит кучу денег: ")
i_Menu = menu_create(s_Title, "main_handler", 1);

formatex(szMenuMulti, charsmax(szMenuMulti), "\y%s \d+ Гранаты + \rM4A1", s_Pistol)
menu_additem(i_Menu, szMenuMulti, "1", 0)


formatex(szMenuMulti, charsmax(szMenuMulti), "\y%s \d+ Гранаты + \rAK47", s_Pistol)
menu_additem(i_Menu, szMenuMulti, "2", 0)


formatex(szMenuMulti, charsmax(szMenuMulti), "\y%s \d+ Гранаты + \rAWP", s_Pistol)
menu_additem(i_Menu, szMenuMulti, "3", 0)


formatex(szMenuMulti, charsmax(szMenuMulti), "\y%s \d+ Гранаты + \rFAMAS", s_Pistol)
menu_additem(i_Menu, szMenuMulti, "4", 0)


formatex(szMenuMulti, charsmax(szMenuMulti), "\y%s \d+ Гранаты + \rSCOUT", s_Pistol)
menu_additem(i_Menu, szMenuMulti, "5", 0)


menu_addblank(i_Menu, 0)

formatex(szMenuMulti, charsmax(szMenuMulti), "\yИзменить \rпистолет \yв наборе")
menu_additem(i_Menu, szMenuMulti, "6", 0)

menu_addblank(i_Menu, 0)

#if defined GOLD
formatex(szMenuMulti, charsmax(szMenuMulti), "\yЗолотое оружие")
menu_additem(i_Menu, szMenuMulti, "7", 0)
#endif

menu_setprop(i_Menu, MPROP_EXITNAME, "Выход")

return menu_display(id, i_Menu, 0)
}


public main_handler(id, menu, item)
{
if(item == MENU_EXIT)
return menu_destroy(menu)

new s_Data[6], s_Name[60], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

new i_Key = str_to_num(s_Data)
if(1 <= i_Key <= 5)
{
g_vip_allow[id] = false
g_haveGold[id] = false
}

switch(i_Key)
{
case 1: DropWeapons(id, 1, "weapon_m4a1", CSW_M4A1, 90)
case 2: DropWeapons(id, 1, "weapon_ak47", CSW_AK47, 90)
case 3: DropWeapons(id, 1, "weapon_awp", CSW_AWP, 30)
case 4: DropWeapons(id, 1, "weapon_famas", CSW_FAMAS, 90)
case 5: DropWeapons(id, 1, "weapon_scout", CSW_SCOUT, 90)
case 6:
{
set_SecCase = 6
sec_WpnMenu(id)
}
case 7: GoldMenu(id)
}

return menu_destroy(menu)
}


public sec_WpnMenu(id)
{
i_Menu = menu_create("\rПистолет для набора", "sec_WpnMenu_handler")


menu_additem(i_Menu, "\yDeagle", "1", 0)
menu_additem(i_Menu, "\yUsp", "2", 0)
menu_additem(i_Menu, "\yGlock", "3", 0)


menu_display(id, i_Menu, 0)
}


public sec_WpnMenu_handler(id, menu, item)
{
if(item == MENU_EXIT)
return PLUGIN_HANDLED


new s_Data[6], s_Name[60], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

new i_Key = str_to_num(s_Data)
g_SecondWeap[id] = i_Key
g_SecondHave[id] = true

menu_destroy(menu)


return Give_Second_Weapon(id, g_SecondWeap[id])
}


#if defined GOLD
public GoldMenu(id)
{
i_Menu = menu_create("\yВау!)) Золотишечко", "GoldMenu_handler")


menu_additem(i_Menu, "\yЗолотой \wМ4А1", "1", 0)
menu_additem(i_Menu, "\yЗолотой \wАК-47", "2", 0);
menu_additem(i_Menu, "\yЗолотой \wMagnum AWP", "3", 0)
menu_addblank2(i_Menu)


menu_setprop(i_Menu, MPROP_EXITNAME, "\yВыход")
menu_display(id, i_Menu, 0)
}


public GoldMenu_handler(id, menu, item)
{
if(item == MENU_EXIT)
return menu_destroy(menu)

new cmd[3], access, callback
menu_item_getinfo(menu, item, access, cmd, 2,_,_, callback)

if(item != MENU_EXIT)
{
g_vip_allow[id] = false
g_haveGold[id] = true
}

new i_Key = str_to_num(cmd)
switch (i_Key)
{
case 1: DropWeapons(id, 1, "weapon_m4a1", CSW_M4A1, 90)
case 2: DropWeapons(id, 1, "weapon_ak47", CSW_AK47, 90)
case 3: DropWeapons(id, 1, "weapon_awp", CSW_AWP, 30)
case 4: main_menu(id)
}

return menu_destroy(menu)
}


public deploy_weapon(ent)
{
static id; id = get_pdata_cbase(ent, m_pPlayer, m_linux_entity)


static wpn; wpn = pev(ent, pev_iuser1)
if(!wpn)
return


if(!user_admin(id))
{
static weap_name[32]
get_weaponname(wpn, weap_name, charsmax(weap_name))
engclient_cmd(id, "drop", weap_name)


client_print_color(id, 0, "^1[^4VIP^1] ^3Это оружие доступно только ВИП игрокам!")
return
}

switch(wpn)
{
case CSW_AK47:
{
set_pev(id, pev_viewmodel2, V_AK)
set_pev(id, pev_weaponmodel2, P_AK)
}
case CSW_M4A1:
{
set_pev(id, pev_viewmodel2, V_M4)
set_pev(id, pev_weaponmodel2, P_M4)
}
case CSW_AWP:
{
set_pev(id, pev_viewmodel2, V_AWP)
set_pev(id, pev_weaponmodel2, P_AWP)
}
}
}


public set_model(ent, model[])
{
if(!pev_valid(ent))
return

static classname[10]; pev(ent, pev_classname, classname, charsmax(classname))
if(!equal(classname, "weaponbox"))
return


static drop
for(new i = 0 ; i < MAX_ITEM_TYPES; i++)
{
drop = get_pdata_cbase(ent, m_rgpPlayerItems, m_linux_entity)
if(drop < 1)
continue
break
}

if(drop < 1)
return

static wpn; wpn = pev(drop, pev_iuser1)
if(!wpn)
return


switch(wpn)
{
case CSW_AK47: engfunc(EngFunc_SetModel, ent, W_AK)
case CSW_M4A1: engfunc(EngFunc_SetModel, ent, W_M4)
case CSW_AWP: engfunc(EngFunc_SetModel, ent, W_AWP)
}
}


public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
if(!attacker || attacker > g_maxPlayers)
return HAM_IGNORED


static ent; ent = get_pdata_cbase(attacker, m_pActiveItem, linuxdiff)
static wpn; wpn = pev(ent, pev_iuser1)


if(!wpn)
return HAM_IGNORED


SetHamParamFloat(4, damage * DMG_VALUE)

return HAM_IGNORED
}
#endif


public player_killed(victim, killer, corpse)
{
if(user_admin(victim))
{
g_SecondHave[victim] = false
g_haveGold[victim] = false
return
}

if(user_admin(victim))
{
if(is_user_alive(killer))
{
static p_Health; p_Health = get_user_health(killer)
static p_Money; p_Money = cs_get_user_money(killer)
if(get_pdata_int(victim, m_LastHitGroup) == HIT_HEAD)
{
set_user_health(killer, p_Health + c_health_head)
if(p_Health > c_health_max)
set_user_health(killer, c_health_max)
cs_set_user_money(killer, p_Money + c_money_head)
}
else
{
set_user_health(killer, p_Health + c_health)
if(p_Health > c_health_max)
set_user_health(killer, c_health_max)
cs_set_user_money(killer, p_Money + c_money)
}
}
}
}


#if defined TAB_SHOW
public msgScoreAttrib(const MsgId, const MsgType, const MsgDest)
{
if(user_admin(get_msg_arg_int(1)) && !get_msg_arg_int(2))
set_msg_arg_int(2, ARG_BYTE, VIP_TAG)
}
#endif


stock bool: user_admin(const id)
{
if(!is_user_connected(id))
return false


if(get_user_flags(id) & vip_flag)
return true


return false
}


Give_Second_Weapon(id, wpnHave)
{
switch(wpnHave)
{
case 0: sec_WpnMenu(id)
case 1: DropWeapons(id, 2, "weapon_deagle", CSW_DEAGLE, 35)
case 2: DropWeapons(id, 2, "weapon_usp", CSW_USP, 100)
case 3: DropWeapons(id, 2, "weapon_glock18", CSW_GLOCK18, 120)
}

if(set_SecCase == 6)
{
set_SecCase = 0
main_menu(id)
}

return 1
}


DropWeapons(id, wpnType, wpnName[], wpnID, iAmmo)
{
#define PRIMARY_WEAPON ((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 SECONDARY_WEAPON ((1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_P228)|(1<<CSW_DEAGLE))

new weapons[32], num, i
get_user_weapons(id, weapons, num)

switch(wpnType)
{
case 1: wpnType = PRIMARY_WEAPON
case 2: wpnType = SECONDARY_WEAPON
}

static weap_name[32]
for(i = 0; i < num; i++)
{
if(wpnType & (1<<weapons))
{
get_weaponname(weapons, weap_name, sizeof weap_name - 1)
if(!equali(weap_name, wpnName))
engclient_cmd(id, "drop", weap_name)
}
}

#if defined GOLD

if(g_haveGold[id])
{
static ent; ent = fm_give_item(id, wpnName)
if(!pev_valid(ent))
return

set_pev(ent, pev_iuser1, wpnID)
cs_set_user_bpammo(id, wpnID, iAmmo)
deploy_weapon(ent)
engclient_cmd(id, wpnName)


return
}
#endif

fm_give_item(id, wpnName)
cs_set_user_bpammo(id, wpnID, iAmmo)
}
1576616394893.png1576616394893.png
 

NeTvoyKenji

Пользователь
Регистрация
27 Мар 2019
Сообщения
341
Симпатии
84
Предупреждения
20
Для начала добавь инклюд королчат'а
Большая часть ошибок исчезнет
 
Сверху Снизу