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

Stack Error w funkcji CurWeapon

CoD Nowy

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

#1 Najkon

    Profesjonalista

  • Użytkownik

Reputacja: 60
Pomocny

  • Postów:161
Offline

Napisano 03.11.2011 17:31

Cześć, mam problem z funkcja CurWeapon.
Jak to gdzieś R3X opisał gdy szukałem rozwiązania :

stack error to problem ze stosem, a raczej z brakiem na nim miejsca


funkcje użyte w ham_strip_weapon mogą generować CurWeapon, a CurWeapon może wywoływać ham_strip_weapon; taka kombinacja powoduje zwykle nieskończoną rekurencje, która błyskawicznie zjada pamięć


Taki error wyskakuje :

QTM_CodMod_255137.sma::CurWeapon (line 985)

Funkcja wygląda tak :

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 weaponname[22];
        
        get_weaponname(bron, weaponname, 21);
        ham_strip_weapon(id, weaponname);
    }
    
    if(cs_get_user_shield(id) && !gracz_ma_tarcze[id])
        engclient_cmd(id, "drop", "weapon_shield");    
    
    UstawSzybkosc(id);
}

linijka numer 985 to new weaponname[22];

Mam nadzieje że ktoś z was umie naprawić ten problem :D
  • +
  • -
  • 0

#2 dasiek

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

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 04.11.2011 12:58

zmień na weaponname[32]
  • +
  • -
  • 0

#3 devil_dwight

    Zaawansowany

  • Użytkownik

Reputacja: -1
Nowy

  • Postów:133
  • Lokalizacja:zg
Offline

Napisano 04.11.2011 14:49

pomogla to zmiana na 32?
  • +
  • -
  • 0

#4 Najkon

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 60
Pomocny

  • Postów:161
Offline

Napisano 09.11.2011 16:49

nie pomogla, inne ciekawsze propozycje ? :D

Użytkownik Najkon edytował ten post 09.11.2011 16:49

  • +
  • -
  • 0

#5 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

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

Napisano 09.11.2011 17:04

public CurWeapon(id)

{

    if(!is_user_connected(id))

        return;



    new team = get_user_team(id);



    if(team > 2)

        return;



    new bron = read_data(2);



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



    if(!(1<<bron & bronie))	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( const id )

{

	new WeapIndex = get_user_weapon( id );

	

	ExecuteHamB( Ham_Weapon_RetireWeapon, WeapIndex );

	ExecuteHamB( Ham_RemovePlayerItem, id, WeapIndex );

	ExecuteHamB( Ham_Item_Kill, WeapIndex );

	

	set_pev( id, pev_weapons, pev( id, pev_weapons) & ~( 1 << WeapIndex ) ); 

}

  • +
  • -
  • 1

#6 Najkon

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 60
Pomocny

  • Postów:161
Offline

Napisano 09.11.2011 18:20

Przy kompilacji pojawia sie error :

QTM_CodMod.sma(981) : error 008: must be a constant expression; assumed zero

czyli ta linijka :


static bronie = (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone);
  • +
  • -
  • 0

#7 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

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

Napisano 09.11.2011 18:22

public CurWeapon(id)

{

    if(!is_user_connected(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( const id )

{

        new WeapIndex = get_user_weapon( id );



        ExecuteHamB( Ham_Weapon_RetireWeapon, WeapIndex );

        ExecuteHamB( Ham_RemovePlayerItem, id, WeapIndex );

        ExecuteHamB( Ham_Item_Kill, WeapIndex );



        set_pev( id, pev_weapons, pev( id, pev_weapons) & ~( 1 << WeapIndex ) ); 

}

  • +
  • -
  • 1

#8 Najkon

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 60
Pomocny

  • Postów:161
Offline

Napisano 09.11.2011 22:36

Niestety - jeszcze wiecej errorow sie pojawia i jeszcze częstsze crashe mam :/


Spoiler


Dam Ci całe .sma, mam nadzieje że pomożesz, gdyż crashe sa okropne :<

Załączony plik  QTM_CodMod.sma   45,23 KB  74 Ilość pobrań
  QTM_CodMod.amxx
  • +
  • -
  • 0

#9 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

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

Napisano 09.11.2011 22:45

public CurWeapon(id)

{

    if(!is_user_connected(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(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;

}

  • +
  • -
  • 1

#10 Najkon

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 60
Pomocny

  • Postów:161
Offline

Napisano 09.11.2011 23:16

Nie kompiluje sie :

QTM_CodMod.sma(981) : error 017: undefined symbol "ham_strip_weapon_short"

czyli ta linijka :

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

#11 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

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

Napisano 10.11.2011 01:46

stock ham_strip_weapon(id) na
stock ham_strip_weapon_short(id)
  • +
  • -
  • 0

#12 Najkon

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 60
Pomocny

  • Postów:161
Offline

Napisano 10.11.2011 14:40

QTM_CodMod.sma(998) : error 017: undefined symbol "find_ent_by_owner"

kolejny error przy kompilacji :/

#edit

Wystarczylo dopisać engine :D

Użytkownik Najkon edytował ten post 10.11.2011 19:15

  • +
  • -
  • 0

#13 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

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

Napisano 11.11.2011 10:22

Działa ?
  • +
  • -
  • 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