Hallo seitdem ich heute ein Waffenmenu gemacht habe, bekomme ich errors bei meinen /givecash cmd, warum weis ich nicht. Könnt ihr mir da helfen?
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(792) : error 017: undefined symbol "dcmd_givemoney"
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(938) : error 079: inconsistent return types (array & non-array)
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(963) : error 079: inconsistent return types (array & non-array)
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(980) : error 079: inconsistent return types (array & non-array)
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(983) : warning 225: unreachable code
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1053) : warning 217: loose indentation
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1053) : error 029: invalid expression, assumed zero
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1053) : error 004: function "OnPlayerClickPlayer" is not implemented
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1055) : error 079: inconsistent return types (array & non-array)
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1059) : warning 225: unreachable code
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1059) : error 017: undefined symbol "dcmd_givemoney"
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1065) : error 017: undefined symbol "sscanf"
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1067) : error 079: inconsistent return types (array & non-array)
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1071) : error 079: inconsistent return types (array & non-array)
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1086) : error 079: inconsistent return types (array & non-array)
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1120) : warning 225: unreachable code
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1120) : error 029: invalid expression, assumed zero
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1120) : error 017: undefined symbol "sscanf"
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1120) : error 029: invalid expression, assumed zero
C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1120) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
16 Errors.
Mein Script:
}
dcmd(givemoney,9,cmdtext);
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
//Das hab ich noch net benutzt was hier eig. wäre^^ gekürtzt wegen 10000 zeichen
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == Waffenmenu) // Name des Menüs, das wir als ID 0 definiert haben
{
if(response)
{
if(listitem == 0) // Pistole
{
GivePlayerWeapon(playerid,22,100); //22 ist die WaffenID, 100 ist die Munition
GivePlayerMoney(playerid, -150);
}
if(listitem == 1) // Desert Eagle
{
GivePlayerWeapon(playerid,24,30);
GivePlayerMoney(playerid, -180);
}
if(listitem == 2) // MP5
{
GivePlayerWeapon(playerid,29,50);
GivePlayerMoney(playerid, -250);
}
if(listitem == 3) // Ak47
{
GivePlayerWeapon(playerid,30,50);
GivePlayerMoney(playerid, -300);
}
}
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
dcmd_givemoney(playerid,params[])
{
new
betrag, // hier erstellen wir die parameter. in deinem fall den betrag des geldes das gegeben wird und pID ist der spieler der das ganze erhalten soll
pID;
if(sscanf(params, "di",pID,betrag))
{
return SendClientMessage(playerid,BLAU,"Nutze: /givemoney [ID] [betrag]"); // hier wird abgefragt ob beide parameter angegeben werden. wenn nein returnt das ganze mit der nachricht
}
if(!IsPlayerConnected(pID))
{
return SendClientMessage(playerid,BLAU,"Kein Spieler mit angegebener ID Online"); // hier wird abgefragt ob der Spieler mit der angegebenen Id online ist
}
if(GetPlayerMoney(playerid)>=betrag) // dast ist zwar nicht unbedingt notwendig, sollte aber drin sein. da wird überprüft ob der spieler genügend geld hat. deswegen wird abgefragt ob das geld das er gerade hat (getplayermoney) größer oder gleich (>=) wie der angegebene betrag ist.
{
new name[MAX_PLAYER_NAME],nachricht[64];
GetPlayerName(playerid,name,sizeof(name)); // das ist einfach für die Nachricht damit der Spieler der das geld bekommt informiert wird wie viel und von wem er geld bekommen hat.
format(nachricht,sizeof(nachricht),"%s gab dir %i €",name,betrag);
SendClientMessage(pID,BLAU,nachricht); //das ist der wesentliche teil: die geldübergabe. hier wird die nachricht gesendet
GivePlayerMoney(pID,betrag); // hier wird pID, also dem spieler der angegeben wurde das geld in höhe von betrag gegeben
GivePlayerMoney(playerid,-betrag); // und hier wird dem spieler der das commando ausführt der betrag abgezogen (-betrag)
}
return 1;
}
stock sscanf(string[], format[], {Float,_}:...)
{
#if defined isnull
if (isnull(string))
#else
if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
#endif
{
return format[0];
}
#pragma tabsize 4
new
formatPos = 0,
stringPos = 0,
paramPos = 2,
paramCount = numargs(),
delim = ' ';
while (string[stringPos] && string[stringPos] <= ' ')
{
stringPos++;
}
while (paramPos < paramCount && string[stringPos])
{
switch (format[formatPos++])
{
case '\0':
{
return 0;
}
case 'i', 'd':
{
new
neg = 1,
num = 0,
ch = string[stringPos];
if (ch == '-')
{
neg = -1;
ch = string[++stringPos];
}
do
{
stringPos++;
if ('0' <= ch <= '9')
{
num = (num * 10) + (ch - '0');
}
else
{
return -1;
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num * neg);
}
case 'h', 'x':
{
new
num = 0,
ch = string[stringPos];
do
{
stringPos++;
switch (ch)
{
case 'x', 'X':
{
num = 0;
continue;
}
case '0' .. '9':
{
num = (num << 4) | (ch - '0');
}
case 'a' .. 'f':
{
num = (num << 4) | (ch - ('a' - 10));
}
case 'A' .. 'F':
{
num = (num << 4) | (ch - ('A' - 10));
}
default:
{
return -1;
}
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num);
}
case 'c':
{
setarg(paramPos, 0, string[stringPos++]);
}
case 'f':
{
new changestr[16], changepos = 0, strpos = stringPos;
while(changepos < 16 && string[strpos] && string[strpos] != delim)
{
changestr[changepos++] = string[strpos++];
}
changestr[changepos] = '\0';
setarg(paramPos,0,_:floatstr(changestr));
}
case 'p':
{
delim = format[formatPos++];
continue;
}
case '\'':
{
new
end = formatPos - 1,
ch;
while ((ch = format[++end]) && ch != '\'') {}
if (!ch)
{
return -1;
}
format[end] = '\0';
if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
{
if (format[end + 1])
{
return -1;
}
return 0;
}
format[end] = '\'';
stringPos = ch + (end - formatPos);
formatPos = end + 1;
}
case 'u':
{
new
end = stringPos - 1,
id = 0,
bool:num = true,
ch;
while ((ch = string[++end]) && ch != delim)
{
if (num)
{
if ('0' <= ch <= '9')
{
id = (id * 10) + (ch - '0');
}
else
{
num = false;
}
}
}
if (num && IsPlayerConnected(id))
{
setarg(paramPos, 0, id);
}
else
{
#if !defined foreach
#define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
#define __SSCANF_FOREACH__
#endif
string[end] = '\0';
num = false;
new
name[MAX_PLAYER_NAME];
id = end - stringPos;
foreach (Player, playerid)
{
GetPlayerName(playerid, name, sizeof (name));
if (!strcmp(name, string[stringPos], true, id))
{
setarg(paramPos, 0, playerid);
num = true;
break;
}
}
if (!num)
{
setarg(paramPos, 0, INVALID_PLAYER_ID);
}
string[end] = ch;
#if defined __SSCANF_FOREACH__
#undef foreach
#undef __SSCANF_FOREACH__
#endif
}
stringPos = end;
}
case 's', 'z':
{
new
i = 0,
ch;
if (format[formatPos])
{
while ((ch = string[stringPos++]) && ch != delim)
{
setarg(paramPos, i++, ch);
}
if (!i)
{
return -1;
}
}
else
{
while ((ch = string[stringPos++]))
{
setarg(paramPos, i++, ch);
}
}
stringPos--;
setarg(paramPos, i, '\0');
}
default:
{
continue;
}
}
while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
{
stringPos++;
}
while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
{
stringPos++;
}
paramPos++;
}
do
{
if ((delim = format[formatPos++]) > ' ')
{
if (delim == '\'')
{
while ((delim = format[formatPos++]) && delim != '\'') {}
}
else if (delim != 'z')
{
return delim;
}
}
}
while (delim > ' ');
return 0;
}
stock strget(strx[], pos, search = ' ') {
new arg, ret[128], idxx;
for (new i = 0; i < strlen(strx); i++) {
if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
arg++;
if (arg == pos + 1){
ret[i-idxx] = EOS;
return ret;
} else if (arg == pos)
idxx= i+1;
}
else if (arg == pos)
ret[i - idxx] = strx[i];
}
return ret;
}