Was ist denn der Fehler?
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Code
\gamemodes\1337.pwn(8924) : error 012: invalid function call, not a valid address \gamemodes\1337.pwn(8924) : warning 215: expression has no effect \gamemodes\1337.pwn(8924) : error 001: expected token: ";", but found ")" \gamemodes\1337.pwn(8924) : error 029: invalid expression, assumed zero \gamemodes\1337.pwn(8924) : fatal error 107: too many error messages on one line
-
In dem Code ist dieser Fehler nicht, ich kann es ohne Probleme kompilieren. Welches ist denn die Zeile 8924?
-
Nabend ...
wie genau muss ich es umschreiben das ich Hinten einen "Grund" einfügen kann und eine Nachricht an alle Admin geht mit Dem Namen+Zeit+Grund ??
if(strcmp(cmd, "/ajail", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /ajail [Spieler ID / Name] [Zeit in Minuten]");
return 1;
}
new playa;
new money;
playa = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
money = strval(tmp);
if(playa == playerid)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nicht dich selber einsperren!");
return 1;
}
if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playa][pAdmin])
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst keinen höherrangigen Admin einsperren!");
return 1;
}
if (PlayerInfo[playerid][pAdmin] >= 1)
{
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* Du hast %s eingesperrt.", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTRED, string);
format(string, sizeof(string), "* Du wurdest von Admin %s in das Admin-Jail gesperrt.", sendername);
SendClientMessage(playa, COLOR_LIGHTRED, string);
ResetPlayerWeapons(playa);
WantedPoints[playa] = 0;
PlayerInfo[playa][pJailed] = 1;
PlayerInfo[playa][pJailTime] = money*60;
SetPlayerInterior(playa, 3);
SetPlayerPos(playa, 197.8290,161.8141,1003.0300);
format(string, sizeof(string), "Du wurdest für %d Minuten eingesperrt.[Zu unrecht ? Melde dich im Teamspeak3]", money);
SendClientMessage(playa, COLOR_LIGHTBLUE, string);
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Du darfst diesen Befehl nicht benutzen!");
}
}
return 1;
} -
-
-
Beitrag von Derakar ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
Beitrag von Derakar ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
@IntelCode.I7:
Spoiler anzeigen if(strcmp(cmd, "/ajail", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /ajail [Spieler ID / Name] [Zeit in Minuten] [Grund]");
return 1;
}
new playa;
new money, tmp2[256];
playa = ReturnUser(tmp);
tmp2 = strtok(cmdtext, idx);
money = strval(tmp2);
if(!strlen(cmdtext[strlen(tmp)+strlen(tmp2)+2]))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /ajail [Spieler ID / Name] [Zeit in Minuten] [Grund]");
return 1;
}
if(playa == playerid)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nicht dich selber einsperren!");
return 1;
}
if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playa][pAdmin])
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst keinen höherrangigen Admin einsperren!");
return 1;
}
if (PlayerInfo[playerid][pAdmin] >= 1)
{
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* Du hast %s eingesperrt. Grund: %s", giveplayer,cmdtext[strlen(tmp)+strlen(tmp2)+2]);
SendClientMessage(playerid, COLOR_LIGHTRED, string);
format(string, sizeof(string), "* Du wurdest von Admin %s in das Admin-Jail gesperrt. Grund: %s", sendername,cmdtext[strlen(tmp)+strlen(tmp2)+2]);
SendClientMessage(playa, COLOR_LIGHTRED, string);
ResetPlayerWeapons(playa);
WantedPoints[playa] = 0;
PlayerInfo[playa][pJailed] = 1;
PlayerInfo[playa][pJailTime] = money*60;
SetPlayerInterior(playa, 3);
SetPlayerPos(playa, 197.8290,161.8141,1003.0300);
format(string, sizeof(string), "Du wurdest für %d Minuten eingesperrt.[Zu unrecht ? Melde dich im Teamspeak3]", money);
SendClientMessage(playa, COLOR_LIGHTBLUE, string);
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Du darfst diesen Befehl nicht benutzen!");
}
}
return 1;
}
Teste es so.@K3Ksii:
Das ist keine kleine Scripting Frage. Erstelle dafür einen Thread. -
Okay
-
Wie genau schaffe ich es ein Textdraw zu mahen mit einem Payday der unten Recht angezeigt wird ?
Copyright = TextDrawCreate(27.000000, 424.000000, "Payday : 0/60");
TextDrawAlignment(Copyright,0);
TextDrawBackgroundColor(Copyright,0x000000FF);
TextDrawFont(Copyright, 3);
TextDrawLetterSize(Copyright, 0.340000, 1.600000);
//TextDrawColor(Copyright, 0xEB0000FF);
TextDrawSetOutline(Copyright, 1);
TextDrawSetProportional(Copyright, 1);
TextDrawShowForAll(Copyright); -
dcmd_a(playerid,params[])
{
if(sSpieler[playerid][Adminlevel] < 1) return SendClientMessage(playerid,Weiß,"Du bist kein Admin!");
{
new text[256];
new spielername[MAX_PLAYER_NAME];
GetPlayerName(playerid,spielername,sizeof(spielername));
if(sscanf(params,"s",text))
return SendClientMessage(playerid,Weiß,"Info: /a (text)");
format(text,sizeof(text),"Adminchat %s: %s",spielername,text);
for(new i; i < GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
SendAdminMessage(Weiß,text);
}
}
return 1;
}Warum wird der Adminchat immer doppelt bzw 3 oder 4fach angezeigt, wenn jeweils so viele spieler online sind?
Wenn ein spieler on ist, wird der text einmal ausgegeben.
bei 2 spielern wird er 2x mal ausgegeben
was muss geändert werden? -
Dein Fehler ist recht simpel. Die Nachricht wird bei dir in der Schleife ausgegeben, die alle Spieler durchgeht.
1 Spieler -> 1 Schleifendurchlauf
X Spieler -> X SchleifendurchläufeSchreib es so:
dcmd_a(playerid,params[])
{
if(sSpieler[playerid][Adminlevel] < 1) return SendClientMessage(playerid,Weiß,"Du bist kein Admin!");
new text[256];
new spielername[MAX_PLAYER_NAME];
GetPlayerName(playerid,spielername,sizeof(spielername));
if(sscanf(params,"s",text))return SendClientMessage(playerid,Weiß,"Info: /a (text)");
format(text,sizeof(text),"Adminchat %s: %s",spielername,text);
SendAdminMessage(Weiß,text);
return 1;
}.. und jetzt bitte nochmal die Funktion SendAdmiMessage, wenn es nicht funktionieren sollte.
Einrücken musst du selber, geht über meinen Browser nicht. -
IntelCore.I7:
Zuerst solltest du mal PlayerTextdraws erstellen anstatt globale Textdraws, denn jeder Spieler hat einen anderen Payday Wert.
Copyright = CreatePlayerTextDraw(playerid,27.000000, 424.000000, "Payday : 0/60");
PlayerTextDrawAlignment(playerid,Copyright,0);
PlayerTextDrawBackgroundColor(playerid,Copyright,0x000000FF);
PlayerTextDrawFont(playerid,Copyright, 3);
PlayerTextDrawLetterSize(playerid,Copyright, 0.340000, 1.600000);
PlayerTextDrawColor(playerid,Copyright, 0xEB0000FF);
PlayerTextDrawSetOutline(playerid,Copyright, 1);
PlayerTextDrawSetProportional(playerid,Copyright, 1);
PlayerTextDrawShow(playerid,Copyright);
Als nächsten hast du bestimmt einen Timer wo du die Variable vom Payday erhöhst; Genau dort fügst du folgendes ein:
new string[64];
format(string,sizeof(string),"Payday: %i/60",sStats[playerid][PayDay]/*ersetzten mit deiner PayDay Variable*/);
PlayerTextDrawSetString(playerid,Copyright,string);~ Handy
-
Erstmal Danke Aykut habe es nun so ..
new string[64];
format(string,sizeof(string),"Payday: %d/60",PlayerInfo[playerid][pPlayMinutes]/*ersetzten mit deiner PayDay Variable*/);
PlayerTextDrawSetString(playerid,Copyright,string);Aber dann kommen lots of errors
-
Welche denn?
-
Okay die anderen errors kamen durch andere dinge aber diesen hier bekomme ich.
: error 021: symbol already defined: "string"
-
Du hast es bereits deklariert. Benenne es zu str2 oder so um, dann geht es.
-
C:\Users\Pc\Desktop\yyyyyyyyyt\gamemodes\xxxxxx.pwn(13192) : warning 204: symbol is assigned a value that is never used: "logstring"
-
symbol is assigned a value that is never used: "logstring"
Entweder kommentierst bzw löschst du die Deklaration der Variable oder schreibst new stock logstring;mfg.
-