cs_set_user_model()
ir neleidžia žaidėjams pasikeist modelio su "model" komanda.Čia nėra nieko ypatingo, tik tiek kad nereikia naudot papildomo plugino su dynamic natives, kad nustatyt žaidėjui modelį (kaip kad ConnorMcLeod'o Player Models API).
Support'o custom hitbox'am (model index) nėra (prireikus, siūlau rinktis Player Models API).
Reikalauja Fakemeta ir CStrike modulių.
Funkcijos su aprašymais (include faile aprašymai angliški):
Code: Select all
/* * Precache'ina zaidejo modeli. * Taip pat bando precache'inti "T" faila, jei jis egzistuoja. * * model[] modelio pavadinimas (pvz. "vip"). * late nustatyti i true, jei modelis precache'inamas kitur, nei plugin_precache(). * * @return modelio indeksas. */stock PrecachePlayerModel(const model[], bool:late = false); /* * Startuoja zaideju modelio naudojima. * * use true - jei norima naudoti zaidejo modelius, false - nustoja naudoti zaidejo modelius. * * @PASTABA Privaloma issaukti pries panaudojant SetPlayerModel(). Rekomenduotina plugin_init(). */stock UsePlayerModels(bool:use = true); /* * Nustato zaidejo modeli. * * client zaidejo indeksas. * model[] modelio pavadinimas (pvz. "vip"). Palikus tuscia, zaidejo modelis reset'inasi. */stock SetPlayerModel(client, const model[] = "");
client_disconnect()
) turėtumėt iššaukti SetPlayerModel()
, kad kitas prisijungęs žaidėjęs ir gavęs tą patį ID negautų to pačio modelio:Code: Select all
public client_disconnect(client){ SetPlayerModel(client);}
UsePlayerModels(false)
, visų žaidėjų modeliai neatsistatys į default'inius (ar bent jau iš karto). Tam reikėtų visiems žaidėjams (ar tiems, kuriems nustatėt custom modelius) iššaukti SetPlayerModel(client)
.Pastaba: Nebūtina naudot
PrecachePlayerModel()
, galima naudot ir precache_model()
ar engfunc()
alternatyvą, tiesiog PrecachePlayerModel()
dar patikrina, ar precache'inamas modelis dar turi papildomą failą <modelis>T.mdl ir jei taip - jį precache'ina.Pavyzdinis pluginas, kuris nustatys kiekvienam teroristui "gign" (vienas iš CT skin'ų) ir kiekvienam CT "leet" (vienas iš teroristų skin'ų) modelius. Pastebėkit, jog šiuo atveju žaidėjui atsijungus nereikia reset'inti modelio, nes naujiems žaidėjams betkuriuo atveju bus priskirtas modelis vos tik jie pasirinks komandą.
Code: Select all
#include <amxmodx>#include <pmodel> public plugin_init(){ register_event("TeamInfo", "OnTeamInfo", "a"); // Uzregistruojam ivyki, kai zaidėjo komanda pasikeicia. UsePlayerModels(); // Sita butina panaudot, kitaip SetPlayerModel() neveiks.} public OnTeamInfo(){ new client = read_data(1); // Gaunam zaidėjo ID iš ivykio. // Imanoma, kad jis atsijunge, tad reikia patikrinti. if (!is_user_connected(client)) return; // Gaunam nauja zaidejo komanda is ivykio. new team[2]; read_data(2, team, charsmax(team)); switch (team[0]) // Tikrinam pirma komandos raide. { case 'T': SetPlayerModel(client, "gign"); // Jei T, nustatom CT skin'a. case 'C': SetPlayerModel(client, "leet"); // Jei CT, nustatom T skin'a. }}
#include <pmodel>
.