Man tai tvarkoj jo tikrinimas atrodo.newb wrote:Nes specatorius su immunity gaus. Jau nekalbant apie tai, kad visi gyvi gaus.
Tik abejoju ar su entity_set_model() galima keist žaidėjo modelį.
Man tai tvarkoj jo tikrinimas atrodo.newb wrote:Nes specatorius su immunity gaus. Jau nekalbant apie tai, kad visi gyvi gaus.
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ą.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
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;}
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}
įdomumo dėlei, kuo skiriasi kaip pavadinta funkcija?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šė.
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ą:aurimasko wrote:ai, tu taip nori.. bet juk nesunku persikonstruoti..
ir nebūtina naudoti cstrike include, gali ir su get_user_team naudotis, tai tas pats.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}
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.
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)) } }}
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)) } } }}
Pažiurėk į 4-tą RegisterHam natyvo parametrą.aurimasko wrote:įdomumo dėlei, kuo skiriasi kaip pavadinta funkcija?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šė.jeigu dadės į pavadinimą Post žodį tai jau nereikes returint?
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);
Users browsing this forum: No registered users and 3 guests