Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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

Uzupełnianie amunicji i dawanie itemów kanapką


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

#1 szelbi

    Hero

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:1032
  • Steam:steam
  • Imię:Norbert
  • Lokalizacja:Częstochowa
Offline

Napisano 18.02.2014 17:02

Bawiłem się trochę kanapką i stworzyłem taki wybryk natury, który crashuje mi serwer :D

Poniżej error logi. Czy takie coś ma w ogóle rację bytu?

#include <amxmodx>
#include <hamsandwich>
 
public plugin_init()
{
	register_plugin("Nieskończone granaty", "1.0.0", "szelbi");
	RegisterHam(Ham_Spawn, "player", "SpawnGracza", 1);
	RegisterHam(Ham_Player_UpdateClientData, "player", "UzupelnijGranaty", 1);
}
 
public SpawnGracza(id)
{
	if(!is_user_connected(id))
	return;
 
	ExecuteHamB(Ham_AddPlayerItem, id, "weapon_hegrenade");
	ExecuteHamB(Ham_AddPlayerItem, id, "weapon_flashbang");
	ExecuteHamB(Ham_AddPlayerItem, id, "weapon_smokegrenade");
}
 
public UzupelnijGranaty(id)
{
	if(!is_user_connected(id))
	return;
 
	ExecuteHam(Ham_GiveAmmo, id, 20, "weapon_hegrenade");
	ExecuteHam(Ham_GiveAmmo, id, 20, "weapon_flashbang");
	ExecuteHam(Ham_GiveAmmo, id, 20, "weapon_smokegrenade");
}
L 02/18/2014 - 16:58:03: Start of error session.
L 02/18/2014 - 16:58:03: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20140218.log")
L 02/18/2014 - 16:58:03: [HAMSANDWICH] Bad arg count.  Expected 5, got 4.
L 02/18/2014 - 16:58:03: [AMXX] Displaying debug trace (plugin "granaty.amxx")
L 02/18/2014 - 16:58:03: [AMXX] Run time error 10: native error (native "ExecuteHam")
L 02/18/2014 - 16:58:03: [AMXX]    [0] granaty.sma::UzupelnijGranaty (line 26)

  • +
  • -
  • 0

#2 Drago36

    Profesjonalista - if you know what i mean

  • Power User

Reputacja: 560
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 18.02.2014 17:11

ExecuteHam nie jest wychwytywane przez RegisterHam.

A rejestrujesz RegisterHam'em

RegisterHam(Ham_Player_UpdateClientData, "player", "UzupelnijGranaty", 1);

Więc powinieneś użyć ExecuteHamB ,który jest wychwytywany przez RegisterHam.

 

Spoiler

  • +
  • -
  • 0

#3 szelbi

    Hero

  • Autor tematu
  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:1032
  • Steam:steam
  • Imię:Norbert
  • Lokalizacja:Częstochowa
Offline

Napisano 18.02.2014 17:17

Tyle, że Ham_Player_UpdateClientData jest wywoływane m.in. przy zmianie ilości amunicji, więc jeśli użyję ExecuteHamB to się chyba zapętli, prawda?


  • +
  • -
  • 0

#4 sebul

    Godlike

  • Junior Admin

Reputacja: 2016
Godlike

  • Postów:5411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 18.02.2014 17:20

ExecuteHam nie jest wychwytywane przez RegisterHam.
A rejestrujesz RegisterHam'em

RegisterHam(Ham_Player_UpdateClientData, "player", "UzupelnijGranaty", 1);
Więc powinieneś użyć ExecuteHamB ,który jest wychwytywany przez RegisterHam.
 
Spoiler

A co z tego, że rejestruje "kanapką"? W funkcji, która jest zarejestrowana "kanapką", nie trzeba wywoływać "kanapki" z "B". Nie chodzi mi tutaj o to, że akurat w tym przypadku dodanie "B" nie rozwiąże problemu, ale o to w jaki sposób napisałeś to o rejestracji, jedno nie ma żadnego związku z drugim.

Ogólnie według mnie po prostu funkcja "UzupelnijGranaty" wykonuje się zbyt często, to też serwer nie wyrabia, albo też sprawdź najpierw czy samo wywoływanie "Ham_AddPlayerItem" działa.
  • +
  • -
  • 1
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Generator tabeli expa - aż do 103600 poziomu

#5 szelbi

    Hero

  • Autor tematu
  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:1032
  • Steam:steam
  • Imię:Norbert
  • Lokalizacja:Częstochowa
Offline

Napisano 18.02.2014 17:26

Ogólnie według mnie po prostu funkcja "UzupelnijGranaty" wykonuje się zbyt często, to też serwer nie wyrabia, albo też sprawdź najpierw czy samo wywoływanie "Ham_AddPlayerItem" działa.

Zakomentowałem drugi RegisterHam i też się crashuje, tyle że bez logów, więc wywoływanie działa, ale niekoniecznie prawidłowo ;)
  • +
  • -
  • 0

#6 CheQ

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 1984
Godlike

  • Postów:5534
  • Imię:Adaś
  • Lokalizacja:Glinianka
Offline

Napisano 19.02.2014 10:12

L 02/18/2014 - 16:58:03: [HAMSANDWICH] Bad arg count.  Expected 5, got 4.

Czy tylko mi się wydaje czy tu krzyczy że brakuje mu jednego parametra w

ExecuteHam(Ham_GiveAmmo, id, 20, "weapon_hegrenade");
/**
	 * Description:		Gives ammo to the entity.
	 * Forward params:	function(this, Amount, const Name[], Max)
	 * Return type:		Integer.
	 * Execute params:	ExecuteHam(Ham_GiveAmmo, this, amount, "type", max);
	 */
	Ham_GiveAmmo

http://www.amxmodx.o...go=module&id=24

 

a na alliedach znalazłem takie coś.

ExecuteHam(Ham_GiveAmmo, id, 200, "338magnum", 200);  

  • +
  • -
  • 0

b_560_95_1.png


#7 szelbi

    Hero

  • Autor tematu
  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:1032
  • Steam:steam
  • Imię:Norbert
  • Lokalizacja:Częstochowa
Offline

Napisano 19.02.2014 14:38

Krzyczy, ale po dopisaniu dzieje się to samo co wcześniej.


  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

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