←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Crash serwera (Diablo error logi)

  • +
  • -
Play4Fun - zdjęcie Play4Fun 30.06.2012

Witam mam pewien problem z errora silnika Diablo Mod.

To są logi serwera -

Spoiler


To jest wycinek .sma w których jest linia 1282 - get_user_flags
Spoiler


Czy ktoś wie jak te error logi usunąć? - wczoraj w nocy mój serwer padł przez co stracić mogę garczy, nie zabardzo wiem jak te errory usunąć... Bardzo proszę o pomoc i z góry Dziękuję.
Odpowiedz

  • +
  • -
Play4Fun - zdjęcie Play4Fun 02.07.2012

ref@ jest ktoś kto jest mi w stanie pomóc xD
Odpowiedz

Gość_21977_* 02.07.2012

Automatyczna wiadomość


Ten temat został przeniesiony z forum

Scripting AMXXProblemy

do

ModyDiablo ModProblemy
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 07.07.2012

Wstaw ten public w normalnych znacznikach
[sma][/sma]
to ci pomogę :)
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 07.07.2012

Pętle zaczynaj od 1 + przed sprawdzeniem czy gracz ma flagę sprawdź czy jest podłączony z serwerem.
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 07.07.2012

a najlepiej przerób to pod
RegisterHam(Ham_Spawn, "player", "RoundStart", 1)

i bez żadnych pętli możesz używać id.
Odpowiedz

  • +
  • -
Play4Fun - zdjęcie Play4Fun 08.07.2012

Dzięki - pomogło Gh0st

speedkill - twój pomysł też Good ale więcej roboty :D nie pomyślałem że w tym jest błąd.

Łapcie chłopaki po + i dzięki do zamknięcia.

@EDIT

Nie wiem dlaczego ale nie mogę edytować postu dlatego przepraszam za Double. Mam nadzieję że warna nie dostanę.

Wystąpił jeszcze jeden error a mianowicie:
Spoiler


Spoiler


Dokładnie chodzi o tą linijkę:
pev(ent,pev_classname,classname,31);

Z góry dziękuję za pomoc i zainteresowanie się moim problemem ;)
MarWit (08.07.2012 15:27):
Posty zostały połączone.
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 08.07.2012

na początku tego publicka w którym znajduje się błąd dopisz:

if(!pev_valid(ent))
return FMRES_IGNORED;

I obejrzyj: http://amxx.pl/dokum.../f696/pev-valid
żeby wiedzieć co cię poprawia :)

powinien wyglądać tak:

public fwd_touch(ent,id)
{


if(!pev_valid(ent))
return FMRES_IGNORED;
if(!is_user_alive(id)) return FMRES_IGNORED;

static classname[32];
pev(ent,pev_classname,classname,31);

if(!equali(classname,"przedmiot")) return FMRES_IGNORED; // jesli nie dotykamy przedmiotu to nie idziemy dalej
if(!player_item_id[id]){ // jesli dotykamy kucamy i nie mamy itemu to go dostajemy (podnoszenie itemu - dotkniecie i duck)
award_item(id,item_info[ent])
engfunc(EngFunc_RemoveEntity,ent);
}
return FMRES_IGNORED;
}

P.S.
tutaj masz z poprawną tabulacją: http://wklej.org/id/786756/
Użytkownik Gh0st edytował ten post 08.07.2012 21:31
Odpowiedz

  • +
  • -
Play4Fun - zdjęcie Play4Fun 10.07.2012

Hmmm nadal ten sam error.
Próbowałem z tą poprawną tabulacją ale nadal error...

Masz może jakieś inne pomysły :D Ale i tak + leci
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 11.07.2012

Wstaw tu aktualne .sma diablo moda :)
Odpowiedz

  • +
  • -
Play4Fun - zdjęcie Play4Fun 11.07.2012

A da radę bez tego .sma?

Bo chciałbym ogólnie tą moją modyfikację v1.4 wstawić na forum ale chcę tego errora usunąć...
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 11.07.2012

wstaw tu całą funkcje fwd_touch(ent, id)
Odpowiedz

  • +
  • -
Play4Fun - zdjęcie Play4Fun 13.07.2012

Po restarcie serwera dobra tabulacja podziałała ale są jeszcze dwa errory.

Spoiler


A oto dwie funkcje:
Spoiler


Ona jest od tego erroru z "read_flags" dokładnie to chodzi o
new keys = read_flags(flags)

A to druga funkcja z errorem set_user_armor:
Spoiler


A tu chodzi o
if(player_class[i] == Demon) set_user_armor(i,999)
if(player_class[i] == Aniol) set_user_armor(i,999)

Myślałem żeby może na początku funkcji RoundStart dodać to:
if(is_user_alive(id) || is_user_connected(id))

Jak myślisz? oczywiście lecą + i dzięki już z góry za pomoc.
Użytkownik Play4Fun edytował ten post 13.07.2012 20:30
Odpowiedz

  • +
  • -
Play4Fun - zdjęcie Play4Fun 16.07.2012

@Ref

Pomożecie :D lecą +
Odpowiedz