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
CoD Nowy

[ŁATKA] Naprawa CurWeapon !

CoD Nowy

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

#1 Najkon

    Profesjonalista

  • Użytkownik

Reputacja: 60
Pomocny

  • Postów:161
Offline

Napisano 11.11.2011 15:30

*
Popularny

Cześć, DarkGL naprawił dla mnie CurWeapon - wcześniej tworzyło errory i crashowalo serwer a teraz działa.

Na początku pod
#include <nvault>
dodajemy
#include <engine>

Następnie w silniku coda podmieniamy public CurWeapon(id)
na :
public CurWeapon(id)
{
	if(!is_user_alive(id) )
		return;

	new team = get_user_team(id);

	if(team > 2)
		return;

	new bron = read_data(2);

	if(!(1<<bron & (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone)))	 ham_strip_weapon_short( id );

	if(cs_get_user_shield(id) && !gracz_ma_tarcze[id])
		engclient_cmd(id, "drop", "weapon_shield");	

	UstawSzybkosc(id);
}

stock ham_strip_weapon_short(id)
{
	new szWeapon[64];
	
	get_weaponname( get_user_weapon( id ) , szWeapon , charsmax ( szWeapon ) )
	
	new wId = get_weaponid(szWeapon);
	if(!wId) return 0;
	
	new wEnt	=	find_ent_by_owner( -1,szWeapon,id )
	
	if(!wEnt) return 0;
	
	ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);
	
	ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)
	ExecuteHamB(Ham_Item_Kill,wEnt);
	
	set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId));
	
	return 1;
}

a następnie usuwamy na samym dole pluginu taki stock :

stock ham_strip_weapon(id, weapon[])
{
	if(!equal(weapon, "weapon_", 7) ) return 0
	new wId = get_weaponid(weapon)
	if(!wId) return 0
	new wEnt
	while( (wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname", weapon) ) && pev(wEnt, pev_owner) != id) {}
	if(!wEnt) return 0
	
	if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon, wEnt)
	
	if(!ExecuteHamB(Ham_RemovePlayerItem, id, wEnt)) return 0
	ExecuteHamB(Ham_Item_Kill ,wEnt)
	
	set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<wId) )
	return 1
}

I BUM ! Nie ma errorów i crashy

Wszelkie podziękowania słać do DarkGL


// Jeśli wam ta funkcja nie tworzy errorow dotyczacych 'stack error' to wydaje mi się że nie opłaca się tego wgrywać, lecz tamten błąd jest bardzo popularny.

Użytkownik DarkGL edytował ten post 12.11.2011 01:05

  • +
  • -
  • 17

#2 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 11.11.2011 17:14

Pkaż jak w całości ten public wygląda, bo nie rozumiem
  • +
  • -
  • 0

#3 Najkon

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 60
Pomocny

  • Postów:161
Offline

Napisano 11.11.2011 17:17

Który public ?

Wydawało mi się że jest to napisane prostym jezykiem :S

Użytkownik Najkon edytował ten post 11.11.2011 17:21

  • +
  • -
  • 0

#4 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 11.11.2011 19:12

Dobra, to ja niezrozumiałem, + dla CB

Tylko napisz ze engine jest do tego potrzebny

Użytkownik d0n tHe Pr0oo edytował ten post 11.11.2011 19:17

  • +
  • -
  • 0

#5 Szymek^

    Profesjonalista

  • Użytkownik

Reputacja: 30
Życzliwy

  • Postów:187
  • Imię:Szymon
  • Lokalizacja:Tczew
Offline

Napisano 11.11.2011 20:34

Czasem mam te błędy w logach. + za opublikowanie i podziękowania dla Rafała.
  • +
  • -
  • 0

#6 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 552
Godlike

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

Napisano 11.11.2011 20:37

dodałem jeszcze warunek is_user_alive tak dla pewności
sebul (12.11.2011 00:53):
No to wywal "is_user_connected" xD
DarkGL (12.11.2011 01:05):
zrobione

  • +
  • -
  • 2

#7 ToRRent

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:861
  • Imię:Łukasz
  • Lokalizacja:Wrocław
Offline

Napisano 12.11.2011 11:24

jakie crashe ? jakie errory ? :o

Pierwszy raz słysze o takim zdarzeniu
  • +
  • -
  • 0

#8 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 12.11.2011 12:01

No mi właśnie wcześniej crashowało, tylko że CheQ dał mi nieco inną łatkę, i ta jego chyba też działa :)
  • +
  • -
  • 0

#9 Najkon

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 60
Pomocny

  • Postów:161
Offline

Napisano 12.11.2011 16:30

jakie crashe ? jakie errory ? :o

Pierwszy raz słysze o takim zdarzeniu


A takie, na czystym codzie bez niczego także pojawiają się crashe dotyczące CurWeapon :
  • +
  • -
  • 0

#10 ToRRent

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:861
  • Imię:Łukasz
  • Lokalizacja:Wrocław
Offline

Napisano 13.11.2011 15:20

no cóż ja nie mam takich problemów :D wystarczy amx zaktualizować do 1.8.2
  • +
  • -
  • 0

#11 MalutkiDuzy

    Nowy

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:6
  • Lokalizacja:Golina
Offline

Napisano 25.11.2011 12:34

to nie jest naprawa tylko popsucie po zrobieniu cura bronie nieraz znikaja ...
Nie polecam jak wam serwer crashujcie to naprawcie se według poradnika bład pobierz perk
  • +
  • -
  • 0

#12 devil_dwight

    Zaawansowany

  • Użytkownik

Reputacja: -1
Nowy

  • Postów:133
  • Lokalizacja:zg
Offline

Napisano 25.11.2011 15:29

w ogóle to nie pomoglo ;// lol
  • +
  • -
  • 0

#13 lacia7

    Pomocny

  • Użytkownik

Reputacja: -4
Nowy

  • Postów:46
  • Imię:Michał
  • Lokalizacja:Łęczyca
Offline

Napisano 26.11.2011 22:00

a mi nadal errory sie pokazują ale teraz takie , sprawdzcie może coś trzeba dodać czy coś , bo już nie wiem co robić ^^

L 11/26/2011 - 21:48:30: [AMXX] [0] phpncli0K.sma::ham_strip_weapon_short (line 1075)
L 11/26/2011 - 21:48:30: [AMXX] [1] phpncli0K.sma::CurWeapon (line 1065)
  • +
  • -
  • 0

#14 devil_dwight

    Zaawansowany

  • Użytkownik

Reputacja: -1
Nowy

  • Postów:133
  • Lokalizacja:zg
Offline

Napisano 26.11.2011 22:07

nic nie podmieniaj.. wieksze sa errory niz przed podmiana
  • +
  • -
  • 0

#15 Najkon

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 60
Pomocny

  • Postów:161
Offline

Napisano 27.11.2011 16:26

Dziwne, bo mi wyskakiwały errory .. pełno ich - po podmianie nic a nic, zero crashy :)
  • +
  • -
  • 0

#16 SoPelQ

    Banned

  • Zbanowany

Reputacja: 7
Nowy

  • Postów:121
  • Lokalizacja:Utajnione
Offline

Napisano 30.12.2011 09:43

W ogóle nie chce mi się skompilować, wyskakuje error, z niezdefiniwanym symbolem ham_strip_weapon_short.

"error017:undefined symbol ham_strip_weapon_short"

Użytkownik lok301 edytował ten post 30.12.2011 09:43


#17 M&M's

    Życzliwy

  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:30
  • Imię:Matt
  • Lokalizacja:AXE
Offline

Napisano 02.01.2012 16:11

*
Popularny

Ta łatka nic nie daje dalej errory :facepalm2: :facepalm2: :facepalm2: zapodam taką bez errorów ^D^
Pod:
new bool:freezetime = true;

Dodajemy:
new weaponname[22];


Podmieniamy cały
public CurWeapon(id)
na:
public CurWeapon(id)
{
if(!is_user_connected(id))
return;

new team = get_user_team(id);

if(team > 2)
return;

new bron = read_data(2);

new bronie = (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone);

if(!(1<<bron & bronie))
{
new param[2];
param[0] = id;
param[1] = bron;
set_task(0.1, "Strip", _, param, 2);
}

if(cs_get_user_shield(id) && !gracz_ma_tarcze[id])
engclient_cmd(id, "drop", "weapon_shield");

UstawSzybkosc(id);
}
public Strip(param[2])
{
if(is_user_alive(param[0]) && ( 1 <= param[1] <= 30) )
{
get_weaponname(param[1], weaponname, 21);
ham_strip_weapon(param[0], weaponname);
}
}


Pamiętajcie, aby na samym dole zostało:
stock ham_strip_weapon(id, weapon[])
{
if(!equal(weapon, "weapon_", 7) ) return 0
new wId = get_weaponid(weapon)
if(!wId) return 0
new wEnt
while( (wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname", weapon) ) && pev(wEnt, pev_owner) != id) {}
if(!wEnt) return 0

if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon, wEnt)

if(!ExecuteHamB(Ham_RemovePlayerItem, id, wEnt)) return 0
ExecuteHamB(Ham_Item_Kill ,wEnt)

set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<wId) )
return 1
}


Nie musicie dziękować :^D :^D :^D

Użytkownik M&M's edytował ten post 02.01.2012 16:12

  • +
  • -
  • 8
Kliknij
Dołączona grafikaIP:79.133.192.41:27036
Dołączona grafikaIP:79.133.192.41:27028
Dołączona grafika
IP:31.186.83.188:27040
Dołączona grafikaIP:79.133.192.45:27077
Dołączona grafika
IP:31.186.83.188:27047

#18 TSpeedGamerT

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:19
  • Lokalizacja:polska
Offline

Napisano 18.06.2012 16:33

ładnie ale która metoda lepsza?? By M&M czy metoda by Najkon?
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: CoD Nowy

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

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