Nóż w lewej dłoni.
Mohylew
20.05.2015
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.
oeN.
20.05.2015
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.
Sniper Elite
20.05.2015
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?
Mohylew
20.05.2015
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?
oeN.
20.05.2015
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.
Mohylew
20.05.2015
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.
Edited by Mohylew, 20.05.2015 20:33.
oeN.
20.05.2015
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.
DarkGL
20.05.2015
Kod oeN powinnien być ok sprawdzaj zanim odpiszesz tak na przyszłość czy plugin działa
Mohylew
20.05.2015
Czyli rozumiem, ze teraz mam skompilowac ten kod i wrzucic jako plugin na serwer, tak?
Asiap
21.05.2015
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); }
Edited by Asiap, 21.05.2015 05:00.
Mohylew
21.05.2015
Moi drodzy ale odpowiedzcie mnie na kluczowe pytanie, teraz mam skompilować ten kod i wrzucić jako plugin na serwer, tak? : )
Mohylew
21.05.2015
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).
Edited by Mohylew, 21.05.2015 18:16.
oeN.
21.05.2015
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ć.
Mohylew
21.05.2015
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.
oeN.
22.05.2015
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.
Mohylew
22.05.2015
Jako, ze pewnie 90% osob gra w cs trzymajac bron w prawej rece ustawienia tego pierwszego kodu nie sa takie zle. Ale czy ja dla siebie jestem w stanie to jakos ominac i trzymac bron w lewej lapie? Czy jestesmy wstanie znalezc taka mala furtke?
oeN.
22.05.2015
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); }
Mohylew
22.05.2015
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?
oeN.
22.05.2015
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.
Edited by oeN., 22.05.2015 14:38.