←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Error logi z silnika CodMod MySQL by Cypis

  • +
  • -
Ogen Dogen - zdjęcie Ogen Dogen 01.04.2014

Witam. Używam silnika na zapis MySQL by Cypis i mam problem z error logami.

L 04/01/2014 - 18:49:15: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
L 04/01/2014 - 18:49:15: [AMXX] Run time error 3: stack error 
L 04/01/2014 - 18:49:15: [AMXX]    [0] codmodsql_bez_frakcji_2174287.sma::Item_Deploy_Post (line 1177)

Tutaj funkcja o którą się rozchodzi i zaznaczona linia :

public Item_Deploy_Post(ent) 
{
	new id = get_pdata_cbase(ent, 41, 4);
	if(!is_user_alive(id))
		return;
	
	new team = get_user_team(id);
	if(team > 2)
		return;
	
	new bron = cs_get_weapon_id(ent); // linia 1177
	if(!((1<<bron) & (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone)))
	{
		new weaponname[24];
		get_weaponname(bron, weaponname, 23);
		engclient_cmd(id, "drop", weaponname);
	}
	if(cs_get_user_shield(id) && !gracz_ma_tarcze[id])
		engclient_cmd(id, "drop", "weapon_shield");
}

Nie za bardzo wiem czego się tutaj chycić żeby to naprawić ;P

Proszę o pomoc.

Odpowiedz

  • +
  • -
same - zdjęcie same 04.04.2014

W plugins.ini (bądź codmod-plugins.ini - w zależności gdzie masz wpisany silnik qtm) dodaj "debug" po QTM_CodMod.amxx

QTM_CodMod.amxx debug

tak to ma wyglądać. :)

Odpowiedz

  • +
  • -
Ogen Dogen - zdjęcie Ogen Dogen 06.04.2014

Displaying debug trace

To są już logi z parametrem debug :facepalm:

Ktoś ma jakieś bardziej kreatywne pomysły ?

Odpowiedz

Aemiksowy - zdjęcie Aemiksowy 06.04.2014

Spójrz na pętle w plugin_init odnosząca się do tego. Tam jest po prostu maksymalnie podana wielkość bodajże 25, zaczynając od jakiejś broni. Sam miałem ten problem i przerzuciłem się na rozwiązanie z podstawowego cod moda (curweapon). Spróbuj dodać przed !((1<<bron) pev_valid(ent) i zobacz czy będą errory. Bo tu chodzi o to, że próbuje się pobrać id broni, lecz nie ma miejsca, nr tego jest poza zasięgiem w związku z ograniczeniami wprowadzonymi w pętli.

 

Ostatecznie, można wyrzucić jeszcze bronie_druzyny[team] | bronie_dozwolone. Choć najbardziej to skupiłbym się na pętli, zwiększając 25 do 30.


Użytkownik Aemiksowy edytował ten post 06.04.2014 15:36
Odpowiedz

  • +
  • -
Ogen Dogen - zdjęcie Ogen Dogen 12.04.2014


Spójrz na pętle w plugin_init odnosząca się do tego. Tam jest po prostu maksymalnie podana wielkość bodajże 25, zaczynając od jakiejś broni.

 

Chodzi o tą pętle ?

for(new i = CSW_P228; i <= CSW_P90; i++)

No to z tego poradnika http://amxx.pl/topic...ive-item-speed/ wynika że P90 ma wartość 30 :)

 


Spróbuj dodać przed !((1<<bron) pev_valid(ent) i zobacz czy będą errory.
)>

 

Nadal są :/

Odpowiedz

  • +
  • -
Andrzejek - zdjęcie Andrzejek 14.04.2014

?? ale nie jestem 100 % pewny

 

public Item_Deploy_Post(ent)
{
    static id; id = get_pdata_cbase(ent, 41, 4);
    if(!is_user_alive(id))
        return;
    
    static team; team = get_user_team(id);
    if(team > 2)
        return;
    
    static bron; bron = cs_get_weapon_id(ent);
    if(!((1<<bron) & (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone)))
    {
        new weaponname[24];
        get_weaponname(bron, weaponname, 23);
        engclient_cmd(id, "drop", weaponname);
    }
    if(cs_get_user_shield(id) && !gracz_ma_tarcze[id])
        engclient_cmd(id, "drop", "weapon_shield");
}
Odpowiedz

  • +
  • -
Ogen Dogen - zdjęcie Ogen Dogen 16.04.2014

Też nic. Cały czas ta sama linijka , ale + za chęci.

Odpowiedz

  • +
  • -
Split - zdjęcie Split 16.04.2014

Sory za odkop ale źle napisałem w up, proszę ekipę o usunięcie górnego postu.
Pozdrawiam.

Poprawione:
Sprawdź:
 
public Item_Deploy_Post(ent)
{
    static id; id = get_pdata_cbase(ent, 41, 4);
    if(!is_user_alive(id))
        return;
    
    static team; team = get_user_team(id);
    if(team > 2)
        return;

    new bron = cs_get_weapon_id;
    if(!((1<<bron) & (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone)))
    {
        new weaponname[24];
        get_weaponname(bron, weaponname, 23);
        engclient_cmd(id, "drop", weaponname);
    }
    if(cs_get_user_shield(id) && !gracz_ma_tarcze[id])
        engclient_cmd(id, "drop", "weapon_shield");
}
Pozdrawiam ;)
Użytkownik e-Skill edytował ten post 16.04.2014 22:34
Odpowiedz

  • +
  • -
Andrzejek - zdjęcie Andrzejek 17.04.2014

Może tak?

 

public Item_Deploy_Post(ent)
{
    static id; id = get_pdata_cbase(ent, 41, 4);
    if(!is_user_alive(id))
        return;
    
    static team; team = get_user_team(id);
    if(team > 2)
        return;
    
    cs_get_weaponbox_type(ent);
    
    static bron; bron = cs_get_weapon_id(ent);
    if(!((1<<bron) & (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone)))
    {
        new weaponname[24];
        get_weaponname(bron, weaponname, 23);
        engclient_cmd(id, "drop", weaponname);
    }
    if(cs_get_user_shield(id) && !gracz_ma_tarcze[id])
        engclient_cmd(id, "drop", "weapon_shield");
}
Odpowiedz

  • +
  • -
Eryk172 - zdjęcie Eryk172 14.11.2016

Rozwiązałeś problem?

Jeśli tak, to w jaki sposób?

Odpowiedz