←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Switch i powody błędów.

  • +
  • -
BoB0_ - zdjęcie BoB0_ 17.05.2012

Witam.

Chciałem sobie zrobić na swojego coda plugin wzorowany na podanym na tym forum. Jednak mam problem. Dawno nic nie pisałem i nie wiem co jest źle a żeby samemu się doszukać to zbyt dużo czasu mi zajmie. Chciałbym się dowiedzieć dlaczego występują takie błędy przy kompilacji i jak je mogę poprawić.

Za wszelką pomoc dziękuję. Sensowne odpowiedzi zostaną wynagrodzone. :)

Kod z kompilatora:


Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

specjal.sma(67) : warning 209: function "Spawn" should return a value
specjal.sma(80) : error 028: invalid subscript (not an array or too many subscripts): "level"
specjal.sma(82) : warning 217: loose indentation
specjal.sma(85) : error 010: invalid function or declaration
specjal.sma(87) : error 021: symbol already defined: "ColorChat"
specjal.sma(88) : error 010: invalid function or declaration
specjal.sma(91) : error 010: invalid function or declaration
specjal.sma(94) : error 021: symbol already defined: "ColorChat"
specjal.sma(96) : warning 218: old style prototypes used with optional semicolumns
specjal.sma(97) : error 021: symbol already defined: "set_task"
specjal.sma(98) : error 010: invalid function or declaration
specjal.sma(101) : error 010: invalid function or declaration
specjal.sma(104) : error 021: symbol already defined: "ColorChat"
specjal.sma(106) : warning 218: old style prototypes used with optional semicolumns
specjal.sma(107) : error 021: symbol already defined: "set_task"
specjal.sma(108) : error 010: invalid function or declaration
specjal.sma(111) : error 010: invalid function or declaration
specjal.sma(114) : error 021: symbol already defined: "ColorChat"
specjal.sma(116) : warning 218: old style prototypes used with optional semicolumns
specjal.sma(117) : error 021: symbol already defined: "set_task"
specjal.sma(118) : error 010: invalid function or declaration
specjal.sma(121) : error 010: invalid function or declaration
specjal.sma(124) : error 021: symbol already defined: "ColorChat"
specjal.sma(126) : warning 218: old style prototypes used with optional semicolumns
specjal.sma(127) : error 021: symbol already defined: "set_task"
specjal.sma(128) : error 010: invalid function or declaration
specjal.sma(131) : error 010: invalid function or declaration
specjal.sma(140) : error 025: function heading differs from prototype

22 Errors.
Could not locate output file specjal.amxx (compile failed).

Oraz kod pluginu:

Spoiler


Pozdrawiam.
Odpowiedz

  • +
  • -
BoB0_ - zdjęcie BoB0_ 17.05.2012

Kompilacja przebiegła pomyślnie.

Mógłbym wiedzieć co zmieniłeś. Klamra?

@edit.

Przy respawnie nic się nie dzieje. Nie wyświetla się wiadomość o tym co wylosowałem. Można wiedzieć co jest źle? Przy kompilacji mam błąd oznajmiający, że public Spawn - 'should return a value' Ma to jakieś znaczenie?
Użytkownik BoB0_ edytował ten post 17.05.2012 17:50
Odpowiedz

  • +
  • -
radim - zdjęcie radim 17.05.2012

Nawias, chyba klamra i special musiał posiadać index i
new bool:special[33];
na
new special[33];

Użytkownik radim edytował ten post 17.05.2012 18:17
Odpowiedz

  • +
  • -
ogieR8 - zdjęcie ogieR8 17.05.2012

Dodaj na sam koniec public Spawn to :

return PLUGIN_CONTINUE


lub

return HAM_IGNORED


bo widzę, że to kanapka ;)
Użytkownik ogieR- edytował ten post 17.05.2012 18:15
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 17.05.2012

Podmień sobie te funkcje
http://amxx.pl/pastebin/1kblthx6wwlc0/
Odpowiedz

  • +
  • -
BoB0_ - zdjęcie BoB0_ 17.05.2012

speedkill po podmienieniu funkcji które podrzuciłeś mam errory przy kompilacji.

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

specjal2.sma(82) : error 017: undefined symbol "set_bartime"
specjal2.sma(90) : error 017: undefined symbol "set_bartime"
specjal2.sma(98) : error 017: undefined symbol "set_bartime"
specjal2.sma(106) : error 017: undefined symbol "set_bartime"
specjal2.sma(113) : warning 217: loose indentation
specjal2.sma(113) : error 029: invalid expression, assumed zero
specjal2.sma(113) : error 017: undefined symbol "WylaczSpecial"
specjal2.sma(119) : error 029: invalid expression, assumed zero
specjal2.sma(119) : error 017: undefined symbol "set_bartime"
specjal2.sma(122) : error 017: undefined symbol "czas"
specjal2.sma(122) : error 088: number of arguments does not match definition
specjal2.sma(128) : error 001: expected token: "}", but found "-end of file-"

11 Errors.
Could not locate output file specjal2.amxx (compile failed).

@edit.

Mój błąd , brakowało klamry :)

@edit 2 .

Po ponownej edycji plugin dalej nie działa prawidłowo. Po wpisaniu komendy special w konsoli wyskakuje komunikat : "unknown command special" , no i na początku rundy nic się nie pojawia.
Użytkownik BoB0_ edytował ten post 17.05.2012 20:42
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 17.05.2012

Error logi ? Czy Twój lvl jest większy od 160 ?
Odpowiedz

  • +
  • -
BoB0_ - zdjęcie BoB0_ 17.05.2012

Mam level 160. W error logach czysto. Nic poza errorami z amxbans.

@edit.

Sprawdzałem też na 161 lvl, myślę że coś nie tak w kodzie ponieważ komenda special nie działa. Dalej ten sam error wyskakuje.

@edit 2.

public Spawn(id) 
{
if(is_user_alive(id) && ma_klase[id])
{
new level = cod_get_user_level(id)
if(level >= 160)
{
switch(random_num(0,3))
{
case 0:
{
ColorChat(id, GREEN, "Wylosowales bonusowe zycie.");
}

case 1:
{
ColorChat(id, GREEN, "Wylosowales bonusowa inteligencje.");
}

case 2:
{
ColorChat(id, GREEN, "Wylosowales bonusowa kondycje.");
}

case 3:
{
ColorChat(id, GREEN, "Wylosowales bonusowa wytrzymalosc.");
}
}
}
}
return HAM_IGNORED
}


Czy tutaj nie powinno być żadnego odniesienia do 'special' bo w początkowym kodzie miałem a tutaj nie występuje.
Użytkownik BoB0_ edytował ten post 17.05.2012 21:06
Odpowiedz

  • +
  • -
ogieR8 - zdjęcie ogieR8 18.05.2012

No tak.. Tutaj tylko informuję o wylosowanym bonusie, ale nic nie daję, ani nic w ten deseń. Dodaj odnośniki do speciala i powinno być dobrze.
Odpowiedz

  • +
  • -
Szyfrant - zdjęcie Szyfrant 18.05.2012

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz

  • +
  • -
Goliath - zdjęcie Goliath 18.05.2012

Wiadomość wygenerowana automatycznie


Ten temat został otwarty przez moderatora.

Powód: Temat otwarty na prośbę użytkownika.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz

  • +
  • -
BoB0_ - zdjęcie BoB0_ 19.05.2012

No tak.. Tutaj tylko informuję o wylosowanym bonusie, ale nic nie daję, ani nic w ten deseń. Dodaj odnośniki do speciala i powinno być dobrze.



Sęk w tym że tej informacji o wyslowanym bonusie nie wyświetla w chacie. Serwer na komendę special reaguje : "unknown command 'special'"
Odpowiedz

  • +
  • -
ogieR8 - zdjęcie ogieR8 19.05.2012

Pokaż cały Twój kod, bo nie wiem jak Ty go w końcu skleiłeś.
Odpowiedz

  • +
  • -
BoB0_ - zdjęcie BoB0_ 19.05.2012

Proszę bardzo:

Spoiler
Odpowiedz

  • +
  • -
ogieR8 - zdjęcie ogieR8 19.05.2012

Spr tego : http://wklej.to/cTmdZ
Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 19.05.2012

Testujesz ten plugin na New game, czy zewnętrznym serwerze? Komendę specjal wykonujesz u siebie czy przez RCON? Upewnij się, że plugin jest włączony. Bo wygląda na to, że komenda nie jest zarejestrowana w konsoli, w której próbujesz jej użyć (plugin rejestruje ją w konsoli gracza).
Odpowiedz

  • +
  • -
BoB0_ - zdjęcie BoB0_ 21.05.2012

Plugin jest testowany na serwerze zewn. dodatkowo działa bo sprawdzałem w amxmodmenu. Wrócę do domu i sprawdzę kod Ogier'a wtedy zobaczymy czy będzie ok.
Odpowiedz

  • +
  • -
BoB0_ - zdjęcie BoB0_ 06.06.2013

Po roku odświeżam :)
 
Problem nadal występuje. Nie wyświetla się wiadomość na początku rundy. Może to jest z tym związane. Chciałbym żebyście pomogli mi się zająć na razie tylko tym Colorchat przy spawnie. 
 
Oto kod:
Spoiler
Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 06.06.2013

Spróbuj wysyłać wiadomość z opóźnieniem, umieszczając w tasku ustawionym na czas np 0.1 sekundy. Zauważyłem kiedyś, że w evencie spawna nie zawsze da się wyświetlić graczowi coś w chacie.
Odpowiedz