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

fwd_touch i oddajprzedmiot_handle


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

#1 Szyfrant

    Godlike

  • Przyjaciel

Reputacja: 1 374
Godlike

  • Postów:3 072
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Sztokholm
Offline

Napisano 21.07.2013 13:31

Witam mam na errory które mnie ciąglę irytują:
 
 
 
L 07/21/2013 - 13:05:18: [FAKEMETA] Invalid entity
L 07/21/2013 - 13:05:18: [AMXX] Displaying debug trace (plugin "zzz.amxx")
L 07/21/2013 - 13:05:18: [AMXX] Run time error 10: native error (native "pev")
L 07/21/2013 - 13:05:18: [AMXX]    [0] Untitled.sma::fwd_touch (line 8157) (W WKLEJCE 8 LINIA)
define STR_T = 33 

http://amxx.pl/pastebin/vdllqdeizlc/

 

 

Chodzi o tą linijke: 

pev(world, pev_classname, classname, (STR_T))

przy

!pev_valid(world)  w ogole postac sie nie wspina dlatego jest !pev_valid(id) lecz i tak problem ten sam.

 

Drugi problem:

 

 

L 07/21/2013 - 13:21:52: [AMXX] Displaying debug trace (plugin "zzz.amxx)
L 07/21/2013 - 13:21:52: [AMXX] Run time error 4: index out of bounds 
L 07/21/2013 - 13:21:52: [AMXX]    [0] Untitled.sma::OddajPrzedmiot_Handle (line 5085) (W WKLEJCE 20 LINIA)

 

 

 

 

http://amxx.pl/pastebin/1pgpckr2pewa/

 

 

Chodzi o tą linijke

if(!is_user_connected(oddaj_id[item])) ////// ta linijka

Pozdro


Użytkownik Szyfrant edytował ten post 21.07.2013 14:49

  • +
  • -
  • 0

#2 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 21.07.2013 14:30

Co do pierwszego chyba musisz znaleźć inny sposób, bo pev_valid działa na enty/byty, a u Ciebie prawdopodobnie dotykasz po prostu bryły, która nie jest entem.

Tutaj nie jestem pewien, takie przypuszczenia mappera, nie bawię się często z entami.

 

Drugie skoro jest index out of bounds to znaczy, że "item" przekracza rozmiar np. 123 lub -1 (chyba wychodzenie z menu daje taki efekt?)

 

Przed:

if(!is_user_connected(oddaj_id[item])) ////// ta linijka

Dodaj

if(item == MENU_EXIT || item < 0 || item > 119)

return PLUGIN_CONTINUE;

 

Coś mi też się wydaję, że o nie taki efekt Ci chodzi w tym menu, bo dziwnie to wygląda, ale Testing is the future :D

 

 


  • +
  • -
  • 1

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#3 Szyfrant

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 1 374
Godlike

  • Postów:3 072
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Sztokholm
Offline

Napisano 21.07.2013 14:40

Co to 1 to czekam dalej na jakies propozycję, co do drugiego miałeś rację :)

 

gdy wychodzę z menu to wywala bug :) dzięki 

 

EDIT: Przetestowane i menu nie wywala blędów (2 problem) Dzięki jescze raz :)


Użytkownik Szyfrant edytował ten post 21.07.2013 14:47

  • +
  • -
  • 0

#4 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 21.07.2013 16:45

Dodaj:

#include <engine>

To:

register_forward(FM_Touch, "fwd_touch")

zamień na:

register_touch("player", "*", "fwd_touch");

Zamień publica:

public fwd_touch(id, world)
{
    if(!is_user_alive(id) || klasa_gracza[id] != Wspinacz || !pev_valid(id))
        return FMRES_IGNORED
 
 
    new classname[STR_T]
    if(pev_valid(world))
    pev(world, pev_classname, classname, (STR_T))
    else
    return FMRES_IGNORED
 
    if(equal(classname, "worldspawn") || equal(classname, "func_wall") || equal(classname, "func_breakable"))
        pev(id, pev_origin, g_wallorigin[id])
 
    return FMRES_IGNORED
}

Nie testowałem, nie wiem czy zadziała, ale zawsze warto zobaczyć, bo może register_touch i register_forward działają inaczej.

 

@P.S Jak to mówią nie mam już pomysłów :D

 


Użytkownik HubertTM edytował ten post 21.07.2013 16:46

  • +
  • -
  • 1

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#5 Szyfrant

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 1 374
Godlike

  • Postów:3 072
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Sztokholm
Offline

Napisano 21.07.2013 17:11

jeszce pytanko czy

pev(world, pev_classname, classname, (STR_T))

nie powinien byc

pev(world, pev_classname, classname, (STR_T-1))

  • +
  • -
  • 0

#6 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 21.07.2013 17:39

Tak, ale i tak powinno "działać" (pobierać)


  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#7 Szyfrant

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 1 374
Godlike

  • Postów:3 072
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Sztokholm
Offline

Napisano 21.07.2013 17:46

NO tylko że to działa od początku. Wspina sie i jest ok tylko ten błąd wyskoczy OD czasu do czasu 


  • +
  • -
  • 0

#8 Szyfrant

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 1 374
Godlike

  • Postów:3 072
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Sztokholm
Offline

Napisano 22.07.2013 09:37

Dodaj:

#include <engine>

To:

register_forward(FM_Touch, "fwd_touch")

zamień na:

register_touch("player", "*", "fwd_touch");

Zamień publica:

public fwd_touch(id, world)
{
    if(!is_user_alive(id) || klasa_gracza[id] != Wspinacz || !pev_valid(id))
        return FMRES_IGNORED
 
 
    new classname[STR_T]
    if(pev_valid(world))
    pev(world, pev_classname, classname, (STR_T))
    else
    return FMRES_IGNORED
 
    if(equal(classname, "worldspawn") || equal(classname, "func_wall") || equal(classname, "func_breakable"))
        pev(id, pev_origin, g_wallorigin[id])
 
    return FMRES_IGNORED
}

Nie testowałem, nie wiem czy zadziała, ale zawsze warto zobaczyć, bo może register_touch i register_forward działają inaczej.

 

@P.S Jak to mówią nie mam już pomysłów :D

 

 

Niestety nawet sie nie wpsina ;(


  • +
  • -
  • 0




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

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