ehm wieso hast du hier ein if gemacht?
if dcmd(kick,4,cmdtext);
mann muss die ohne if machen also so
dcmd(kick,4,cmdtext);
Ja stimmt hab ich übersehen!
Hab aber immer noch 4 errors!
ehm wieso hast du hier ein if gemacht?
if dcmd(kick,4,cmdtext);
mann muss die ohne if machen also so
dcmd(kick,4,cmdtext);
Ja stimmt hab ich übersehen!
Hab aber immer noch 4 errors!
HI,
Also ich hab 4 errors in einer Zeile!
Hier ist der Quellcode:
if (strcmp("/healme", cmdtext, true, 10) == 0)
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, 0xFF00FFFF, "Du wurdest Geheilt.");
return 1;
}
if dcmd(setlevel,8,cmdtext); // Die 8 steht für die Anzahl der Buchstaben im Wort setlevel - also 8 insgesamt.
if dcmd(kick,4,cmdtext);
cmd_setlevel(playerid,params[])
{
new pID, Level,levelsetter[MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME], accFormat[128];
if(sscanf(params, "ud",pID,Level)) SendClientMessage(playerid,0xFF0000FF,"Benutze: /setlevel [ID][Level]!"); //Falls nur /setlevel eingegeben wurde
if (pID == INVALID_PLAYER_ID) SendClientMessage(playerid,0xFF0000FF,"Spielerid ist nicht vorhanden!");
// Falls eine falsche ID angegeben wurde, wird 0 returnt ;)
if(Spieler[playerid][AdminLevel] > 3) // Hier wird abgefragt ob das Level des Spielers der den Befehl eingegeben hat größer als 3 ist.
{
new adminstring[128];
GetPlayerName(pID,playername,sizeof playername);
format(accFormat,sizeof accFormat,"Admins/%s.sav",playername);
GetPlayerName(playerid,levelsetter,sizeof(levelsetter));
Spieler[pID][AdminLevel] = Level; //Hier wird die Levelvariable mit dem neu eingegebenen Level überschrieben
dini_IntSet(accFormat,"AdminLevel",Level); // Und hier das neue Level in der Datei gespeichert.
format(adminstring,sizeof(adminstring),"%s hat dein Level auf %d gesetzt!",levelsetter, Level);
SendClientMessage(pID,0x33FF33FF, adminstring);
}
else SendClientMessage(playerid, 0xFF0000FF, "Dein Level reicht nicht aus!");
// Falls das Level nicht ausreicht wird dieser Text gesendet.
return 1;
}
Alles anzeigen
In der Zeile:
if dcmd(setlevel,8,cmdtext); // Die 8 steht für die Anzahl der Buchstaben im Wort setlevel - also 8 insgesamt.
Stehen die errors!
Hier noch die errors:
C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Gamemod.pwn(204) : error 029: invalid expression, assumed zero
C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Gamemod.pwn(204) : error 017: undefined symbol "dcmd_setlevel"
C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Gamemod.pwn(204) : error 001: expected token: ";", but found "return"
C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Gamemod.pwn(204) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
Alles anzeigen
Hoffe jemand kann mir Helfen!
Danke im vorraus MFG K1ng106
Was bekommst Du denn für Errors oder versuchst du es erst gar nicht?
Also jetzt will ich eig nur wissen wie ich das rein bringe!
Denn wenn ich es einfach irgendwie einfüge hab ich 20 errors!!
//EDIT: Habs selbst gelöst kan geclosed werden!
Ich brauche drinegen hilfe kanns sich bitte jemand meine farge ansehen: Errors bei Pawno! [Bitte Lesen][Wichtig]
Danke
Hi ich hab in Pawno bei meinem Gamemod ein paar errors, hier der abteil im Quelcod wo die erros sind:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/help", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid, 0xFF00FF00, "Es gibt folgende Befehle: /healme um dich zu Healen");
return 1;
}
if (strcmp("/healme", cmdtext, true, 10) == 0)
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, 0xFF00FFFF, "Du wurdest Geheilt.");
return 1;
}
dcmd(setlevel,8,cmdtext); // Die 8 steht für die Anzahl der Buchstaben im Wort setlevel - also 8 insgesamt.
dcmd(kick,4,cmdtext);
return 0;
}
dcmd_setlevel(playerid,params[])
{
new pID, Level,levelsetter[MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME], accFormat[128];
if(sscanf(params, "ud",pID,Level)) SendClientMessage(playerid,0xFF0000FF,"Benutze: /setlevel [ID][Level]!"); //Falls nur /setlevel eingegeben wurde
if (pID == INVALID_PLAYER_ID) SendClientMessage(playerid,0xFF0000FF,"Spielerid ist nicht vorhanden!");
// Falls eine falsche ID angegeben wurde, wird 0 returnt ;)
if(Spieler[playerid][AdminLevel] > 3) // Hier wird abgefragt ob das Level des Spielers der den Befehl eingegeben hat größer als 3 ist.
{
new adminstring[128];
GetPlayerName(pID,playername,sizeof playername);
format(accFormat,sizeof accFormat,"Admins/%s.sav",playername);
GetPlayerName(playerid,levelsetter,sizeof(levelsetter));
Spieler[pID][AdminLevel] = Level; //Hier wird die Levelvariable mit dem neu eingegebenen Level überschrieben
dini_IntSet(accFormat,"AdminLevel",Level); // Und hier das neue Level in der Datei gespeichert.
format(adminstring,sizeof(adminstring),"%s hat dein Level auf %d gesetzt!",levelsetter, Level);
SendClientMessage(pID,0x33FF33FF, adminstring);
}
else SendClientMessage(playerid, 0xFF0000FF, "Dein Level reicht nicht aus!");
// Falls das Level nicht ausreicht wird dieser Text gesendet.
return 1;
}
Alles anzeigen
Und (In zeile 241)
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;
}
Alles anzeigen
Entschuldige hab die errors vergessen hier sind sie:
C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Gamemod.pwn(204) : warning 217: loose indentation
C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Gamemod.pwn(213) : warning 217: loose indentation
C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Gamemod.pwn(224) : warning 217: loose indentation
C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Gamemod.pwn(226) : warning 217: loose indentation
C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Gamemod.pwn(490) : error 029: invalid expression, assumed zero
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Alles anzeigen
Hoffe jemand kann mir helfen!
Danke im vorraus
MFG K1ng106
Hi
Ich ich hab angefangen zu scripten jetzt soll gleich ein adminssystem rein doch bei OnPlayerCommandText hab ich noch kleine Probleme!
Undzwar das ist der Code:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/help", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid, 0xFF00FF00, "Es gibt folgende Befehle: /healme um dich zu Healen");
return 1;
}
if (strcmp("/healme", cmdtext, true, 10) == 0)
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, 0xFF00FFFF, "Du wurdest Geheilt.");
return 1;
}
return 0;
}
Alles anzeigen
Und der Code muss noch rein:
public OnPlayerCommandText(playerid, cmdtext[])
{
//anderer Code
dcmd(setlevel,8,cmdtext); // Die 8 steht für die Anzahl der Buchstaben im Wort setlevel - also 8 insgesamt.
return 0;
}
Kann das jemand für mich Richtig stellen?
Danke im vorraus MFG K1ng106
Kann mir bitte jemand in diesen Code:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/help", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid, 0xFF00FF00, "Es gibt folgende Befehle:n /healme um dich zu Healen");
return 1;
}
if (strcmp("/healme", cmdtext, true, 10) == 0)
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, 0xFF00FFFF, "Du wurdest Geheilt.");
return 1;
}
return 0;
}
Alles anzeigen
Diesen Code einfügen?
public OnPlayerCommandText(playerid, cmdtext[])
{
//anderer Code
dcmd(setlevel,8,cmdtext); // Die 8 steht für die Anzahl der Buchstaben im Wort setlevel - also 8 insgesamt.
return 0;
}
Danke im vorraus!
Das erste unter OnPlayerCommandText und der rest einfach nach ganz unten bzw. eigene Publics/Stocks.
Ok danke, aber wo kommt der Code da jetzt rein?
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/help", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid, 0xFF00FF00, "Es gibt folgende Befehle:\n /healme um dich zu Healen");
return 1;
}
if (strcmp("/healme", cmdtext, true, 10) == 0)
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, 0xFF00FFFF, "Du wurdest Geheilt.");
return 1;
}
return 0;
}
Alles anzeigen
Hi,
Ich bin neu ind diesem Forum und auch in deeer Scripter Welt
Hab mal gleich eine Frage:
Wo kommen diese Codes:
public OnPlayerCommandText(playerid, cmdtext[])
{
//anderer Code
dcmd(setlevel,8,cmdtext); // Die 8 steht für die Anzahl der Buchstaben im Wort setlevel - also 8 insgesamt.
return 0;
}
dcmd_setlevel(playerid,params[])
{
new pID, Level,levelsetter[MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME], accFormat[128];
if(sscanf(params, "ud",pID,Level)) SendClientMessage(playerid,0xFF0000FF,"Benutze: /setlevel [ID][Level]!"); //Falls nur /setlevel eingegeben wurde
if (pID == INVALID_PLAYER_ID) SendClientMessage(playerid,0xFF0000FF,"Spielerid ist nicht vorhanden!");
// Falls eine falsche ID angegeben wurde, wird 0 returnt ;)
if(Spieler[playerid][AdminLevel] > 3) // Hier wird abgefragt ob das Level des Spielers der den Befehl eingegeben hat größer als 3 ist.
{
new adminstring[128];
GetPlayerName(pID,playername,sizeof playername);
format(accFormat,sizeof accFormat,"Admins/%s.sav",playername);
GetPlayerName(playerid,levelsetter,sizeof(levelsetter));
Spieler[pID][AdminLevel] = Level; //Hier wird die Levelvariable mit dem neu eingegebenen Level überschrieben
dini_IntSet(accFormat,"AdminLevel",Level); // Und hier das neue Level in der Datei gespeichert.
format(adminstring,sizeof(adminstring),"%s hat dein Level auf %d gesetzt!",levelsetter, Level);
SendClientMessage(pID,0x33FF33FF, adminstring);
}
else SendClientMessage(playerid, 0xFF0000FF, "Dein Level reicht nicht aus!");
// Falls das Level nicht ausreicht wird dieser Text gesendet.
return 1;
}
dcmd_kick(playerid,params[])
{
new pID, adminstring1[128];
if(sscanf(params, "uz",pID,adminstring1)) SendClientMessage(playerid,0xFF0000FF,"USAGE: /kick ID Grund");
//Falls nur /Kick eingegeben wurde
if (pID == INVALID_PLAYER_ID) SendClientMessage(playerid,0xFF0000FF,"Kein Spieler mit angegebener ID Online!");
//Falsche Id
if (pID == playerid) SendClientMessage(playerid,0xFF0000FF,"Du kannst dich nicht selber kicken!");
// Falls man seine eigene ID angegeben hat ;)
if(Spieler[playerid][AdminLevel] > 0) // Wenn das Level größer ist als 0
{
new ThePlayer[MAX_PLAYER_NAME];
GetPlayerName(pID,ThePlayer,sizeof(ThePlayer));
format(adminstring1,sizeof(adminstring1),"%s wurde vom Server gekickt!(Grund: %s)",ThePlayer,adminstring1[0] ? adminstring1 : "<Kein Grund>");
// Falls kein Grund angegeben wird als Grund <Kein Grund> angegeben
SendClientMessageToAll(0xFF0000FF,adminstring1);
Kick(pID);
}
else SendClientMessage(playerid, 0xFF0000FF, "Dein Level reicht nicht aus!");
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;
}
Alles anzeigen
Rein?
Alle anderen Codes konnte ich unter bringen
Wenn ihr mein Ganzes Script braucht werde ich es dann Posten!
Danke im vorraus
MFG K1ng106