Cześć.
Czy istnieje możliwość żeby wymusić na graczach mojego serwera aby nóż (interesuje mnie tylko nóż) mieli w lewej dłoni? Reszta broni może być ustawiona według własnych preferencji. Jakaś komenda, plugin?
Pozdrawiam.
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Napisano 20.05.2015 17:16
Cześć.
Czy istnieje możliwość żeby wymusić na graczach mojego serwera aby nóż (interesuje mnie tylko nóż) mieli w lewej dłoni? Reszta broni może być ustawiona według własnych preferencji. Jakaś komenda, plugin?
Pozdrawiam.
Napisano 20.05.2015 18:15
Użyj client_cmd(id, "cl_righthand 0") a jeśli nie zadziała (antyslowhack) to możesz wgrać na serwer nóż który jest odwrócony i używać go jako domyślny.
Napisano 20.05.2015 18:38
Użyj client_cmd(id, "cl_righthand 0") a jeśli nie zadziała (antyslowhack) to możesz wgrać na serwer nóż który jest odwrócony i używać go jako domyślny.
A co z graczami którzy mają nóż tak jak trzeba?
Napisano 20.05.2015 20:01
Panowie, chodzi mnie o to, ze mam fajnie zrobiony model noża z nazwą własnej sieci ale problem w tym, że gdy nóż jest w prawej ręce to napis jest odwrócony do góry nogami więc nie ma tego efektu. Natomiast gdy nóż jest w lewej ręce to wszystko jest ok.
Tą komendę client_cmd to mam użyć w pluginie? I nie będzie to wywalało graczy, którzy już mają ustawiony nóż/broń w lewej ręce?
Napisano 20.05.2015 20:18
Nie jest to najlepsze rozwiązanie, gdy gracz woli mieć domyślnie bronie w lewej to niestety zmuszamy go do zmiany.
#include <amxmodx> #include <amxmisc> #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "oeN." public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("CurWeapon","CurWeapon","be", "1=1") } public CurWeapon(id) { new weapon = get_user_weapon(id); if(weapon == CSW_KNIFE) client_cmd(id, "cl_righthand ^"0^""); else client_cmd(id, "cl_righthand ^"1^""); }
Polecił bym Ci bardziej drugie rozwiązanie, eksportuj teksturę z napisem, odwróć ją a następnie importuj na miejsce.
Napisano 20.05.2015 20:25
Oen mój drogi ale mi nie chodzi o broń tylko o nóż żeby był w lewej ręce. Też nie chce ingerować w preferencje graczy dlatego zależy mnie tylko na nożu. Czy można wymusić w lewej ręce ale tylko nóż?
Z modelem noża w którą stronę nie zrobię to będzie źle bo gdy zamienię ten napis tak jak ty radzisz to będzie znowu napis odwrotnie dla tych którzy mają nóż w lewej łapie. Dlatego chciałbym odgórnie narzucić, że tylko nóż ma być w lewej dłoni, reszta mnie nie interesuje.
Użytkownik Mohylew edytował ten post 20.05.2015 20:33
Napisano 20.05.2015 21:23
Dlatego dałem sprawdzenie czy gracz trzyma aktualnie nóż aby wymusić zmianę do lewej ręki, w innym wypadku, czyli innej broni, będzie miał w prawej. Innej opcji raczej nie ma.
Napisano 20.05.2015 21:25
Kod oeN powinnien być ok sprawdzaj zanim odpiszesz tak na przyszłość czy plugin działa
Napisano 20.05.2015 21:41
Czyli rozumiem, ze teraz mam skompilowac ten kod i wrzucic jako plugin na serwer, tak?
Napisano 21.05.2015 04:46
najlepsze rozwiazanie
#include <amxmodx> #include <hamsandwich> #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "asiap" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_Item_Deploy, "weapon_knife", "KnifeDeploy", 1); new szName[24], i = 1; for(; i <= CSW_P90; i++) { if(!(1<<CSW_KNIFE & 1<<i) && get_weaponname(i, szName, 23)) { RegisterHam(Ham_Item_Holster, szName, "WeaponHolster", 1); } } } public KnifeDeploy(ent) { UstawNoz(get_pdata_cbase(ent, 41, 4), 0); } public WeaponHolster(ent) { UstawNoz(get_pdata_cbase(ent, 41, 4), 1); } UstawNoz(id, iNum) { client_cmd(id, "cl_righthand %i", iNum); }
Użytkownik Asiap edytował ten post 21.05.2015 05:00
Napisano 21.05.2015 09:33
Moi drodzy ale odpowiedzcie mnie na kluczowe pytanie, teraz mam skompilować ten kod i wrzucić jako plugin na serwer, tak? : )
Napisano 21.05.2015 12:53
Tak.
Napisano 21.05.2015 18:15
Kod Asiapa niestety nie działa. Nie ma żadnej reakcji na serwerze.
Co do twojego kodu drogi Oenie, to wszystko działa tylko nie tak jak powinno : ). Otóż nóż jest w lewej ręce i o to mnie chodziło ale teraz nie można w ogóle trzymać żadnej broni w lewej ręce tylko przerzuca na prawą. Czy da się zmodyfikować ten kod żeby:
a ) tylko nóż był w lewej ręce
b ) reszta ustawień należy do gracza a nie tak jak teraz, że każda broń jest w prawej ręce. (Osobiście mnie to denerwuje bo sam trzymam broń w lewej łapie).
Użytkownik Mohylew edytował ten post 21.05.2015 18:16
Napisano 21.05.2015 20:08
No to jedziemy.
Jeśli gracz ma ustawione domyślnie trzymanie broni w lewej ręce to go omijamy.
#include <amxmodx> #include <amxmisc> #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "oeN." new bool:rightHand[33]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("CurWeapon","CurWeapon","be", "1=1") } public CurWeapon(id) { if(!rightHand[id]) return PLUGIN_CONTINUE; new weapon = get_user_weapon(id); query_client_cvar(id,"cl_righthand","PlayerHand"); if(weapon == CSW_KNIFE) client_cmd(id, "cl_righthand ^"0^""); return PLUGIN_CONTINUE; } public PlayerHand(id,const cvar[],const value[]){ new Float:val=str_to_float(value); val == 0 ? (rightHand[id] = false) : (rightHand[id] = true); }
Pisz jak coś będzie szwankować.
Napisano 21.05.2015 22:09
Teraz broń można ustawić jak się chce ale niestety kosa nie jest zablokowana i można dowolnie zmienić rękę w, której trzymamy nóż : ( Czyli tak jak jest tradycyjnie w cs.
Napisano 22.05.2015 07:50
Z twojej wypowiedzi zrozumiał tyle, że gracz mając kose w lewej ręce zmienia sobie na prawą poprzez komendę? Oczywiście że to jest możliwe i tego nie zablokujesz. Jeśli chcesz osiągnąć nóż w lewej ręce bez względu na to co gracz zrobi to przykro mi ale tego nie osiągniesz.
Napisano 22.05.2015 10:00
Napisano 22.05.2015 10:04
Zaraz... Ostatni kod właśnie to robi. Daje (tylko) nóż do lewej ręki gdy gracz ma ustawione domyślnie trzymanie broni w prawej. Jeśli gracz ma domyślnie w lewej to nic z nim nie robi bo nie ma potrzeby.
Mała poprawka:
#include <amxmodx> #include <amxmisc> #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "oeN." new bool:rightHand[33]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("CurWeapon","CurWeapon","be", "1=1") } public CurWeapon(id) { if(!rightHand[id]) return PLUGIN_CONTINUE; new weapon = get_user_weapon(id); query_client_cvar(id,"cl_righthand","PlayerHand"); if(weapon == CSW_KNIFE) client_cmd(id, "cl_righthand ^"0^""); else client_cmd(id, "cl_righthand ^"1^""); return PLUGIN_CONTINUE; } public PlayerHand(id,const cvar[],const value[]){ new Float:val=str_to_float(value); val == 0 ? (rightHand[id] = false) : (rightHand[id] = true); }
Napisano 22.05.2015 10:19
Te dwa ostatnie kody tak jakby w ogóle nie działają, można ustawiać broń jak się chce. Najbliżej ideału jest ten pierwszy kod ale zapytam ponownie czy można to ominąć (wymuszenie trzymania broni w prawej ręce) jakoś indywidualnie?
Napisano 22.05.2015 14:24
Dobra, zmusiłeś mnie bym sam sprawdził plugin u siebie na serwerze. No i efekt osiągnięty.
Co 1 sekundę sprawdza czy gracz ma broń w lewej/prawej ręce. Nawet jeśli zmieni swoje ustawienia, plugin się do niego przystosowuje. Efekt lewej ręki jest tylko gdy trzymamy nóż a w ustawieniach mamy domyślnie trzymanie w prawej.
#include <amxmodx> #include <engine> #include <hamsandwich> #include <cstrike> #define PLUGIN "Left-Hand Knife" #define VERSION "1.0" #define AUTHOR "oeN." new bool:rightHand[33]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) new classname[32] for(new i=1;i<31;++i) { if(i!=2) { get_weaponname(i,classname,31) RegisterHam(Ham_Item_Deploy, classname, "fwItemDeploy",1); } } } public client_authorized(id) set_task(1.0, "CheckHand", id); public CheckHand(id) { set_task(1.0, "CheckHand", id); if(!is_user_connected(id) || is_user_bot(id)) return PLUGIN_CONTINUE; query_client_cvar(id,"cl_righthand","PlayerHand"); return PLUGIN_CONTINUE; } public fwItemDeploy(wpn) { static id; id = entity_get_edict(wpn, EV_ENT_owner) new weapon = cs_get_weapon_id(wpn) if(weapon == CSW_KNIFE && rightHand[id]) client_cmd(id, "cl_righthand ^"0^""); else client_cmd(id, "cl_righthand ^"1^""); } public PlayerHand(id,const cvar[],const value[]){ new Float:val=str_to_float(value); if(val <= 0) rightHand[id] = false else rightHand[id] = true }
Użyłem innego sposobu by sprawdzić jaką broń ma gracz, bardziej wydajna.
Użytkownik oeN. edytował ten post 22.05.2015 14:38
0 użytkowników, 0 gości, 0 anonimowych