Ok. Stworzyłem coś w rodzaju biblioteki, może bardziej jakiegoś stocka, może stworzyłem to za dużo powiedziane ale o tym niżej.
Zastosowanie:
Łatwa i przyjazna użytkownikowi zmiana modelu gracza bez błędu gry SVC_BAD związanego z modelami graczy.
Przygotowanie do użytku:
Na samym początku naszego pluginu dołączamy linijke:
#include <playermodel>Aby wszystko działało poprawnie wymagane jest umieszczenie jeszcze 3 dodatkowych funkcji w odpowiednich miejscach naszego pluginu w którym będziemy podmieniać modele graczy;
1) funkcja player_model_init() musi być umieszczona w plugin_init(), im wyżej tym lepiej, przykład:
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); player_model_init(); // dalszy ciag funkcji }2) funkcje player_model_putinserver(id) umieszczamy w client_putinserver(id), przykład:
public client_putinserver(id) { player_model_putinserver(id); // dalszy ciag funkcji }3) ostatnią funkcje player_model_disconnect(id) umieszczamy w client_disconnect(id), przykład:
public client_disconnect(id) { player_model_disconnect(id); // dalszy ciag funkcji }
Użycie:
Całość okraja się do posługiwania się dwoma funkcjami fm_reset_user_model(id) oraz fm_set_user_model(id, model_name[]).
Funkcja fm_reset_user_model służy do zmiany modelu gracza na standardowy, jako argument przyjmuje index gracza któremu chcemy zresetować model. Funkcja zwraca "true" jeśli wszystko udało się pomyślnie, "false" kiedy wystąpił jakiś problem.
Funkcja fm_set_user_model służy do zmiany modelu gracza na niestandardowy, jako argumenty funkcji podajemy index gracza któremu chcemy zmienić model oraz nazwę modelu na jaki ma zostać on zmieniony. Funkcja zwraca "true" gdy zamiana się udała oraz "false" kiedy wystąpił jakiś problem.
Uwaga: aby móc zmienić model nadal należy użyć funkcji precache_model() w plugin_precache(), tak jak to było w przypadku użycia funkcji cs_set_user_model().
Przykład:
#include <amxmisc> #include <amxmodx> #include <hamsandwich> #include <playermodel> public plugin_precache() { precache_model("models/player/custom_model/custom_model.mdl"); } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); player_model_init(); RegisterHam(Ham_Spawn, "player", "vip_spawn", 1); } public client_putinserver(id) { player_model_putinserver(id); } public client_disconnect(id) { player_model_disconnect(id); } public vip_spawn(id) { if(is_user_alive(id)) { new CsTeams:playerteam = cs_get_user_team(id); if(playerteam == CS_TEAM_CT) { fm_set_user_model(id, "vip_ct"); } } }
Kilka słów na koniec:
Jak wspomniałem wyżej "Stworzyłem coś w rodzaju biblioteki", to nie tak do końca prawda ponieważ większość "wyciągnąłem" z pluginu Base Builder 6.5 by Tirant i opierając się na dziele Ortega (http://amxx.pl/topic...odels-extended/) powstało to co mam wam dziś do zaprezentowania.
"Biblioteka" jest sprawdzona, to znaczy podmienia modele, nie wiem czy występują błędy przy podmienie większej ilości modeli.
Publikuję to bo może komuś jeszcze się przyda i może ktoś mądrzejszy dostrzeże ewentualne błedy czy wpadnie na pomysł rozwinięcia "biblioteki".
Załączone pliki
Użytkownik diggs edytował ten post 07.01.2012 19:35