Dann kommt aber der Fehler
Zitaterror 048: array dimensions do not match
Gruß
Dann kommt aber der Fehler
Zitaterror 048: array dimensions do not match
Gruß
Moin,
//ERLEDIGT
Folgender Fehler:
Zitatarray index out of bounds (variable "Accounts")
Folgender Code:
new File:AAcc;
new filepath[256];
format(filepath,sizeof(filepath),"Accounts/AllAccounts.txt");
AAcc = fopen(filepath,io_append);
new Accounts[700];
fread(AAcc,Accounts,sizeof(AAcc));
new AccSplit[700];
split(Accounts[700],AccSplit[700],",");//Fehlerzeile
Split ist eine Funktion, welche ich aus dem Netz habe.
Wo ist der Fehler und wie kann ich ihn beheben?
Gruß
Moin,
habe folgenden Code:
ocmd:ban(playerid,params[])
{
if(!IsPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Du bist kein Admin Stufe 3");
{
new pID, reason[50],string[128];
if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,ROT,"/ban [ID] [GRUND]");
SetPVarInt(pID,"Baned",1);
new Spielerdatei[1000];
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",SpielerName(pID));
new Banngrund[50],Bannadmin[40];
format(Banngrund,sizeof(Banngrund),"%s",reason);
format(Bannadmin,sizeof(Bannadmin),"%s",SpielerName(playerid));
dini_Set(Spielerdatei,"Banngrund",Banngrund);
dini_Set(Spielerdatei,"Bannadmin",Bannadmin);
format(string,sizeof(string),"%s wurde von %s gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid), reason);
SendClientMessageToAll(ROT,string);
new Log[100];
format(Log,sizeof(Log),"%s [Bann] ==> %s Grund: %s",SpielerName(playerid),SpielerName(pID),reason);
SaveToFile(Log);
new Userakte[100];
format(Userakte,sizeof(Userakte),"[Bann]von %s [Grund: %s]",SpielerName(playerid),reason);
SaveToUA(pID,SpielerName(pID),Userakte);
new Banntext[500];
SetPVarString(playerid,"Banngrund",dini_Get(Spielerdatei,"Banngrund"));
new Banngrund2[100];
GetPVarString(pID,"Banngrund",Banngrund2,sizeof(Banngrund2));
format(Banntext,sizeof(Banntext),"Du wurdest soeben gebannt.,\nDu kannst nun nicht mehr auf diesen Account zugreifen.\nBei vermutlicher Unschuld kannst Du im Forum einen Entbannantrag stellen.\n{FF0000}Accountname:{FFFFFF} %s\n{FF0000}Banngrund:{FFFFFF} %s\n{FF0000}Admin:{FFFFFF}%s",SpielerName(pID),Banngrund2,SpielerName(playerid));
ShowPlayerDialog(pID,DIALOG_BANED,DIALOG_STYLE_MSGBOX,"Du wurdest gebannt",Banntext,"","");
Kick(pID);
}
return 1;
}
Jetzt erstellt der aber eine .Part Datei der Account datei.
Weiß jmd. woran das liegen könnte?
Gruß
danke, doch ist der fehler in 1290
Ja toll, wir wissen doch nicht, wo diee Zeile ist
Hey super :>
Funktioniert tadellos. Danke.
Gruß
Ja, dann verschwindet der CP.
Aber der neue Checkpoint wird komischerweise nicht angezeigt.
tach,
Ich bin momentan an einem Bussystem dran, das leider wider erwarten nicht funktioniert.
Snippet:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/linie", cmdtext, true, 10) == 0)
{
SetPlayerCheckpoint(playerid,1290.7672,-936.3823,40.8698,4.0);
return 1;
}
return 0;
}
public OnPlayerEnterCheckpoint(playerid)
{
if(IsPlayerInRangeOfPoint(playerid,2,1290.7672,-936.3823,40.8698))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,1519.3518,-847.7933,65.8554,4.0);
}
else if(IsPlayerInRangeOfPoint(playerid,2,1519.3518,-847.7933,65.8554))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,793.6575,-794.5589,66.3442,4.0);
}
else if(IsPlayerInRangeOfPoint(playerid,2,793.6575,-794.5589,66.3442))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,120.9194,-1561.2400,8.6541,4.0);
}
else if(IsPlayerInRangeOfPoint(playerid,2,120.9194,-1561.2400,8.6541))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,120.9194,-1561.2400,8.6541,4.0);
}
else if(IsPlayerInRangeOfPoint(playerid,2,1041.2650,-1734.7407,13.3828))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,1385.7635,-1782.1515,13.3828,4.0);
}
else if(IsPlayerInRangeOfPoint(playerid,2,1385.7635,-1782.1515,13.3828))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,1379.3354,-1582.0038,13.3631,4.0);
}
else if(IsPlayerInRangeOfPoint(playerid,2,1379.3354,-1582.0038,13.3631))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,1276.2560,-919.6248,41.9305,4.0);
}
else if(IsPlayerInRangeOfPoint(playerid,2,1276.2560,-919.6248,41.9305))
{
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid,BLAU,"Du hast die Linie beendet.");
}
return 1;
}
Doch, wenn ich nun den ersten Checkpoint abfahre,bleibt er.
Was mache ich falsch?
Gruß
Super, danke für alle Antworten :>
Gruß
Achso, ok, und wenn man Geld wegnehmen will?
Ist dann der 2. Parameter "-20000" ?
Tach,
GivePlayerMoney(playerid,GetPlayerMoney(playerid)+20000);
Damit klappt es auch, wenn man momentan 0 $ hat. Dann ändert sich der Stand in 20.000 $.
Doch beim Nächsten Mal ändert es sich in 60.000.
Was mache ich falsch?
Gruß
Ja, du musst halt den Befehl erstellen und die Steuern dann in der dini Datei / in der MySQL Datenbank zu speichern. Beim Payday fragste dann diese Werte ab.
Zitatundefined symbol "cmd"
ändern zu "cmdtext".
Zitatundefined symbol "sendername"
Wo hast du den denn definiert? ("new sendername [50]" z.B.)
Gruß
Hallo,
habe ein Problem und zwar vewandelt sich in meinem Wantedsystem der Stern in die aktuelle Uhrzeit. Nicht sofort, auch nicht immer, sondern nur meistens.
Doch trotzdem kann ich das nicht so lassen, denn das sieht echt kagge aus
Mein Code:
/wgive (Wanteds geben)
if(GetPlayerFraktion(playerid)==1)
{
new pID,Anzahl;
if(sscanf(params,"ui",pID,Anzahl))return SendClientMessage(playerid,ROT,"/wgive [ID] [Anzahl]");
if(Anzahl <0 || Anzahl >6)
{
SendClientMessage(playerid,ROT,"Bitte eine gültige Zahl angeben.");
}
else
{
SetPVarInt(pID,"Wanteds",Anzahl);
UpdateWanteds(pID);
SaveAccount(pID);
}
}
und der Stock UpdateWanteds:
stock UpdateWanteds(pID)
{
new Zahl[1000];
format(Zahl,sizeof(Zahl),"%i",GetPVarInt(pID,"Wanteds"));
if(GetPVarInt(pID,"Wanteds")>0)
{
TextDrawDestroy(wantedzahl);
wantedstern = TextDrawCreate(590,100,"]");
wantedzahl = TextDrawCreate(563,100,Zahl);
new Wtds[100];
format(Wtds,sizeof(Wtds),"Wanteds: %i",GetPVarInt(pID,"Wanteds"));
new Float:X,Float:Y,Float:Z;
GetPlayerPos(pID,X,Y,Z);
for(new i=0; i<GetMaxPlayers(); i++)
{
if(GetPlayerFraktion(i)==1)
{
CreatePlayer3DTextLabel(i,Wtds,0x008080FF,X,Y,Z,40.0,pID);
}
}
}
TextDrawFont(wantedstern,2);
TextDrawColor(wantedstern,Yellow);
TextDrawLetterSize(wantedstern, 0.6 ,2.0);
TextDrawShowForPlayer(pID,wantedstern);
TextDrawFont(wantedzahl,2);
TextDrawColor(wantedzahl,White);
TextDrawLetterSize(wantedzahl, 0.5 ,1.7);
TextDrawShowForPlayer(pID,wantedzahl);
}
Ich habe echt keine Ahnung, woran der Fehler liegt.
Danke schonmal im Voraus.
Gruß
Also da nach dem
"Deine eingegebenen Angaben sind falsch."
Der Dialog zum Alter kommt, gehe ich mal davon aus, dass es sich um den DIalog des Alters handelt(DIALOG_ALTER).
Da du aber das ausführst, wenn DIALOG_REGISTER antwortet, ist es ja nicht korrekt.
Bei beiden Abfragen hast du "DIALOG_REGISTER verwendet:
if(dialogid==DIALOG_REGISTER)
{
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,ROT,"Deine eingegebenen Angaben sind falsch.");
ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter","Bitte gib an wann du geboren wurdest.","Weiter","Abbrechen");
return 1;
}
else
{
Register(playerid,inputtext);
return 1;
}
}
}
return 1;
}
müsste zu
if(dialogid==DIALOG_ALTER)
{
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,ROT,"Deine eingegebenen Angaben sind falsch.");
ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter","Bitte gib an wann du geboren wurdest.","Weiter","Abbrechen");
return 1;
}
else
{
Register(playerid,inputtext);
return 1;
}
}
}
return 1;
}
werden
Gruß
Danke, hat funktioniert :>
Gruß
Morgen,
Ich habe folgenden Code:
public OnPlayerText(playerid, text[])
{
if(GetPVarInt(playerid,"AFKCheck")==1)
{
if(text[100]==AFKCheck)
{
SetPVarInt(playerid,"AFKCheck",0);
}
return 1;
}
return 1;
}
Und folgenden Fehler:
Zitaterror 033: array must be indexed (variable "AFKCheck")
Ich habe schon versucht "text" eine Größe zu geben, z.B. mit
text[5]
Und die Variable
new AFKCheck[5];
ist ja definiert. Also verstehe ich das nicht.
Doch der Fehler erscheint weiterhin.
Was mache ich falsch?
Das ist aber auch nicht sonderlich schwer. Wenn Du schon viel gescriptet hast, dann solltest Du das mit ein bischen nachdenken und den Hilfen von uns schaffen.
Wenn du bei anderen Threads, wo es erklärt wird, schon Fehler bekommst, dann frage ich mich allerdings, was das hier bezwecken soll?
Ich habe das aus meinem Code übernommen, da ist Gelb definiert, downloade dir mal den Samp Color Picker, damit bekommste den Farbcode und den msust du dann anstelle von "Gelb" einfügen.