←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] Jak sprawdzić, czy gracz zmie...


Najlepsza odpowiedź Asiap 22.06.2015 07:47

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

public plugin_init() {
	new szName[24];
	for(new i = 1; i <= 30; i++)
	{
		if(i == 2 || !get_weaponname(i, szName, 23))
		{
			continue;
		}

		RegisterHam(Ham_Item_Deploy, szName, "ItemDeploy", 1);
	}
}

public ItemDeploy(ent) {
	new id = get_pdata_cbase(ent, 41, 4);
	new szWeapon[24];

	if(!get_weaponname(get_pdata_int(get_pdata_cbase(id, 373), 43, 4), szWeapon, 23))
	{
		return;
	}

	client_print(id, print_chat, "Wyciagnales bron ^"%s^"", szWeapon);
}
Przejdź do postu
Zablokowany

  • +
  • -
Jcr - zdjęcie Jcr 21.06.2015

Witam, orientuje się ktoś, jak zrobić, żeby wykonał się kod gdy gracz zmieni bron?

Mam coś takiego:

...
public plugin_init()
{
    ...
    register_plugin(PLUGIN, VERSION, AUTHOR);
    register_event("CurWeapon", "event_curweapon", "be", "1=1");
    ...
}
...
public event_curweapon(id)
{
        if(is_user_alive(id))
        ColorChat(id, RED, "[DEBUG]^x04 ZMIANA BRONI");
        return PLUGIN_CONTINUE;
}
...

Teooretycznie, gdy gracz zmieni broń, powinna mu się wyświetlić wiadomość [DEBUG] ZMIANA BRONI

ale niestety tak się nie dzieje.

Czy mogę liczyć na waszą pomoc?


Użytkownik Jcr edytował ten post 21.06.2015 20:41
Odpowiedz

  • +
  • -
Najlepsza odpowiedź Asiap - zdjęcie Asiap 22.06.2015

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

public plugin_init() {
	new szName[24];
	for(new i = 1; i <= 30; i++)
	{
		if(i == 2 || !get_weaponname(i, szName, 23))
		{
			continue;
		}

		RegisterHam(Ham_Item_Deploy, szName, "ItemDeploy", 1);
	}
}

public ItemDeploy(ent) {
	new id = get_pdata_cbase(ent, 41, 4);
	new szWeapon[24];

	if(!get_weaponname(get_pdata_int(get_pdata_cbase(id, 373), 43, 4), szWeapon, 23))
	{
		return;
	}

	client_print(id, print_chat, "Wyciagnales bron ^"%s^"", szWeapon);
}
Odpowiedz

  • +
  • -
Jcr - zdjęcie Jcr 22.06.2015

Dziękuję ślicznie, działa jak należy :)

temat można zamknąć

Odpowiedz

  • +
  • -
Jcr - zdjęcie Jcr 22.06.2015

mam jeszcze taki problem, że nawet jak zrobie coś takiego:

public ItemDeploy(ent)
{
    new id = get_pdata_cbase(ent, 41, 4);
    new szWeapon[24];

    if(!get_weaponname(get_pdata_int(get_pdata_cbase(id, 373), 43, 4), szWeapon, 23))
    {
        return;
    }
    set_user_maxspeed(id, 80.0);
    ColorChat(id, RED, "[DEBUG]^x04 ZMIANA BRONI");
}

To wiadomość ZMIANA BRONI się wyświetla, a prędkośc gracza już się nie zmienia :/

 

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 22.06.2015

Do prędkości użyj Ham_CS_ResetPlayerMaxSpeed...

 

Poczytaj w dziale tutoriale poradnik by BlackPerfum

Odpowiedz

  • +
  • -
Jcr - zdjęcie Jcr 22.06.2015

Widziałem już ten poradnik pare razy, ale cięzko mi to jakoś zaimplementować, musze sobie do tego przysiąść i się skupić :P

Odpowiedz

  • +
  • -
Jcr - zdjęcie Jcr 23.06.2015

Ok, zrobiłem sobie to metodą ( http://amxx.pl/topic...ędkości-gracza/) ale użytkownika ASIAP też było okej

Można zamknąć

Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 23.06.2015

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany