[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
Jeffry:
So war mein erster gedanke, jedoch müsste ich dem enum doch dann die ganzen werte per hand eintragen oder?
Was meinst du?
Du kannst es genau so ersetzen, dann sollte es ohne Fehler kompilieren. -
Ups sorry hab nur was übersehen, deswegen.
Habe es einfach so ersetzt und nun 2 weitere errors, welche irgendwas sagen das die array größe überschritten ist.Spoiler anzeigen
C:\Users\Arbeits-PC\Desktop\gamemode\filterscripts\tank.pwn(78) : warning 228: length of initialler exceeds size of the enum field
C:\Users\Arbeits-PC\Desktop\gamemode\filterscripts\tank.pwn(78) : error 018: initialization data exceeds declared size
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
//betreffende zeile:
{"Berkley's RC Van",Diesel},
Von der Zeile aus her ist es irgendwie verwirrend, da ja alle so sind.
//e
Hat sich erledigt war doch nur die größe beim Namen im enumerator.
Danke dir -
eine Kleine Frage wie frage ich ab z.b
Ob der Spieler Admin Level 1 oder Supporter Level 1 ist und wenn nicht kommt diese Nachricht SendClientMessage(playerid,ROT,"Du bist dazu nicht befugt!");
meine Admin/supp abfrage
isSupp(playerid,s_level)
{
if(sInfo[playerid][slevel]>=s_level)return 1;
return 0;
}isAdmin(playerid,a_level)
{
if(sInfo[playerid][alevel]>=a_level)return 1;
return 0;
} -
if(isSupp(playerid,1) || isAdmin(playerid,1))
{
//Ist Supporter oder Admin
}
else return SendClientMessage(playerid,ROT,"Du bist dazu nicht befugt!");oder so:
if(!isSupp(playerid,1) && !isAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Du bist dazu nicht befugt!");
//Code der nur von Supportern/Admins ausgeführt werden darf hier drunter. -
if (!strcmp("/arrest", cmd, true))
{
if (!IsACop(playerid)) return SendClientMessage(playerid, COLOR_ERRORTEXT, " Du bist kein Polizist / FBI Agent Soldier !");
if (!OnDuty[playerid]) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Du bist nicht im Dienst");
if (!PlayerToPoint(6.0, playerid, 198.1741,158.6524,1003.0234) && !PlayerToPoint(6.0, playerid, 268.5258,77.6269,1001.0391) && !PlayerToPoint(6.0, playerid, 268.4561,84.9885,1001.0391) && !PlayerToPoint(6.0, playerid, 321.8767,314.1259,999.1484)) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Du bist nicht in der Nähe der Zellen.");
tmp = strtok(cmd, idx);
if (!strlen(tmp) || !strval(tmp)) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Benutze: /arrest [ID]");
new suspect = GetClosestPlayer(playerid);
if (GetDistanceBetweenPlayers(playerid, suspect) > 5) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Der Spieler ist zu weit von dir entfernt.");
if (PlayerInfo[suspect][pWantedLevel] < 1) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Der Spieler muss mindestens 1 Wanted haben.");
new giveplayer[MAX_PLAYER_NAME], sendername[MAX_PLAYER_NAME];
GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* Du hast %s eingesperrt!", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
new bail = PlayerInfo[suspect][pWantedLevel] * 750; // Kautionsgeld
GivePlayerMoneys(playerid, bail);
format(string, sizeof(string), "Eingesperrt von %s ~n~fuer $%d", sendername, bail);
GameTextForPlayer(suspect, string, 5000, 5);
ResetPlayerWeapon(suspect);
if(PlayerInfo[playerid][pMember] == 7 || PlayerInfo[playerid][pLeader] == 7) format(string, sizeof(string), "<< FBI Agent %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
else if(PlayerInfo[playerid][pMember] == 14 || PlayerInfo[playerid][pLeader] == 14) format(string, sizeof(string), "<< LSPD Officer %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
else if(PlayerInfo[playerid][pMember] == 16 || PlayerInfo[playerid][pLeader] == 16) format(string, sizeof(string), "<< SFPD Officer %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
else if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1) format(string, sizeof(string), "<< LVPD Officer %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
SendClientMessageToAll(COLOR_LIGHTRED, string);
if(PlayerToPoint(6.0, playerid, 198.1741,158.6524,1003.0234))
{
PlayerInfo[suspect][pJailed] = 1;
SetPlayerInterior(suspect, 3);
SetPlayerPos(suspect,198.8241,161.8588,1003.0300);
}
if(PlayerToPoint(6.0, playerid, 268.5258,77.6269,1001.0391) || PlayerToPoint(6.0, playerid, 268.4561,84.9885,1001.0391) || PlayerToPoint(6.0, playerid, 321.8767,314.1259,999.1484))
{
PlayerInfo[suspect][pJailed] = 3;
SetPlayerInterior(suspect, 6);
new zufall = random(3);
if(zufall == 1)
{
SetPlayerPos(suspect, 264.3521,82.2144,1001.0391);
}
else if(zufall == 2)
{
SetPlayerPos(suspect, 264.1788,86.7012,1001.0391);
}
else
{
SetPlayerPos(suspect, 264.7485,77.6824,1001.0391);
}
PlayerInfo[suspect][pLocal] = -1;
}
PlayerInfo[suspect][pJailTime] = PlayerInfo[suspect][pWantedLevel] * 240;
JailPrice[suspect] = bail;
format(string, sizeof(string), "Du wurdest für %d Minuten eingesperrt. Kaution: $%d", PlayerInfo[suspect][pJailTime]/60, JailPrice[suspect]);
SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
SetPlayerFree(suspect, playerid, string, 0);
PlayerInfo[suspect][pArrested] += 1;
PlayerInfo[suspect][pWantedLevel] = 0;
WantLawyer[suspect] = 1;
format(string,sizeof(string),"%s hat den Verdächtigen %s eingesperrt", sendername, giveplayer);
EnterToLog("arrest",string);
}Warum nimmt er die ID nicht?
-
if(isSupp(playerid,1) || isAdmin(playerid,1))
{
//Ist Supporter oder Admin
}
else return SendClientMessage(playerid,ROT,"Du bist dazu nicht befugt!");oder so:
if(!isSupp(playerid,1) && !isAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Du bist dazu nicht befugt!");
//Code der nur von Supportern/Admins ausgeführt werden darf hier drunter.
Okay danke genau das :))
Wer's ich heute im laufe des Tages testen genauso Wie den /carlock Befehl weil muss heute Musik machen und gehe schlafen
Guten nacht ihr kleinen Scripter -
Warum nimmt er die ID nicht?
Was gibst du denn ein? -
/arrest [ID] vom Spieler
-
/arrest [ID] vom Spieler
Genau die ID wollte ich wissen. Ist es die 0? Wenn ja
if (!strlen(tmp) || !strval(tmp))
Zu
if(!strlen(tmp) || !IsNumeric(tmp))IsNumeric: http://pastebin.com/3G94dnAw
Das kannst du eigentlich ohnehin machen, auch wenn du nicht die 0 eingibst. Falls du die nicht eingibst, welche Meldungen kommen?
-
Genau die ID wollte ich wissen. Ist es die 0? Wenn ja
if (!strlen(tmp) || !strval(tmp))
Zu
if(!strlen(tmp) || !IsNumeric(tmp))IsNumeric: http://pastebin.com/3G94dnAw
Das kannst du eigentlich ohnehin machen, auch wenn du nicht die 0 eingibst. Falls du die nicht eingibst, welche Meldungen kommen?
Der User hatte die ID 1 -
Der User hatte die ID 1
...
welche Meldungen kommen?
Sei dich bitte nicht so sparsam mit deinen Antworten.
-
forward TachoUpdaten();
public TachoUpdaten()
{
for(new i = 0; i<MAX_PLAYERS; i++)
{
if(IsPlayerInAnyVehicle(i))
{
new string[24],string1[24],string2[24],Float:hp;
format(string,sizeof(string),"KM/H: %d",Geschwindigkeit(i,true));
TextDrawSetString(Speed, string);GetVehicleHealth(GetPlayerVehicleID(i),hp);
hp = (hp-250.0) / 7.5;
format(string1,sizeof(string1),"HP: %d%%",floatround(hp));
TextDrawSetString(Zustand,string1);format(string2,sizeof(string2),"%s",FahrzeugName[GetVehicleModel(GetPlayerVehicleID(i))-400]);
TextDrawSetString(Name,string2);
}
}
return 1;
}Wie könnte man es machen das der Zustand nicht tiefer als 0 geht?
Weil der Wert beim Zustand in - Bereicht geht. -
...
Sei dich bitte nicht so sparsam mit deinen Antworten.
/arrest [ID] -
-
Wie viel geht er denn in den Minus Bereich?
Ich hab dir doch gesagt du musst es eventuell anpassen.Es ist perfekt bei 0 fängt es an zu brennen.
Wenn ich nochmal crashe dann gehts z.B. -17 usw. -
So meinst du das.
Dann mach
hp = (hp-250.0) / 7.5;
Zu
hp = (hp-250.0) / 7.5;
if(hp<0) hp=0.0; -
if(hp<0) hp=0.0;
Ist nichts weiter als eine Abfrage wenn das hp kleiner als 0 ist soll es auf 0 gesetzt werden? -
Wo ist da bitte ein fuckin' Error?
Ich muss blind sein, oder irre ich mich?ShowPlayerDialog(playerid,DIALOG_REGHELP,DIALOG_STYLE_MSGBOX,"Hilfe und Befehle","Willkommen auf Deathmatch-Reloaded!\nUm dir den Start und die Registration etwas zu erleichtern\nsind hier erstmal Befehle aufgelistet die dir zunächst bestimmt weiterhelfen.\n\n/skin - Zum ändern des Skin's\n/arenen - Für eine Liste der Arenen auf Deathmatch-Reloaded\n\n{FF0000}Für eine Liste aller Befehle tippe /commands bzw. /cmds oder /help.\n\n{00FF78}Viel Spaß weiterhin auf Deathmatch-Reloaded!","Danke!","");
C:\Users\Benutzername\Desktop\DM-R\gamemodes\DM-R.pwn(2451) : error 029: invalid expression, assumed zero
C:\Users\Benutzername\Desktop\DM-R\gamemodes\DM-R.pwn(2451) : warning 215: expression has no effect
C:\Users\Benutzername\Desktop\DM-R\gamemodes\DM-R.pwn(2451) : warning 215: expression has no effect
C:\Users\Benutzername\Desktop\DM-R\gamemodes\DM-R.pwn(2451) : warning 215: expression has no effect
C:\Users\Benutzername\Desktop\DM-R\gamemodes\DM-R.pwn(2451) : warning 215: expression has no effect
C:\Users\Benutzername\Desktop\DM-R\gamemodes\DM-R.pwn(2451) : warning 215: expression has no effect
C:\Users\Benutzername\Desktop\DM-R\gamemodes\DM-R.pwn(2451) : error 001: expected token: ";", but found ")"
C:\Users\Benutzername\Desktop\DM-R\gamemodes\DM-R.pwn(2451) : error 029: invalid expression, assumed zero
C:\Users\Benutzername\Desktop\DM-R\gamemodes\DM-R.pwn(2451) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
-
Der Dialog ist fehlerfrei.
ShowPlayerDialog(playerid,DIALOG_REGHELP,DIALOG_STYLE_MSGBOX,"Hilfe und Befehle","Willkommen auf Deathmatch-Reloaded!\nUm dir den Start und die Registration etwas zu erleichtern\nsind hier erstmal Befehle aufgelistet die dir zunächst bestimmt weiterhelfen.\n\n/skin - Zum ändern des Skin's\n/arenen - Für eine Liste der Arenen auf Deathmatch-Reloaded\n\n{FF0000}Für eine Liste aller Befehle tippe /commands bzw. /cmds oder /help.\n\n{00FF78}Viel Spaß weiterhin auf Deathmatch-Reloaded!","Danke!","");