WantedsLable[forplayerid][playerid] = CreatePlayer3DTextLabel(forplayerid...
So in der Art. Reicht dir das?
WantedsLable[forplayerid][playerid] = CreatePlayer3DTextLabel(forplayerid...
So in der Art. Reicht dir das?
Wie sieht dein Code aus?
Es fehlt das zweite Array mit den Daten. Das Array zu dem enum bizEnum. Poste das bitte noch, sonst bringt es nichts.
Nein, du siehst ja vielleicht auch mal mehr als einen Spieler, sprich du brauchst ein zweidimensionales Array als Speicher, mit Index 1 playerid und Index 2 forplayerid, oder umgekehrt.
Kaliber:
Das macht keinen Sinn. Dann kann er sich ja unendlich viele Fahrzeuge kaufen, wobei immer das zuletzt erstellte wieder überschrieben wird.
Wie du siehst, steht im dialog drin, dass PlayerInfo[playerid][pCarLimit] auf 1 gesetzt wird, wenn ein Fahrzeug gekauft wird, wenn du dann abfragst ob es 1 ist, dann kann man sich kein Fahrzeug kaufen wenn man keins hat, und wenn man eines hat, dann kann man sich eins kaufen. Das macht keinen Sinn, da letzteres nie erreicht wird.
Außerdem war ein paar Zeilen drunter die Abfrage ob es 1 ist nochmal drin, sprich es hätte ohnehin nicht funktioniert, gezahlt hätte er zwar, aber das wars auch.
Problem ist bei dem Code den er verwendet, dass er voller Fehler ist, und daher die Variablen z.T. nicht korrekt zurückgesetzt werden.
Deshalb machen wir es hier auch mal wie beim Problem zuvor, dass wir die Position des Fahrzeugs das er angeblich bereits besitzt abfragen, und wenn die 0 ist (wie im Problem zuvor), dann kann er sich ein neues Fahrzeug kaufen, ansonsten nicht.
Schreibe es so. Wenn es nicht geht, poste bitte den print und sage uns welche Meldung im Chat erscheint.
Kannst du hiermit machen:
http://forum.sa-mp.de/gta-mult…eschnipsel-50#post1679737
Beispiel ist dabei.
Sag es ihm doch einfach wie, anstatt fünf mal hin und her zu posten... ![]()
@PeeteeTV:
if(preis <= PlayerInfo[playerid][pCash] && PlayerInfo[playerid][pCarLimit] == 0)
Zu
printf("cash %d / limit %d", PlayerInfo[playerid][pCash], PlayerInfo[playerid][pCarLimit]);
if(preis <= PlayerInfo[playerid][pCash] && PlayerInfo[playerid][pCarLimit] == 0)
Was wird geprintet, wenn du den Dialog ab schickst?
Poste bitte dann mal beide Arrays mit den Daten und beide enums dazu. Sonst kann ich mir das nur schwer vorstellen, wie du das haben willst.
Wäre auch gut wenn du dazu schreibst, welche die Koordinaten des Markers sind und die Koordinaten sind zu denen er teleportiert werden soll.
Nein, mache es mal so wie ich es geschrieben habe. Dein Array heißt doch auch bdInfo.
Schreibe es einfach mal so, klappt es dann?
Es muss ein zweidimensionales Array sein.
new lr_n_input[MAX_PLAYERS][24];
new lr_p_input[MAX_PLAYERS][24];
Wieso eigentlich 15 Durchläufe?
new bdInfo[MAX_SHOP][buildingsEnum] = {
{"Bürger Shot Nord",1559,1199.2811,-918.6648,43.1191}, // BSE1
{"Bürger Shot West",1559,810.9824,-1616.2720,13.5469}, // BSE2
{"Bürger Shot Nord",1559,1872.7986,2071.6619,11.0625}, // BSE3
{"Bürger Shot Nord-West",1559,2472.3940,2034.2115,11.0625}, // BSE4
{"Bürger Shot West",1559,2169.9138,2795.8726,10.8203} // BSE5
};
Hier sind nur 5.
Ist es Absicht, dass du bsInfo im Befehl geschrieben hast anstatt bdInfo, oder nicht? Ändere das ggf mal.
Debugge es mal so (mit Werten):
Ah, die Debugs hast du schon gemacht, das spart natürlich sehr viel Arbeit, schön dass das mal jemand macht. ![]()
Teste es mal so:
Das tmp_i war eigentlich nicht nötig.
format(string,sizeof string, "%s hat %s zu einem Level %d Admin befördert/degradiert.",PlayerName(playerid),PlayerName(para1));
Zu
format(string,sizeof string, "%s hat %s zu einem Level %d Admin befördert/degradiert.",PlayerName(playerid),PlayerName(para1),level);
Edit
Und
new level = strval(tmp);
tmp = strtok(cmdtext, idx);
Zu
tmp = strtok(cmdtext, idx);
new level = strval(tmp);
public OnPlayerDisconnect(playerid)
{
Delete3DTextLabel(label[playerid]);
return 1;
}
for(new o=0;o<100;o++)
{
for(new i=0;i<_:gpsEnum;i++)
{
gpsInfo[o][gpsEnum:i] = 0;
}
}