Minnie 4,304 Posted October 25, 2015 Share Posted October 25, 2015 Nume : VIP.amxx Versiune : - Descriere detaliata : Am cateva probleme cu plugin-ul de VIP, imi apar tot felul de erori in FTP, gen - > [AMXX] Run time error 4 (plugin "VIP.amxx") - debug not enabled! L 10/25/2015 - 09:50:32: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes). Ce-as putea face cu aceasta problema ? Nu doresc sa fie modificat, ci doresc doar sa rezolv acele erori . Aici aveti sursa : #include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #include <fakemeta_util> #include <hamsandwich> #include <engine> #define Keysrod (1<<0)|(1<<1)|(1<<9) #define ITEM_HE (1<<0) // "a" #define ITEM_FS (1<<1) // "b" #define ITEM_SG (1<<2) // "c" #define ITEM_DG (1<<3) // "d" #define ITEM_VH (1<<4) // "e" #define ITEM_DF (1<<5) // "f" #define ITEM_NV (1<<6) // "g" new jumpnum[33] = 0 new bool:dojump[33] = false new hk_File4[ 128 ]; new hk_VipsList[ 128 ][ 32 ], hk_TotalLines; new hk_IsUserVip[ 33 ]; new hk_viplist[ ] = "vips_list.ini"; new hk_Folder[ ] = "Vip"; new hk_cfg[ ] = "vip-config"; new hk_File[ 128 ]; new hk_File1[ 128 ]; new g_type, g_hudmsg new vip_hud new maxplayers new mpd, mkb, mhb new health_add new health_hs_add new health_max new hk_Killer new hk_KillerHp new hk_HpAdd new hk_HpMax new jumps, items new hk_iRoundCount new bool:hk_IsRestarting new gun_menu new cvardmg enum { Primary = 1 , Secondary , Knife , Grenades , C4 }; public plugin_init() { register_plugin("Vip", "2.1", "Hasky") register_concmd("say /vips", "showAdmin", ADMIN_ALL, "") register_concmd("amx_addvips", "addvips", ADMIN_RCON, "<Nume sau SteamID>") register_concmd("amx_vips", "vips", ADMIN_RCON, "Lista Vip-urilor") RegisterHam ( Ham_Spawn, "player", "Hook_PlayerSpawn", 1 ) register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0") register_event("DeathMsg", "hook_death", "a", "1>0") register_event("Damage","Damage","b") register_event("DeathMsg","death_msg","a") register_menucmd(register_menuid("rod"), Keysrod, "Pressedrod") register_event("TextMsg", "Event_TextMsg_Restart", "a", "2Game_C", "2Game_w") register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0") RegisterHam(Ham_TakeDamage, "player", "Ham_CBasePlayer_TakeDamage_Pre") register_cvar("vip_maxjumps","1") jumps = register_cvar("vip_jumps","1") vip_hud = register_cvar("vip_hud","1") g_type = register_cvar("vip_bulletdamage","1") health_add = register_cvar("vip_hp_kill", "10") health_hs_add = register_cvar("vip_hp_hs", "25") health_max = register_cvar("vip_hp_max", "100") mpd = register_cvar("vip_money_damage","3") mkb = register_cvar("vip_money_kill","500") mhb = register_cvar("vip_money_hs","1000") items = register_cvar("vip_items_round", "abcdefg") gun_menu = register_cvar("vip_gun_menu","1") cvardmg = register_cvar("vip_damage","2") g_hudmsg = CreateHudSyncObj() maxplayers = get_maxplayers() } public plugin_cfg() { new Dir[ 64 ]; get_configsdir(Dir,charsmax(Dir)); formatex ( hk_File, charsmax ( hk_File ), "%s/%s", Dir, hk_Folder ); formatex ( hk_File1, charsmax ( hk_File1 ), "%s/%s.cfg", hk_File, hk_cfg ); if(!dir_exists(hk_File)) mkdir(hk_File); formatex ( hk_File4, charsmax ( hk_File4 ), "%s/%s", hk_File, hk_viplist ); if (!file_exists(hk_File4)) write_file(hk_File4,"; -->VIP List<--"); new hk_Buffer[ 192 ], hk_Line, hk_Len; while ( ( hk_Line = read_file ( hk_File4, hk_Line, hk_Buffer, charsmax ( hk_Buffer ), hk_Len ) ) ) { if ( ! strlen ( hk_Buffer ) || hk_Buffer[ 0 ] == ';' || ( hk_Buffer[ 0 ] == '/' && hk_Buffer[ 1 ] == '/' ) ) continue; copy ( hk_VipsList[ hk_TotalLines++ ], 32, hk_Buffer ); } if(!file_exists(hk_File1)) { write_file(hk_File1,"// Vip Configuration File") write_file(hk_File1,"") write_file(hk_File1,"") write_file(hk_File1,"// BulletDamage - afiseaza dmg-ul facut unui jucator") write_file(hk_File1,"// 1 - Activat 0 - Dezactivat") write_file(hk_File1,"vip_bulletdamage ^"1^"") write_file(hk_File1,"") write_file(hk_File1,"// Vips Online") write_file(hk_File1,"// Arata Vip-urile online in HUD prin scrierea in chat a comenzii /vips") write_file(hk_File1,"// 1 - Activat 0 - Dezactivat") write_file(hk_File1,"vip_hud ^"1^"") write_file(hk_File1,"") write_file(hk_File1,"// Hp primit pe un kill ") write_file(hk_File1,"vip_hp_kill ^"10^"") write_file(hk_File1,"") write_file(hk_File1,"// Hp primit pe un hs") write_file(hk_File1,"vip_hp_hs ^"25^"") write_file(hk_File1,"") write_file(hk_File1,"// Valoarea maxima a hp-ului pe care o poate avea Vip-ul") write_file(hk_File1,"vip_hp_max ^"100^"") write_file(hk_File1,"") write_file(hk_File1,"// Banii primiti pe un damage") write_file(hk_File1,"vip_money_damage ^"3^"") write_file(hk_File1,"") write_file(hk_File1,"// Banii primiti pe un kill") write_file(hk_File1,"vip_money_kill ^"500^"") write_file(hk_File1,"") write_file(hk_File1,"// Banii primiti pe un hs") write_file(hk_File1,"vip_money_hs ^"1000^"") write_file(hk_File1,"") write_file(hk_File1,"// Guns Menu - afiseaza meniul cu arme") write_file(hk_File1,"// Pe hartile de tip AWP, acest meniu va fi automat dezactivat") write_file(hk_File1,"// 1 - Activat 0 - Dezactivat") write_file(hk_File1,"vip_gun_menu ^"1^"") write_file(hk_File1,"") write_file(hk_File1,"// Items per round - primiti diverse obiecte la inceputul fiecarei runde") write_file(hk_File1,"// a - He Grenade") write_file(hk_File1,"// b - Flashbang (x2)") write_file(hk_File1,"// c - Smoke Grenade ") write_file(hk_File1,"// d - Deagle") write_file(hk_File1,"// e - Vest + Helm") write_file(hk_File1,"// f - Defuse Kit (Doar CT)") write_file(hk_File1,"// g - NightVision") write_file(hk_File1,"vip_items_round ^"abcdefg^"") write_file(hk_File1,"") write_file(hk_File1,"// Jumps - Salturi") write_file(hk_File1,"// 1 - Activat 0 - Dezactivat") write_file(hk_File1,"vip_jumps ^"1^"") write_file(hk_File1,"") write_file(hk_File1,"// Cate sarituri in plus poate sa faca deodata") write_file(hk_File1,"vip_maxjumps ^"1^"") write_file(hk_File1,"") write_file(hk_File1,"// De cate ori damage-ul jucatorului se mareste indiferent de arma") write_file(hk_File1,"// ex: daca este 2, atunci jucatorului i se mareste dmg-ul de 2 ori") write_file(hk_File1,"vip_damage ^"2^"") write_file(hk_File1,"") } server_cmd("exec %s",hk_File1) } public client_putinserver(id) { hk_IsUserVip[ id ] = 0; jumpnum[id] = 0 dojump[id] = false } public client_disconnect(id) { hk_IsUserVip[ id ] = 0; jumpnum[id] = 0 dojump[id] = false } public addvips(id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[32] read_argv(1, arg, 31) new szLog[256]; formatex(szLog,255,"%s",arg); write_file(hk_File4,szLog,-1); console_print(id, "[RANGFORT] Vip-ul a fost adaugat in lista") return PLUGIN_HANDLED } public vips(id, level, cid) { if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED new s_Name[ 32 ], s_AuthID[ 32 ]; get_user_name ( id, s_Name, 31 ); get_user_authid ( id, s_AuthID, 31 ); console_print(id, "===========================") for ( new i; i < hk_TotalLines; i++ ) { if ( strcmp ( s_Name, hk_VipsList[ i ] ) || strcmp ( s_AuthID, hk_VipsList[ i ] ) ) console_print(id, " - %s", hk_VipsList[ i ]) } console_print(id, "===========================") return PLUGIN_HANDLED } public Event_TextMsg_Restart() { hk_IsRestarting = true } public Event_HLTV_New_Round() { if( hk_IsRestarting ) { hk_IsRestarting = false hk_iRoundCount = 0 } } public Hook_PlayerSpawn ( const id ) { if ( ! is_user_alive ( id ) ) return HAM_IGNORED; if ( ! is_user_vip ( id ) ) { hk_IsUserVip[ id ] = 0; return HAM_IGNORED; } hk_IsUserVip[ id ] = 1; hk_iRoundCount++ new map[32]; get_mapname(map,31); if(equali(map, "awp_", 3)) return HAM_IGNORED; if (get_pcvar_num(gun_menu) == 1) if(hk_iRoundCount>=4) Showrod(id); set_task(0.3, "giveitems", id) return HAM_IGNORED; } public Ham_CBasePlayer_TakeDamage_Pre( const id, const iInflictor, const iAttacker, const Float:flDamage, const iDamageType ) { if ( ! is_user_vip ( iAttacker ) ) { hk_IsUserVip[ iAttacker ] = 0; return HAM_IGNORED; } hk_IsUserVip[ iAttacker ] = 1; new dmg1 = get_pcvar_num(cvardmg) if( iDamageType == DMG_FALL ) SetHamParamFloat(4, flDamage*1) else SetHamParamFloat(4, flDamage*dmg1) return HAM_IGNORED } public on_damage(id) { if(get_pcvar_num(g_type)) { static attacker; attacker = get_user_attacker(id) static damage; damage = read_data(2) if ( is_user_vip ( attacker ) ) { hk_IsUserVip[ id ] = 1; if(is_user_connected(attacker)) { if(fm_is_ent_visible(attacker,id)) { set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1) ShowSyncHudMsg(attacker, g_hudmsg, "%i^n", damage) } } }else hk_IsUserVip[ id ] = 0; } } public Damage(id) { new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint) if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id) if ( is_user_vip ( id ) ) { hk_IsUserVip[ id ] = 1; new money = read_data(2) * get_pcvar_num(mpd) if(hitpoint==1) money += get_pcvar_num(mhb) cs_set_user_money(attacker,cs_get_user_money(attacker) + money) }else hk_IsUserVip[ id ] = 0; } public death_msg() { if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300) } public hook_death() { hk_Killer = read_data(1) if ( (read_data(3) == 1) && (read_data(5) == 0) ) { hk_HpAdd = get_pcvar_num (health_hs_add) } else hk_HpAdd = get_pcvar_num (health_add) hk_HpMax = get_pcvar_num (health_max) if ( ! is_user_vip ( hk_Killer ) ) { hk_IsUserVip[ hk_Killer ] = 0; return; } hk_IsUserVip[ hk_Killer ] = 1; hk_KillerHp = get_user_health(hk_Killer) hk_KillerHp += hk_HpAdd if (hk_KillerHp > hk_HpMax) hk_KillerHp = hk_HpMax set_user_health(hk_Killer, hk_KillerHp) set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1) show_hudmessage(hk_Killer, "Healed +%d hp", hk_HpAdd) } public showAdmin(id) { if(get_pcvar_num(vip_hud) == 1) { new num, iLen, admin static pl[32], name[32], szBuff[2048] get_players(pl, num, "c") for(new i = 0; i < num; i++) { if ( is_user_vip ( pl[i] ) ) { hk_IsUserVip[ pl[i] ] = 1; get_user_name(pl[i], name, 31) iLen += format(szBuff[iLen], 2048 - iLen, "%d. %s^n", admin + 1, name) admin++ } } set_hudmessage(0, 255, 0, 0.02, 0.2, 0, 6.0, 7.0 ) show_hudmessage(id, " %s online:^n%s", admin > 1 ? "Vips" : "Vips", szBuff) arrayset(szBuff, 0, 2048) } return PLUGIN_HANDLED } public client_PreThink(id) { if(!is_user_alive(id)) return PLUGIN_CONTINUE if(get_pcvar_num(jumps) == 0) return PLUGIN_CONTINUE if ( ! is_user_vip ( id ) ) { hk_IsUserVip[ id ] = 0; return PLUGIN_CONTINUE } hk_IsUserVip[ id ] = 1; new nbut = get_user_button(id) new obut = get_user_oldbutton(id) if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP)) { if(jumpnum[id] < get_cvar_num("vip_maxjumps")) { dojump[id] = true jumpnum[id]++ return PLUGIN_CONTINUE } } if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)) { jumpnum[id] = 0 return PLUGIN_CONTINUE } return PLUGIN_CONTINUE } public client_PostThink(id) { if(!is_user_alive(id)) return PLUGIN_CONTINUE if(get_pcvar_num(jumps) == 0) return PLUGIN_CONTINUE if ( ! is_user_vip ( id ) ) { hk_IsUserVip[ id ] = 0; return PLUGIN_CONTINUE } hk_IsUserVip[ id ] = 1; if(dojump[id] == true) { new Float:velocity[3] entity_get_vector(id,EV_VEC_velocity,velocity) velocity[2] = random_float(265.0,285.0) entity_set_vector(id,EV_VEC_velocity,velocity) dojump[id] = false return PLUGIN_CONTINUE } return PLUGIN_CONTINUE } public Showrod(id) { show_menu(id, Keysrod, "Guns Menu^n\w1. M4a1^n\w2. AK47^n0. Exit^n", -1, "rod") } public Pressedrod(id, key) { switch (key) { case 0: { StripWeapons(id, Primary) give_item(id,"weapon_m4a1") cs_set_user_bpammo(id, CSW_M4A1, 90 ); } case 1: { StripWeapons(id, Primary) give_item(id,"weapon_ak47") cs_set_user_bpammo(id, CSW_AK47, 90); } case 9: { } } return PLUGIN_CONTINUE } public get_item_flags() { new sFlags[24] get_pcvar_string(items,sFlags,23) return read_flags(sFlags) } public giveitems(id) { new iFlags = get_item_flags() new CsTeams:userTeam = cs_get_user_team(id) if (iFlags&ITEM_HE) fm_give_item(id,"weapon_hegrenade") if(iFlags&ITEM_FS) { fm_give_item(id,"weapon_flashbang") fm_give_item(id,"weapon_flashbang") } if(iFlags&ITEM_SG) fm_give_item(id,"weapon_smokegrenade") if(iFlags&ITEM_DG) { StripWeapons(id, Secondary); fm_give_item(id,"weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 35 ); } if(iFlags&ITEM_VH) fm_give_item(id,"item_assaultsuit") if(userTeam == CS_TEAM_CT && iFlags&ITEM_DF) fm_give_item(id,"item_thighpack") if(iFlags&ITEM_NV) cs_set_user_nvg(id, 1) } stock is_user_vip ( id ) { new s_Name[ 32 ], s_AuthID[ 32 ]; get_user_name ( id, s_Name, 31 ); get_user_authid ( id, s_AuthID, 31 ); for ( new i; i < hk_TotalLines; i++ ) { if ( ! strcmp ( s_Name, hk_VipsList[ i ] ) ) return 1; if ( ! strcmp ( s_AuthID, hk_VipsList[ i ] ) ) return 1; } return 0; } stock StripWeapons(id, Type, bool: bSwitchIfActive = true) { new iReturn; if(is_user_alive(id)) { new iEntity, iWeapon; while((iWeapon = GetWeaponFromSlot(id, Type, iEntity)) > 0) iReturn = ham_strip_user_weapon(id, iWeapon, Type, bSwitchIfActive); } return iReturn; } stock GetWeaponFromSlot( id , iSlot , &iEntity ) { if ( !( 1 <= iSlot <= 5 ) ) return 0; iEntity = 0; const m_rgpPlayerItems_Slot0 = 367; const m_iId = 43; const XO_WEAPONS = 4; const XO_PLAYER = 5; iEntity = get_pdata_cbase( id , m_rgpPlayerItems_Slot0 + iSlot , XO_PLAYER ); return ( iEntity > 0 ) ? get_pdata_int( iEntity , m_iId , XO_WEAPONS ) : 0; } stock ham_strip_user_weapon(id, iCswId, iSlot = 0, bool:bSwitchIfActive = true) { new iWeapon if( !iSlot ) { static const iWeaponsSlots[] = { -1, 2, //CSW_P228 -1, 1, //CSW_SCOUT 4, //CSW_HEGRENADE 1, //CSW_XM1014 5, //CSW_C4 1, //CSW_MAC10 1, //CSW_AUG 4, //CSW_SMOKEGRENADE 2, //CSW_ELITE 2, //CSW_FIVESEVEN 1, //CSW_UMP45 1, //CSW_SG550 1, //CSW_GALIL 1, //CSW_FAMAS 2, //CSW_USP 2, //CSW_GLOCK18 1, //CSW_AWP 1, //CSW_MP5NAVY 1, //CSW_M249 1, //CSW_M3 1, //CSW_M4A1 1, //CSW_TMP 1, //CSW_G3SG1 4, //CSW_FLASHBANG 2, //CSW_DEAGLE 1, //CSW_SG552 1, //CSW_AK47 3, //CSW_KNIFE 1 //CSW_P90 } iSlot = iWeaponsSlots[iCswId] } const XTRA_OFS_PLAYER = 5 const m_rgpPlayerItems_Slot0 = 367 iWeapon = get_pdata_cbase(id, m_rgpPlayerItems_Slot0 + iSlot, XTRA_OFS_PLAYER) const XTRA_OFS_WEAPON = 4 const m_pNext = 42 const m_iId = 43 while( iWeapon > 0 ) { if( get_pdata_int(iWeapon, m_iId, XTRA_OFS_WEAPON) == iCswId ) { break } iWeapon = get_pdata_cbase(iWeapon, m_pNext, XTRA_OFS_WEAPON) } if( iWeapon > 0 ) { const m_pActiveItem = 373 if( bSwitchIfActive && get_pdata_cbase(id, m_pActiveItem, XTRA_OFS_PLAYER) == iWeapon ) { ExecuteHamB(Ham_Weapon_RetireWeapon, iWeapon) } if( ExecuteHamB(Ham_RemovePlayerItem, id, iWeapon) ) { user_has_weapon(id, iCswId, 0) ExecuteHamB(Ham_Item_Kill, iWeapon) return 1 } } return 0 1 Link to comment Share on other sites More sharing options...
Romparking 22 Posted October 25, 2015 Share Posted October 25, 2015 (edited) trecel in plugin.ini, VIP.amxx debug ,in general pluginurile de genu asta de pe goagal au mici bugulete care nu sunt daunatoare serverului Edited October 25, 2015 by Romparking 1 Link to comment Share on other sites More sharing options...
Dozer 0 Posted October 25, 2015 Share Posted October 25, 2015 Dami plugin.ini de la server ! Link to comment Share on other sites More sharing options...
Minnie 4,304 Posted October 25, 2015 Author Share Posted October 25, 2015 trecel in plugin.ini, VIP.amxx debug ,in general pluginurile de genu asta de pe goagal au mici bugulete care nu sunt daunatoare serverului L-am trecut, si uite rezultatul lui - > [0] 57gitxq3.sma.p::Ham_CBasePlayer_TakeDamage_Pre (line 281) [AMXX] Displaying debug trace (plugin "VIP.amxx") [AMXX] Run time error 4: index out of bounds Crezi ca n-am incercat asa ceva ? Am incercat, insa am vazut ca tot asa se comporta . Nu l-am luat de pe net, ci mi s-a oferit . Ideea e ca, si in " trecut " aveam probleme de genul cu acest plugin, si nu am gasit rezolvarea lui . Insa, chiar nu as vrea sa-l inlocuiesc, sau cel putin daca ar fi sa-l inlocuiesc, sa aibe aceleasi beneficii . 1 Link to comment Share on other sites More sharing options...
LondoN eXtream 110 Posted October 26, 2015 Share Posted October 26, 2015 E prea gresit codul acela care l'ai dat. Lasa avantajele ca sa'l rescriu de la 0. [P.S: Sunt multe greseli, de ce nu folosea un bool [new bool:hk_IsUserVip [ 33 ]] sau citea direct [ if(get_user_flags(index) & read_flags ("flag" )] Citeste mai multe despre eroarea acea aici: https://forums.alliedmods.net/showthread.php?t=150704 Link to comment Share on other sites More sharing options...
Minnie 4,304 Posted October 26, 2015 Author Share Posted October 26, 2015 // Vip Configuration File // BulletDamage - afiseaza dmg-ul facut unui jucator // 1 - Activat 0 - Dezactivat vip_bulletdamage "1" // Vips Online // Arata Vip-urile online in HUD prin scrierea in chat a comenzii /vips // 1 - Activat 0 - Dezactivat vip_hud "1" // Hp primit pe un kill vip_hp_kill "10" // Hp primit pe un hs vip_hp_hs "25" // Valoarea maxima a hp-ului pe care o poate avea Vip-ul vip_hp_max "100" // Banii primiti pe un damage vip_money_damage "3" // Banii primiti pe un kill vip_money_kill "500" // Banii primiti pe un hs vip_money_hs "3000" // Guns Menu - afiseaza meniul cu arme // Pe hartile de tip AWP, acest meniu va fi automat dezactivat // 1 - Activat 0 - Dezactivat vip_gun_menu "1" // Items per round - primiti diverse obiecte la inceputul fiecarei runde // a - He Grenade // b - Flashbang (x2) // c - Smoke Grenade // d - Deagle // e - Vest + Helm // f - Defuse Kit (Doar CT) // g - NightVision vip_items_round "abcdefg" // Jumps - Salturi // 1 - Activat 0 - Dezactivat vip_jumps "1" // Cate sarituri in plus poate sa faca deodata vip_maxjumps "1" // De cate ori damage-ul jucatorului se mareste indiferent de arma // ex: daca este 2, atunci jucatorului i se mareste dmg-ul de 2 ori vip_damage "2" 1 Link to comment Share on other sites More sharing options...
RyoKu 6 Posted November 3, 2015 Share Posted November 3, 2015 (edited) Am incercat sa il rezolv. https://www.xfile.ro/download/7d9d09b52869e9b33fbf4d2ec00b9c4f.html P.S: Pluginul nu era nici macar inchis cu } la sfarsit. Edited November 3, 2015 by RyoKu Link to comment Share on other sites More sharing options...
Minnie 4,304 Posted November 3, 2015 Author Share Posted November 3, 2015 Am incercat sa il rezolv. https://www.xfile.ro/download/7d9d09b52869e9b33fbf4d2ec00b9c4f.html P.S: Pluginul nu era nici macar inchis cu } la sfarsit. Vad ca nu-mi mai apare acele erori . Multumesc frumos . T/C . 1 Link to comment Share on other sites More sharing options...
Recommended Posts