Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Pukuotukas951
Gana aktyvus vartotojas
Posts: 445 Joined: 2011 Aug 27 09:29
Post
by Pukuotukas951 » 2012 Apr 26 16:45
Code: Select all
L 04/26/2012 - 17:26:48: [AMXX] Run time error 10 (plugin "skinaictsa.amxx") (native "cs_get_user_team") - debug not enabled!
mano kodas:
Code: Select all
#include <amxmodx>#include <amxmisc>#include <cstrike>#include <hamsandwich>#include <engine> public plugin_init(){ register_plugin("CT skin keitimas", "1.0", "AmxModX"); RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);} public plugin_precache(){ precache_model("models/player/skinas1/skinas1.mdl"); precache_model("models/player/skinas2/skinas2.mdl"); precache_model("models/player/skinas2/skinas2T.mdl");} public fwHamPlayerSpawnPost(id){ new CsTeams:userTeam = cs_get_user_team(id) if (get_user_flags(id) & ADMIN_IMMUNITY && userTeam == CS_TEAM_CT) { cs_set_user_model(id, "skinas_1"); } else if(userTeam == CS_TEAM_CT) { cs_set_user_model(id, "skinas_2"); } return PLUGIN_CONTINUE;}
Fly3r
Jau po truputį tampa savu
Posts: 138 Joined: 2011 Nov 06 11:35
Post
by Fly3r » 2012 Apr 26 17:13
Ham_Spawn'e tikrink ar žaidėjas gyvas, nes šis forwardas kartais iškviečiamas kai žaidėjas negyvas. Be to, kam returnini PLUGIN_CONTINUE, jeigu čia HAM forwardas, o ne AMX, ir dar registruotas kaip POST, tad iš viso nereikia nieko returnint. Ir geriau naudok switch, tikrindamas komandą.
Pukuotukas951
Gana aktyvus vartotojas
Posts: 445 Joined: 2011 Aug 27 09:29
Post
by Pukuotukas951 » 2012 Apr 26 17:21
Su swich sakė geriau nenaudot nes ten nesamonės būna, tai turi būt taip?:
Code: Select all
#include <amxmodx>#include <amxmisc>#include <cstrike>#include <hamsandwich>#include <engine> public plugin_init(){ register_plugin("CT skin keitimas", "1.0", "AmxModX"); RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);} public plugin_precache(){ precache_model("models/player/skinas1/skinas1.mdl"); precache_model("models/player/skinas2/skinas2.mdl"); precache_model("models/player/skinas2/skinas2T.mdl");} public fwHamPlayerSpawnPost(id){ new CsTeams:userTeam = cs_get_user_team(id) if (!is_user_alive(id) && get_user_flags(id) & ADMIN_IMMUNITY && userTeam == CS_TEAM_CT) { cs_set_user_model(id, "skinas_1"); } else if(userTeam == CS_TEAM_CT) { cs_set_user_model(id, "skinas_2"); }}
hleV
AMX Mod X ekspertai
Posts: 875 Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai
Post
by hleV » 2012 Apr 26 17:55
Tikrinimą ar gyvas dėk PRIEŠ cs_get_user_team() .
aurimasko
Flooderis arba specialistas
Posts: 736 Joined: 2010 Sep 04 08:45
Post
by aurimasko » 2012 Apr 26 17:58
o ne geriau būtų taip? bet čia tik jeigu į tą pluginą dedi tik skin keitimą, nes jeigu daugiau tai manau reikės cstrike modulio..
Code: Select all
#include <amxmodx>#include <hamsandwich>#include <cs_player_models_api> public plugin_init(){ register_plugin("CT skin keitimas", "1.0", "AmxModX"); RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);} public plugin_precache(){ precache_model("models/player/skinas1/skinas1.mdl"); precache_model("models/player/skinas2/skinas2.mdl"); precache_model("models/player/skinas2/skinas2T.mdl");} public fwHamPlayerSpawnPost(id){ if(!is_user_alive(id)) return HAM_IGNORED if(!(get_user_flags(id) & ADMIN_IMMUNITY)) return HAM_IGNORED cs_set_player_model(id, (get_user_team(id) == 1) ? "skinas_1" : "skinas_2") return HAM_IGNORED}
Beje, nežinau ar šis yra geras būdas.
Include
cs_players_model_api gali parsisiųsti iš
http://forums.alliedmods.net/showthread.php?t=161255
Last edited by
aurimasko on 2012 Apr 26 19:18, edited 2 times in total.
newb
Pluginų patvirtintojas
Posts: 1047 Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:
Post
by newb » 2012 Apr 26 18:12
Code: Select all
if(!is_user_alive(id) || (!(get_user_flags(id) & ADMIN_IMMUNITY)))
Toks tikrinimas netiks, kad irasyti i 1 elute reikes daryti ka nors tokio
Code: Select all
if(is_user_alive(id) & (get_user_flags(id) & ADMIN_IMMUNITY)) return
aurimasko
Flooderis arba specialistas
Posts: 736 Joined: 2010 Sep 04 08:45
Post
by aurimasko » 2012 Apr 26 18:16
o kodėl gi netinka?
Code: Select all
if(!is_user_alive(id) || (!(get_user_flags(id) & ADMIN_IMMUNITY))) return HAM_IGNORED
Jeigu negyvas arba neturi ADMIN_IMMUNITY flago, tai nutraukia veiksmą.
newb
Pluginų patvirtintojas
Posts: 1047 Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:
Post
by newb » 2012 Apr 26 18:20
Nes specatorius su immunity gaus. Jau nekalbant apie tai, kad visi gyvi gaus.
aurimasko
Flooderis arba specialistas
Posts: 736 Joined: 2010 Sep 04 08:45
Post
by aurimasko » 2012 Apr 26 18:27
ai blmb dabar supratau kodėl
mm tada galima daryt:
Code: Select all
if(!is_user_alive(id))return HAM_IGNORED if((!(get_user_flags(id) & ADMIN_IMMUNITY)))return HAM_IGNORED
arba kaip nors tobuliau gal galima :?
aaarnas
Vyr. diskusijų administratorius
Posts: 3891 Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:
Post
by aaarnas » 2012 Apr 26 18:41
Jau parašė, kaip galima labai gerai. Daryk taip, kad pats suprastum.
O kaip galima daryti, yra pamokų skyrius.
Palikau CS pasaulį ;/ . Nebepasiekiamas.
Users browsing this forum: Ahrefs [Bot] , Bing [Bot] and 4 guests