Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Nóż w lewej dłoni.


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
29 odpowiedzi w tym temacie

#1 Mohylew

    Zaawansowany

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:95
Offline

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.


  • +
  • -
  • 0

#2 oeN.

    Wszechwidzący

  • Użytkownik

Reputacja: 95
Zaawansowany

  • Postów:294
  • Lokalizacja:Dom
Offline

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.


  • +
  • -
  • 1

#3 Sniper Elite

    Master

  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

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?


  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#4 Mohylew

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:95
Offline

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?


  • +
  • -
  • 0

#5 oeN.

    Wszechwidzący

  • Użytkownik

Reputacja: 95
Zaawansowany

  • Postów:294
  • Lokalizacja:Dom
Offline

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.


  • +
  • -
  • 1

#6 Mohylew

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:95
Offline

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

  • +
  • -
  • 0

#7 oeN.

    Wszechwidzący

  • Użytkownik

Reputacja: 95
Zaawansowany

  • Postów:294
  • Lokalizacja:Dom
Offline

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.


  • +
  • -
  • 1

#8 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 20.05.2015 21:25

Kod oeN powinnien być ok sprawdzaj zanim odpiszesz tak na przyszłość czy plugin działa ;)


  • +
  • -
  • 0

#9 Mohylew

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:95
Offline

Napisano 20.05.2015 21:41

Czyli rozumiem, ze teraz mam skompilowac ten kod i wrzucic jako plugin na serwer, tak?


  • +
  • -
  • 0

#10 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

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

  • +
  • -
  • 0

#11 Mohylew

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:95
Offline

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? : )


  • +
  • -
  • 0

#12 oeN.

    Wszechwidzący

  • Użytkownik

Reputacja: 95
Zaawansowany

  • Postów:294
  • Lokalizacja:Dom
Offline

Napisano 21.05.2015 12:53

Tak.


  • +
  • -
  • 0

#13 Mohylew

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:95
Offline

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

  • +
  • -
  • 0

#14 oeN.

    Wszechwidzący

  • Użytkownik

Reputacja: 95
Zaawansowany

  • Postów:294
  • Lokalizacja:Dom
Offline

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ć.


  • +
  • -
  • 0

#15 Mohylew

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:95
Offline

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.


  • +
  • -
  • 0

#16 oeN.

    Wszechwidzący

  • Użytkownik

Reputacja: 95
Zaawansowany

  • Postów:294
  • Lokalizacja:Dom
Offline

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.


  • +
  • -
  • 1

#17 Mohylew

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:95
Offline

Napisano 22.05.2015 10:00

Jak nie osiagne jak w twoim pierwszym kodzie noz byl zablokowany w lewej lapie i byloby wszystko cacy gdyby nie to, ze bron byla wtedy wymuszona do trzymania w prawej rece? :) Dobrze przyjacielu zapytam iaczej, troche przewrotnie.
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?
  • +
  • -
  • 0

#18 oeN.

    Wszechwidzący

  • Użytkownik

Reputacja: 95
Zaawansowany

  • Postów:294
  • Lokalizacja:Dom
Offline

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);
}

  • +
  • -
  • 0

#19 Mohylew

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:95
Offline

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? 


  • +
  • -
  • 0

#20 oeN.

    Wszechwidzący

  • Użytkownik

Reputacja: 95
Zaawansowany

  • Postów:294
  • Lokalizacja:Dom
Offline

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żytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych