error native "cs_get_user_team"

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: error native "cs_get_user_team"

Post by hleV »

newb wrote:Nes specatorius su immunity gaus. Jau nekalbant apie tai, kad visi gyvi gaus.
Man tai tvarkoj jo tikrinimas atrodo.

Tik abejoju ar su entity_set_model() galima keist žaidėjo modelį.
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

Fly3r
Jau po truputį tampa savu
Posts: 138
Joined: 2011 Nov 06 11:35

Re: error native "cs_get_user_team"

Post by Fly3r »

Žaidėjo modelį galima nustatyti tik su cs_set_user_model() arba nustatant žaidėjo info model su set_user_info() pvz. Bet iš esmės tai yra tas pats.
Dar galima sukurtį žaidėjo modelio entity, bet čia gali būti klaidų ir nevisai gerai.

User avatar
aurimasko
Flooderis arba specialistas
Posts: 736
Joined: 2010 Sep 04 08:45

Re: error native "cs_get_user_team"

Post by aurimasko »

lygtais tikrinimas visgi tvarkoje, pratestinau atrodo gerai veikia.. o dėl modelio keitimo tai nekeičia su entity..
tada geriausia manau naudoti: http://forums.alliedmods.net/showthread.php?t=161255

Pukuotukas951
Gana aktyvus vartotojas
Posts: 445
Joined: 2011 Aug 27 09:29

Re: error native "cs_get_user_team"

Post by Pukuotukas951 »

aurimasko wrote:lygtais tikrinimas visgi tvarkoje, pratestinau atrodo gerai veikia.. o dėl modelio keitimo tai nekeičia su entity..
tada geriausia manau naudoti: http://forums.alliedmods.net/showthread.php?t=161255
Taip, tačiau čia keičia tiktais abiem komandom, ištrynus bent vienos komandos modelį - neveikia visas pluginas. O šis variantas kur aš rodžiau, keičia tik CT komandos skin ir kas su immunity duoda spec skiną.

--------Kita---------
Perskaičiau visų post'us/patarimus ir sutvarkiau kodą, bet vistiek noriu kad dar peržvelgtute ar viskas gerai, štai:

Code: Select all

#include <amxmodx>#include <cstrike>#include <hamsandwich> 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;     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 HAM_IGNORED;}

User avatar
aurimasko
Flooderis arba specialistas
Posts: 736
Joined: 2010 Sep 04 08:45

Re: error native "cs_get_user_team"

Post by aurimasko »

ai, tu taip nori.. bet juk nesunku persikonstruoti..

Code: Select all

 if(get_user_team(id) == 1){if(get_user_flags(id) & ADMIN_IMMUNITY)// duoda skin ct su immunityelse// duoda skin ct be immunity} 
ir nebūtina naudoti cstrike include, gali ir su get_user_team naudotis, tai tas pats.
o dėl cs_set_user_model, tai nepatariu naudoti nes jeigu žaidėjų kuriems keis modelį bus daug, gali lūžti serveris, mėtyt žaidėjus iš serverio.. geriau naudot tą api kur linką daviau.

Fly3r
Jau po truputį tampa savu
Posts: 138
Joined: 2011 Nov 06 11:35

Re: error native "cs_get_user_team"

Post by Fly3r »

Kaip jau minėjau, negražink reikšmių, nes jos nieko nepakeis POST forwarde. Naudok paprastą return. Tikrink vieną kartą ar CT komanda, kaip aurimasko parašė.

User avatar
aurimasko
Flooderis arba specialistas
Posts: 736
Joined: 2010 Sep 04 08:45

Re: error native "cs_get_user_team"

Post by aurimasko »

Fly3r wrote:Kaip jau minėjau, negražink reikšmių, nes jos nieko nepakeis POST forwarde. Naudok paprastą return. Tikrink vieną kartą ar CT komanda, kaip aurimasko parašė.
įdomumo dėlei, kuo skiriasi kaip pavadinta funkcija? :D jeigu dadės į pavadinimą Post žodį tai jau nereikes returint?

Pukuotukas951
Gana aktyvus vartotojas
Posts: 445
Joined: 2011 Aug 27 09:29

Re: error native "cs_get_user_team"

Post by Pukuotukas951 »

aurimasko wrote:ai, tu taip nori.. bet juk nesunku persikonstruoti..

Code: Select all

 if(get_user_team(id) == 1){if(get_user_flags(id) & ADMIN_IMMUNITY)// duoda skin ct su immunityelse// duoda skin ct be immunity} 
ir nebūtina naudoti cstrike include, gali ir su get_user_team naudotis, tai tas pats.
o dėl cs_set_user_model, tai nepatariu naudoti nes jeigu žaidėjų kuriems keis modelį bus daug, gali lūžti serveris, mėtyt žaidėjus iš serverio.. geriau naudot tą api kur linką daviau.
Taip vat su tuo pluginu iš alliedmodders, minėjau praeitame poste, kad perdarius kad keistų skiną tik CT - pluginas nebeveikia. Įdėsiu kodo dalį iš to plugino kuri keičia skinus ir bandysiu perdaryti, gal būt rasim sprendimą:

čia default

Code: Select all

stock fm_cs_reset_user_model_index(id){    if (pev_valid(id) != PDATA_SAFE)        return;        switch (fm_cs_get_user_team(id))    {        case CS_TEAM_T:        {            set_pdata_int(id, OFFSET_MODELINDEX, engfunc(EngFunc_ModelIndex, DEFAULT_MODELINDEX_T))        }        case CS_TEAM_CT:        {            set_pdata_int(id, OFFSET_MODELINDEX, engfunc(EngFunc_ModelIndex, DEFAULT_MODELINDEX_CT))        }    }}
čia keičiam tiktais CT skin ir duodam spec. skin.

Code: Select all

stock fm_cs_reset_user_model_index(id){    if (pev_valid(id) != PDATA_SAFE)        return;        switch (fm_cs_get_user_team(id))    {        case CS_TEAM_T:        {            //nieko nerašau, nes T komandai duoda zombiu pasirinktus skinus, žodžiu keičiam tik CT skinus        }        case CS_TEAM_CT:        {                            if (get_user_flags(id) & ADMIN_IMMUNITY)                            {                            set_pdata_int(id, OFFSET_MODELINDEX, engfunc(EngFunc_ModelIndex, DEFAULT_MODELINDEX_CT))                            }                                else                                {                            set_pdata_int(id, OFFSET_MODELINDEX, engfunc(EngFunc_ModelIndex, DEFAULT_MODELINDEX_CT))                                }        }    }}
štai kai taiip padarau nebeveikia pluginas, dėl to ir būnu priverstas naudoti su cs_set_user_model....

User avatar
aurimasko
Flooderis arba specialistas
Posts: 736
Joined: 2010 Sep 04 08:45

Re: error native "cs_get_user_team"

Post by aurimasko »

.. tai tu to plugino nekeisk, tiesiog įdėk į serverį.. tada į savo skinų pakeitimo pluginą includink tą include (cs_player_models_api) ir keisk...

Fly3r
Jau po truputį tampa savu
Posts: 138
Joined: 2011 Nov 06 11:35

Re: error native "cs_get_user_team"

Post by Fly3r »

aurimasko wrote:
Fly3r wrote:Kaip jau minėjau, negražink reikšmių, nes jos nieko nepakeis POST forwarde. Naudok paprastą return. Tikrink vieną kartą ar CT komanda, kaip aurimasko parašė.
įdomumo dėlei, kuo skiriasi kaip pavadinta funkcija? :D jeigu dadės į pavadinimą Post žodį tai jau nereikes returint?
Pažiurėk į 4-tą RegisterHam natyvo parametrą.

Code: Select all

 /** * Hooks the virtual table for the specified entity class. * An example would be: RegisterHam(Ham_TakeDamage, "player", "player_hurt"); * Look at the Ham enum for parameter lists. * * @param function      The function to hook. * @param EntityClass   The entity classname to hook. * @param callback      The forward to call. * @param post          Whether or not to forward this in post. * @return              Returns a handle to the forward.  Use EnableHamForward/DisableHamForward to toggle the forward on or off. */native HamHook:RegisterHam(Ham:function, const EntityClass[], const Callback[], Post=0); 
Reiškinius susijusius su šiuo forwardu gali redaguoti tik PRE

Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 4 guests