Switch i powody błędów.
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:
Oraz kod pluginu:
Pozdrawiam.
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.
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
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
radim
17.05.2012
Nawias, chyba klamra i special musiał posiadać index i
Użytkownik radim edytował ten post 17.05.2012 18:17
new bool:special[33];na
new special[33];
Użytkownik radim edytował ten post 17.05.2012 18:17
ogieR8
17.05.2012
Dodaj na sam koniec public Spawn to :
lub
bo widzę, że to kanapka
Użytkownik ogieR- edytował ten post 17.05.2012 18:15
return PLUGIN_CONTINUE
lub
return HAM_IGNORED
bo widzę, że to kanapka
Użytkownik ogieR- edytował ten post 17.05.2012 18:15
BoB0_
17.05.2012
speedkill po podmienieniu funkcji które podrzuciłeś mam errory przy kompilacji.
@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
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
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.
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
@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
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.
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, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
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
Ten temat został otwarty przez moderatora.
Powód: Temat otwarty na prośbę użytkownika.
Z pozdrowieniami,
Zespół AMXX.PL
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'"
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).
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.
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:
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
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.