Dabar yra 2019 Lie 21 14:44




 Puslapis 15 [ 45 pranešimai(ų) ]  Eiti į 1, 2, 3, 4, 5  Kitas
Autorius Žinutė
 Pranešimo tema: Player Models
Žinutės numeris: #1  StandartinėParašytas: 2013 Kov 18 18:36 
AMX Mod X ekspertai
Vartotojo avataras

Užsiregistravo: 2011 Bal 02 11:23
Pranešimai: 873
Karma: 72

Miestas: Šiauliai


METŲ NARYS
Parašiau paprastą include'ą žaidėjų modelių keitimui. Turėtų būt patikimesnis už 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):

  1. /*
  2.  * Precache'ina zaidejo modeli.
  3.  * Taip pat bando precache'inti "T" faila, jei jis egzistuoja.
  4.  *
  5.  * model[]    modelio pavadinimas (pvz. "vip").
  6.  * late       nustatyti i true, jei modelis precache'inamas kitur, nei plugin_precache().
  7.  *
  8.  * @return    modelio indeksas.
  9.  */
  10. stock PrecachePlayerModel(const model[], bool:late = false);
  11.  
  12. /*
  13.  * Startuoja zaideju modelio naudojima.
  14.  *
  15.  * use         true - jei norima naudoti zaidejo modelius, false - nustoja naudoti zaidejo modelius.
  16.  *
  17.  * @PASTABA    Privaloma issaukti pries panaudojant SetPlayerModel(). Rekomenduotina plugin_init().
  18.  */
  19. stock UsePlayerModels(bool:use = true);
  20.  
  21. /*
  22.  * Nustato zaidejo modeli.
  23.  *
  24.  * client     zaidejo indeksas.
  25.  * model[]    modelio pavadinimas (pvz. "vip"). Palikus tuscia, zaidejo modelis reset'inasi.
  26.  */
  27. stock SetPlayerModel(client, const model[] = "");

SVARBU! Custom modeliai priskiriami pagal žaidėjų ID (indeksą), todėl jei modelį nustatinėjate pavieniams žaidėjams (pvz. VIP'ams ar admin'ams), žaidėjui atsijungiant (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:

  1. public client_disconnect(client)
  2. {
  3.     SetPlayerModel(client);
  4. }

Pastaba: Panaudojus 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ą.

  1. #include <amxmodx>
  2. #include <pmodel>
  3.  
  4. public plugin_init()
  5. {
  6.     register_event("TeamInfo", "OnTeamInfo", "a"); // Uzregistruojam ivyki, kai zaidėjo komanda pasikeicia.
  7.    
  8.     UsePlayerModels(); // Sita butina panaudot, kitaip SetPlayerModel() neveiks.
  9. }
  10.  
  11. public OnTeamInfo()
  12. {
  13.     new client = read_data(1); // Gaunam zaidėjo ID iš ivykio.
  14.    
  15.     // Imanoma, kad jis atsijunge, tad reikia patikrinti.
  16.     if (!is_user_connected(client))
  17.         return;
  18.    
  19.     // Gaunam nauja zaidejo komanda is ivykio.
  20.     new team[2];
  21.     read_data(2, team, charsmax(team));
  22.    
  23.     switch (team[0]) // Tikrinam pirma komandos raide.
  24.     {
  25.         case 'T': SetPlayerModel(client, "gign"); // Jei T, nustatom CT skin'a.
  26.         case 'C': SetPlayerModel(client, "leet"); // Jei CT, nustatom T skin'a.
  27.     }
  28. }

Instaliacija: Įkelkit pmodel.inc į include aplanką, o plugin'e prie include'ų prirašykit #include <pmodel>.


Prikabinti failai:
pmodel.inc [2.14 KiB]
Atsisiųsta 453 kartus(ų)


Paskutinį kartą redagavo hleV 2016 Sau 06 03:43. Iš viso redaguota 2 kartus.

_________________
Paveikslėlis ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!
Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Player Models
Žinutės numeris: #2  StandartinėParašytas: 2013 Kov 18 18:55 
nice one, gal ir komandu keitimo include'a parasytum kuris necrashintu apkeiciant 10x10+ (16x16 support)?


  
 
 Pranešimo tema: Re: Player Models
Žinutės numeris: #3  StandartinėParašytas: 2013 Kov 18 20:05 
AMX Mod X ekspertai
Vartotojo avataras

Užsiregistravo: 2011 Bal 02 11:23
Pranešimai: 873
Karma: 72

Miestas: Šiauliai


METŲ NARYS
Tetusis rašė:
nice one, gal ir komandu keitimo include'a parasytum kuris necrashintu apkeiciant 10x10+ (16x16 support)?

Nu pabandžiau savo ankstesnį kodą paverst į include'ą, bet netestavau. Ir šiaip geriau modulį naudot.

  1. /*
  2.  * Swaps team in groups, with delay.
  3.  *
  4.  * group    how many players to swap at once.
  5.  * delay    time between swaps (min 0.1).
  6.  */
  7. stock SwapTeams(group = 5, Float:delay = 0.1);


Prikabinti failai:
teamswap.inc [1.11 KiB]
Atsisiųsta 541 kartus(ų)

_________________
Paveikslėlis ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!
Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Player Models
Žinutės numeris: #4  StandartinėParašytas: 2013 Kov 18 20:51 
hleV rašė:
Tetusis rašė:
nice one, gal ir komandu keitimo include'a parasytum kuris necrashintu apkeiciant 10x10+ (16x16 support)?

Nu pabandžiau savo ankstesnį kodą paverst į include'ą, bet netestavau. Ir šiaip geriau modulį naudot.

  1. /*
  2.  * Swaps team in groups, with delay.
  3.  *
  4.  * group    how many players to swap at once.
  5.  * delay    time between swaps (min 0.1).
  6.  */
  7. stock SwapTeams(group = 5, Float:delay = 0.1);



dekui, isbandysiu ateityje (:


  
 
 Pranešimo tema: Re: Player Models
Žinutės numeris: #5  StandartinėParašytas: 2013 Bir 29 19:12 
Flooderis arba specialistas
Vartotojo avataras

Užsiregistravo: 2010 Rgs 02 15:47
Pranešimai: 660
Karma: 31
Norėjau paklausti ar šitaip keičiant, nebus tų visokių svc bad klaidų?


Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Player Models
Žinutės numeris: #6  StandartinėParašytas: 2013 Bir 29 19:23 
Flooderis arba specialistas
Vartotojo avataras

Užsiregistravo: 2012 Sau 25 18:20
Pranešimai: 889
Karma: 29
O tai gal nesunku būtų kam su šitu include padaryt admin skin pluginą, kad kitoks skinas būtų, nesinori pačiam klaidų pridirbt.



_________________
- Skype: ner.e5
- Steam: Tr1ckas
Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Player Models
Žinutės numeris: #7  StandartinėParašytas: 2013 Bir 29 19:48 
Flooderis arba specialistas
Vartotojo avataras

Užsiregistravo: 2010 Rgs 02 15:47
Pranešimai: 660
Karma: 31
Pagal mane tai taip

  1. #include <amxmodx>
  2. #include <hamsandwich>
  3. #include <pmodel>
  4.  
  5. new const Admin_Model[] = "models/player/Admin/Admin.mdl"
  6.  
  7. public plugin_precache()
  8. {
  9.     PrecachePlayerModel(Admin_Model)
  10. }
  11.  
  12. public plugin_init()
  13. {
  14.     RegisterHam(Ham_Spawn, "player", "Fwd_Spawn", 1)
  15.  
  16.     UsePlayerModels()
  17. }
  18.  
  19. public client_disconnect(id)
  20. {
  21.     SetPlayerModel(id)
  22. }
  23.  
  24. public Fwd_Spawn(id)
  25. {
  26.     if (!is_user_alive(id))
  27.         return
  28.  
  29.     if (get_user_flags(id) & ADMIN_LEVEL_H) // Pasikeisi flag jei reiks
  30.     {
  31.         SetPlayerModel(id, Admin_Model)
  32.     }
  33. }


Paskutinį kartą redagavo xFrostas 2015 Kov 29 11:38. Iš viso redaguota 2 kartus.

Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Player Models
Žinutės numeris: #8  StandartinėParašytas: 2013 Lap 01 14:50 
Gana aktyvus vartotojas

Užsiregistravo: 2012 Gru 31 15:39
Pranešimai: 269
Karma: 1
Hm


Paskutinį kartą redagavo Spag 2014 Lie 13 11:32. Iš viso redaguota 1 kartą.

Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Player Models
Žinutės numeris: #9  StandartinėParašytas: 2014 Spa 05 12:47 
Moderatorius
Vartotojo avataras

Užsiregistravo: 2012 Rgp 03 01:12
Pranešimai: 4492
Karma: 126

Miestas: Vilnius
Trickas rašė:
O tai gal nesunku būtų kam su šitu include padaryt admin skin pluginą, kad kitoks skinas būtų, nesinori pačiam klaidų pridirbt.

tai ar galetu kas :)



_________________
Paveikslėlis
Paveikslėlis
Paveikslėlis
Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Player Models
Žinutės numeris: #10  StandartinėParašytas: 2014 Spa 05 13:00 
AMX Mod X ekspertai
Vartotojo avataras

Užsiregistravo: 2011 Bal 02 11:23
Pranešimai: 873
Karma: 72

Miestas: Šiauliai


METŲ NARYS
xFrosto kodas turėtų tikt tam, tik Admin_Model reikšmė turėtų būt ne pilnas kelias iki modelio, o tik jo pavadinimas (jo atveju tik "Admin").



_________________
Paveikslėlis ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!
Atsijungęs
 Aprašymas  
 
Rodyti paskutinius pranešimus:  Rūšiuoti pagal  
 Puslapis 15 [ 45 pranešimai(ų) ]  Eiti į 1, 2, 3, 4, 5  Kitas


Dabar prisijungę

Vartotojai naršantys šį forumą: Registruotų vartotojų nėra ir 1 svečias


Jūs negalite kurti naujų temų šiame forume
Jūs negalite atsakinėti į temas šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite trinti savo pranešimų šiame forume
Jūs negalite prikabinti failų šiame forume

Ieškoti:
Pereiti į:  

cron