-
Sziasztok!
Valamiért mindig errort ír ki,a SetPlayerHealth-nál. Valaki meg tudná mondani hol a hiba? Elõre is nagyon szépen köszönöm! =)
Error:
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(67) : error 017: undefined symbol \"DIALOG_FEGYO\"
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(69) : warning 217: loose indentation
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(70) : warning 217: loose indentation
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(75) : warning 202: number of arguments does not match definition
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(161) : error 029: invalid expression, assumed zero
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(161) : warning 215: expression has no effect
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(161) : error 001: expected token: \";\", but found \")\"
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(161) : error 029: invalid expression, assumed zero
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(161) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
5 Errors.
Script:
CMD:vasarlas(playerid, params[])
{
ShowPlayerDialog(playerid, DIALOG_BOLT, DIALOG_STYLE_LIST, \"Vásárlás\", \"Szendvics ($600)\\nHamburger ($600)\\nAlma ($300)\\nKaralábé ($500)\\nStrawberry Minis ($1000)\\nSnikers ($300)\", \"Megveszem\", \"Kilép\");//én a DIALOG_STYLE_LIST-t használtam
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_BOLT)
{
if(response)
{
if(listitem == 0) //ha rákattintasz az 1. gombra mi történjen....
{
SendClientMessage(playerid, 0x31ed2bAA, \"Vettél egy Szendvicset\");//üzenetet küld
GivePlayerMoney(playerid, -600);
SetPlayerHealth(playerid, +30);
}
if(listitem == 1) //ha rákattintasz az 2. gombra mi történjen....
{
SendClientMessage(playerid, 0x31ed2bAA, \"Vettél egy Hamburgert\");//üzenetet küld
GivePlayerMoney(playerid, -600);
SetPlayerHealth(playerid, +36);
}
if(listitem == 2) //ha rákattintasz az 2. gombra mi történjen....
{
SendClientMessage(playerid, 0x31ed2bAA, \"Vettél egy Almát\");//üzenetet küld
GivePlayerMoney(playerid, -300);
SetPlayerHealth(playerid, +15);
}
if(listitem == 3) //ha rákattintasz az 4. gombra mi történjen....
{
SendClientMessage(playerid, 0x31ed2bAA, \"Vettél egy karalábét\");//üzenetet küld
GivePlayerMoney(playerid, -500);
SetPlayerHealth(playerid, +50);
}
if(listitem == 4) //ha rákattintasz az 5. gombra mi történjen....
{
SendClientMessage(playerid, 0x31ed2bAA, \"Vettél egy Strawberry Minist\");//üzenetet küld
GivePlayerMoney(playerid, -1000);
SetPlayerHealth(playerid, +60);t
}
if(listitem == 5) //ha rákattintasz az 6. gombra mi történjen....
{
SendClientMessage(playerid, 0x31ed2bAA, \"Vettél egy Snikerst\");//üzenetet küld
GivePlayerMoney(playerid, -300);
SetPlayerHealth(playerid, +26);
}
}
}
else SendClientMessage(playerid, 0x400000FF, \"Kiléptél\");
}
}
return 1;
}
-
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(67) : error 017: undefined symbol \"DIALOG_FEGYO\"[/quote]
#define DIALOG_FEGYO (6152) // olyan számot írj amilyen dialog id még nincs
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(69) : warning 217: loose indentation
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(70) : warning 217: loose indentation
[/quote]
vagy rendesen TAB-olsz vagy:
#pragma tabsize 0
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(75) : warning 202: number of arguments does not match definition
másold be a 75. sort
de a hiba az hogy túl sok vagy túl kevés paramétert adtál be a függvénynek
elmagyarázom SetPlayerHealth-es példával:
alapból 2 érték kell neki: playerid,health
SetPlayerHealth(playerid,100.0); // megfelelõ számú paraméter
SetPlayerHealth(playerid); // kevés
SetPlayerHealth(playerid,100.0,10.0); // sok
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(161) : error 029: invalid expression, assumed zero
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(161) : warning 215: expression has no effect
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(161) : error 001: expected token: \";\", but found \")\"
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(161) : error 029: invalid expression, assumed zero
C:\\DOCUME~1\\Viktor\\Asztal\\JMAPPA~1\\FILTER~1\\rendor.pwn(161) : fatal error 107: too many error messages on one line
[/quote]
SetPlayerHealth(playerid, +30);
itt ne rakj + jelet az élet elé !
SetPlayerHealth(playerid, 30);
-
Pont most akartam válaszolni de megelõztek. :)
Mindegy mellékelem a kódot kijavítottam neked, hogy lásd, hogy akkor, hogyan is vannak az elõbb említett javítások, tabolások.
Plusz még egy infó az egész ondialog responset return 0;-val zárd ha nem úgy van! Mert itt nem úgy volt. :)
#define DIALOG_BOLT (0)
CMD:vasarlas(playerid, params[])
{
ShowPlayerDialog(playerid, DIALOG_BOLT, DIALOG_STYLE_LIST, \"Vásárlás\", \"Szendvics ($600)\\nHamburger ($600)\\nAlma ($300)\\nKaralábé ($500)\\nStrawberry Minis ($1000)\\nSnikers ($300)\", \"Megveszem\", \"Kilép\");//én a DIALOG_STYLE_LIST-t használtam
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_BOLT)
{
if(response)
{
if(listitem == 0) //ha rákattintasz az 1. gombra mi történjen....
{
SendClientMessage(playerid, 0x31ed2bAA, \"Vettél egy Szendvicset\");//üzenetet küld
GivePlayerMoney(playerid, -600);
SetPlayerHealth(playerid, 30);
}
if(listitem == 1) //ha rákattintasz az 2. gombra mi történjen....
{
SendClientMessage(playerid, 0x31ed2bAA, \"Vettél egy Hamburgert\");//üzenetet küld
GivePlayerMoney(playerid, -600);
SetPlayerHealth(playerid, 36);
}
if(listitem == 2) //ha rákattintasz az 2. gombra mi történjen....
{
SendClientMessage(playerid, 0x31ed2bAA, \"Vettél egy Almát\");//üzenetet küld
GivePlayerMoney(playerid, -300);
SetPlayerHealth(playerid, 15);
}
if(listitem == 3) //ha rákattintasz az 4. gombra mi történjen....
{
SendClientMessage(playerid, 0x31ed2bAA, \"Vettél egy karalábét\");//üzenetet küld
GivePlayerMoney(playerid, -500);
SetPlayerHealth(playerid, 50);
}
if(listitem == 4) //ha rákattintasz az 5. gombra mi történjen....
{
SendClientMessage(playerid, 0x31ed2bAA, \"Vettél egy Strawberry Minist\");//üzenetet küld
GivePlayerMoney(playerid, -1000);
SetPlayerHealth(playerid, 60);
}
if(listitem == 5) //ha rákattintasz az 6. gombra mi történjen....
{
SendClientMessage(playerid, 0x31ed2bAA, \"Vettél egy Snikerst\");//üzenetet küld
GivePlayerMoney(playerid, -300);
SetPlayerHealth(playerid, 26);
}
}
else SendClientMessage(playerid, 0x400000FF, \"Kiléptél\");
return 1;
}
return 0;
}
-
Pont most akartam válaszolni de megelõztek. :)
ez azért van mert öregszel :D tudod korral jár a lassulás :P:D
Plusz még egy infó az egész ondialog responset return 0;-val zárd ha nem úgy van! Mert itt nem úgy volt. :)
[/quote]
azt csak scriptben kell, ha módban van akkor return 1; kell a végére :)
-
Hát ez van lelassulok mint egy lajhár. :D
-
De nem fogja akkor úgy csinálni, hogy csak beállítja 30 HP-ra,nem pedig ad hozzá 30-at?
-
public GivePlayerHealth(playerid,Float:Health)
{
new Float:HP; GetPlayerHealth(playerid,HP); SetPlayerHealth(playerid,(HP+Health));
return 1;
}
-
és ezt hova? :D
-
a SetPlayerHealth helyett GivePlayerHealth kell
ezt meg be kell másolnod a módodba / fs-edbe vagy valamelyik includeba...
és neked így is megfelel ( nem public-al ):
stock GivePlayerHealth(playerid,Float:Health)
{
new Float:HP; GetPlayerHealth(playerid,HP); SetPlayerHealth(playerid,(HP+Health));
return 1;
}
-
köszönöm! :)