←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

[Błędy] Run time error 10: native error (n...


Najlepsza odpowiedź Warjat 01.04.2014 17:01

dodałem 

if(is_user_connected(id))

i na obecną chwilę nie ma błędów mimo że jest problem z 

L 04/01/2014 - 17:31:46: Invalid player id 0
L 04/01/2014 - 17:31:46: [AMXX] Displaying debug trace (plugin "SurfXPMod.amxx")
L 04/01/2014 - 17:31:46: [AMXX] Run time error 10: native error (native "get_user_weapon")
L 04/01/2014 - 17:31:46: [AMXX]    [0] Untitled.sma::fwHamTakeDamage (line 366)

To co podałem wyżej to także mam z tym błąd 

public fwHamTakeDamage(victim, inflictor, attacker, Float:damage, damagebits)
{
	if(get_user_weapon(attacker) == CSW_KNIFE && PLEVEL[ attacker ] >= 5) // tutaj problem
	{
		SetHamParamFloat(4, damage * 1.5)
		return HAM_HANDLED
	}
}
Przejdź do postu
Zablokowany

  • +
  • -
Warjat - zdjęcie Warjat 04.03.2014

public EventPlayerSpawn( id )
{
	new health
	new newhealth
	new money
	new newmoney
	new armor
	new newarmor
	
	money = cs_get_user_money(id)
	newmoney = money + (PLEVEL[ id ] * 100)
	cs_set_user_money( id, newmoney)
	
	if( PLEVEL[ id ] <= 25 )
	{
		health = get_user_health( id )
		newhealth = health + (PLEVEL[ id ])
		set_user_health( id, newhealth )
	}
	else
	{
		health = get_user_health( id )
		newhealth = 125
		
		armor = get_user_armor( id )
		newarmor = armor + ((PLEVEL[ id ]) - 25)
		set_user_armor( id, newarmor )
		set_user_health( id, newhealth )
	}
}

Czy może ktoś powiedzieć jak to naprawić bądź czy ktoś mi to naprawi ?

Odpowiedz

  • +
  • -
Drago36 - zdjęcie Drago36 04.03.2014

Dodaj:

#include <cstrike>
Odpowiedz

  • +
  • -
Warjat - zdjęcie Warjat 04.03.2014

Posiadam taką bibliotekę w silniku (jest już aktywna/dodana)


Użytkownik Warjat edytował ten post 04.03.2014 21:55
Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 12.03.2014

sprawdz czy newmoney jest wieksze lub rowne 16000. Jesli tak to ustaw graczowi 16k, jesli nie to ustaw mu newmoney.
Moze to jest powod.
Odpowiedz

  • +
  • -
Warjat - zdjęcie Warjat 13.03.2014

Tzn ogółem to jest tak że jak gracz co lvl ma + xxx $ gotówki Czyli na spawnie mając 10 lv będzie miał ponad 16k $ czyli np na starcie bd miał powiedzmy 20k

 

Jak coś to jest ten mod : http://amxx.pl/topic...98-surf-xp-mod/

 

Od początku jest tam błąd w tym + jeszcze jeden jest bo z bronią błąd 

[AMXX] Displaying debug trace (plugin "SurfXPMod.amxx")
[AMXX] Run time error 10: native error (native "get_user_weapon")
[AMXX]    [0] SurfXPMod.sma::fwHamTakeDamage (line 346)

Jak widać oryginalnie już jest błąd w paczce 

 

Up jak wiesz o co chodzi to bardzo proszę o pomoc 

Odpowiedz

  • +
  • -
Wielkie Jol - zdjęcie Wielkie Jol 13.03.2014

Może trzeba sprawdzić, czy gracz jest żywy przy spawnie? Zdarzają się takie przypadki, że gracz nie zdąży się zrespić, czy coś takiego. Ponadto, nie wiem, jak działa PLEVEL, ale warto by było zrobić warunek, że max pieniądze mogą wynosić 16000$ i, że jeżeli newmoney będzie wynosiło mniej niż 0 to ustawić je na 0.

Odpowiedz

  • +
  • -
Warjat - zdjęcie Warjat 14.03.2014

A odnośnie broni co zrobić ? 

Odpowiedz

  • +
  • -
Warjat - zdjęcie Warjat 15.03.2014

A w jaki sposób dodać warunek żeby kasa nie przekraczała 16k ? bo na chwilę obecną odnośnie kasy to jest problem z tym że jak mam 10k to w następnej rundzie mam 20k powiedzmy i w tym jest problem z tego co opisałeś wyżej 

Odpowiedz

  • +
  • -
Drago36 - zdjęcie Drago36 21.03.2014

Przykładowy warunek na nie przekraczanie 16 tys.
cs_set_user_money(id, min(cs_get_user_money(id)+1000, 16000), 1);


U cb powinien wyglądać tak:
cs_set_user_money(id, min(newmoney, 16000), 1);
Odpowiedz

Aemiksowy - zdjęcie Aemiksowy 21.03.2014

Wszyscy piszą to to i tamto, a nikt nie pofatygował się sprawdzić, że brakuje tu ewidentnie sprawdzanie czy "id" żyje... Zatem przed tym wszystkim, należy dodać: is_user_alive(id), bo widocznie na spawnie gracza próbujesz dodać graczowi kasę, który nie jest żywy lub podłączony do serwera...

 

Najbardziej Drago36 mnie rozbawiłeś i tym "brakiem" biblioteki cstrike. Ponieważ tu nie chodzi o kompilację pluginu...


Użytkownik Aemiksowy edytował ten post 21.03.2014 23:29
Odpowiedz

  • +
  • -
Drago36 - zdjęcie Drago36 22.03.2014

Wszyscy piszą to to i tamto, a nikt nie pofatygował się sprawdzić, że brakuje tu ewidentnie sprawdzanie czy "id" żyje... Zatem przed tym wszystkim, należy dodać: is_user_alive(id), bo widocznie na spawnie gracza próbujesz dodać graczowi kasę, który nie jest żywy lub podłączony do serwera...
Najbardziej Drago36 mnie rozbawiłeś i tym "brakiem" biblioteki cstrike. Ponieważ tu nie chodzi o kompilację pluginu...

Nic nie wniosłeś do tematu. Jakbyś czytał ze zrozumieniem to "Wielkie Jol" już o tym wspomniał.
A co do mojego postu, niestety za szybko przeczytałem temat i myślałem, że są to problemy przy kompilacji za co wielce przepraszam wszystkich, którzy się "rozbawiają" i mają spinę.
Odpowiedz

Aemiksowy - zdjęcie Aemiksowy 22.03.2014

Wiem że napisał, ale ja to rozbudowałem i podsumowałem.

 

W dodatku zastosuj się do zasady netykiety (odnośnie cytowania postów).

 

Pozdrawiam 

Odpowiedz

  • +
  • -
Warjat - zdjęcie Warjat 26.03.2014

Gdzie to dodać ? 

 

Przykładowy warunek na nie przekraczanie 16 tys.

cs_set_user_money(id, min(cs_get_user_money(id)+1000, 16000), 1);


U cb powinien wyglądać tak:
cs_set_user_money(id, min(newmoney, 16000), 1);

 

Odpowiedz

  • +
  • -
Drago36 - zdjęcie Drago36 26.03.2014

Wiem że napisał, ale ja to rozbudowałem i podsumowałem.

Wszyscy piszą to to i tamto, a nikt nie pofatygował się sprawdzić, że brakuje tu ewidentnie sprawdzanie czy "id" żyje...

 

 

A co do tematu:

 

 

Gdzie to dodać ? 

 

Przykładowy warunek na nie przekraczanie 16 tys.

cs_set_user_money(id, min(cs_get_user_money(id)+1000, 16000), 1);


U cb powinien wyglądać tak:
cs_set_user_money(id, min(newmoney, 16000), 1);

 

 

 

Na początku masz:

public EventPlayerSpawn( id )
{
	new health
	new newhealth
	new money
	new newmoney
	new armor
	new newarmor
	
	money = cs_get_user_money(id)
	newmoney = money + (PLEVEL[ id ] * 100)
	cs_set_user_money( id, newmoney)

Czyli zamiast tego:

	cs_set_user_money( id, newmoney)

Daj:

        cs_set_user_money(id, min(newmoney, 16000), 1);

Nie wiem czy to pomoże, ale chciałeś ten warunek.

Odpowiedz

  • +
  • -
Warjat - zdjęcie Warjat 28.03.2014

Kurcze dalej jest ten sam błąd 

 

Może macie jakieś inne rozwiązania ?

 

i przepraszam że tak długo ale miałem problemy z netem

Odpowiedz

  • +
  • -
sNH. - zdjęcie sNH. 01.04.2014

Sprawdź z fakemetą dawanie pieniędzy. Jak dobrze pamiętam coś takiego było

Odpowiedz

  • +
  • -
Najlepsza odpowiedź Warjat - zdjęcie Warjat 01.04.2014

dodałem 

if(is_user_connected(id))

i na obecną chwilę nie ma błędów mimo że jest problem z 

L 04/01/2014 - 17:31:46: Invalid player id 0
L 04/01/2014 - 17:31:46: [AMXX] Displaying debug trace (plugin "SurfXPMod.amxx")
L 04/01/2014 - 17:31:46: [AMXX] Run time error 10: native error (native "get_user_weapon")
L 04/01/2014 - 17:31:46: [AMXX]    [0] Untitled.sma::fwHamTakeDamage (line 366)

To co podałem wyżej to także mam z tym błąd 

public fwHamTakeDamage(victim, inflictor, attacker, Float:damage, damagebits)
{
	if(get_user_weapon(attacker) == CSW_KNIFE && PLEVEL[ attacker ] >= 5) // tutaj problem
	{
		SetHamParamFloat(4, damage * 1.5)
		return HAM_HANDLED
	}
}
Odpowiedz

Aemiksowy - zdjęcie Aemiksowy 01.04.2014

Zrób to samo w tym przypadku.

Odpowiedz

  • +
  • -
Warjat - zdjęcie Warjat 01.04.2014

	if(!is_user_connected(attacker)) 
		return HAM_IGNORED

Dodałem coś takiego i nie sypie błędami 

 

Podałem rozwiązanie bo myślę że komuś się przyda 

Odpowiedz
Zablokowany