Ja, was sagt denn dein server log wenn du den command eingibst? Und kannst du den command zeigen, wie du es mit den prints gemacht hast?
Als letzte Möglichkeit bleibt: Neu machen. Command löschen, und neu erstellen. Ist zwar doof, hilft aber.
Ja, was sagt denn dein server log wenn du den command eingibst? Und kannst du den command zeigen, wie du es mit den prints gemacht hast?
Als letzte Möglichkeit bleibt: Neu machen. Command löschen, und neu erstellen. Ist zwar doof, hilft aber.
Falsch. Das Limit liegt bei 144 Zeichen!
ocmd:news(playerid,params[])
{
new string[144];
if(!strlen(params))return SendClientMessage(playerid,COLOR_GRAD2,"Benutze: /news [text]");
if(SpielerInfo[playerid][pFraktion] != 6)return SendClientMessage(playerid,COLOR_GRAD2,"Du bist kein Mitglied der San Andreas News AG");
format(string,sizeof(string),"[NEWS] %s: %s",SpielerName(playerid), params);
SendClientMessageToAll(COLOR_GREEN, string);
return 1;
}
stock NiceMoney(money) //by Jeffry (UGP)
{
new bmess[15];
format(bmess, 15, "%d", money);
if(money > 0)
{
for(new l=strlen(bmess)-3; l>0; l-=3)
{
if(l>0)
{
strins(bmess, ".", l);
}
}
}
else
{
for(new z=strlen(bmess)-3; z>1; z-=3)
{
if(z>1)
{
strins(bmess, ".", z);
}
}
}
return bmess;
}
Gibt einen String zurück. Funktioniert einwandfrei.
Einfach dein
GetPlayerMoney(playerid)
mit
NiceMoney(GetPlayerMoney(playerid))
ersetzen.
Kommt darauf an was der Cheater benutzt, um deine Spieler zu crashen. Ich gehe mal davon aus, dass du meinst, das Spiel abstürzen lassen.
Wenn er ungültige Tunings benutzt, dann wäre es möglich einen code zu machen.
Danke, sehr hilfreich...vielleicht vorher mal den Thread lesen.
Marvin2921, mach mal dein komplettes OnDialogResponse callback in einen pastebin: http://www.pastebin.com
Kannst mir auch gerne als PM schicken, falls du es nicht öffentlich haben willst.
Es wird ja gar nichts angezeigt, nicht mal dass der dialog aufgerufen wurde.
Zeig doch mal den command, mit dem du den Dialog öffnest.
Ich hab ebenfalls keine Ahnung.
Vielleicht probierste doch mal das mit den prints aus. So hab ich bis jetzt noch jedes meiner Probleme repariert.
Das macht wenig Sinn wie du das hast.
Nimm mal das, und sag uns was der server log so printet:
if(dialogid == DIALOG_ALARM)
{
printf("response=%d listitem=%d", response, listitem);
if(response)
{
if(listitem == 0)
{
for(new i; i<MAX_PLAYERS; i++)
{
printf("playerid i=%d called", i);
if(sSpieler[i][Fraktion] == 1)
{
printf("playerid i=%d called - Step 1", i);
SendClientMessage(i,COLOR_RED,"Einsatz für das KLF!");
printf("playerid i=%d called - Step 2", i);
PlayAudioStreamForPlayer(i,"linkzensiert!");
}
}
}
}
}
Also ich nehme mal an, dass nichts geprintet wurde, richtig?
Dann setz es doch mal über die if-Abfrage, also 2 Zeilen hoch. Was passiert dann?
Aber dir Franktion haste schon richtig zugewießen (also 1), oder?
Hast du das mit dem print versucht?
Probiers mal ohne die backslashes.
Na wird dir wenigstens die Nachricht gezeigt?
(Einsatz für das KLF!)
Probiers mal wie ich es gemacht habe (oben). Und wenn das auch nicht geht, dann setz mal über deinen AudioStream ein
printf("playerid i=%d called", i);
Dann schaust im serverlog nach wo es aufhört, bzw. ob es überhaupt aufgerufen wird.
Ok, an dem command gibt es ja nichts auszusetzen.
Dann mach entweder was Dark.Shadow gesagt hat, oder, wie ich es machen würde:
Mach einfach ziwschen jede Zeile einen print, dann siehste im serverlog wo der code aufhört.
print("1");
...code
print("2");
...code
....
new Float:DtcParkPlatz[7][4][4] = {
7 Rubriken á 4 Fahrzeuge mit je 4 Positionen. => 7 4 4
SetGameModeText("Nicht mehr Unknown");
Du könntest es ja auch zu NULL setzen. Je nach dem was du haben willst, als Standard Wert.
Nein, wenn ein Bulle jemand unter 1 Wanted killt, ist das ein Verbrechen!
Dann ich aber deine Nachricht etwas verwirrend. Naja, seis drum. Überprüf doch mal mit einem print, welche Werte deine Variablen haben:
printf("Frkt: %d, WL: %d", GetPVarInt(killerid,"Fraktion"), GetPVarInt(playerid,"WantedLevel"));
^Das setzte mal vor die erste if Abfrage, und sagst uns was dein server log dir ausgibt.
@Raphael.K: Muss er ja nicht, wenn er ihn schon davor oder global deklariert hat.
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerFraktion[i] == FRAKTION_ID) //Oder PVar, was du halt benutzt. FRAKTION_ID natürlich ersetzen...
{
//Musik für 'i' (=playerid) abspielen.
}
}
}
@Andrzejxy': Hi Bin mir nicht ganz sicher wie das ist einen AudioStream für nicht connectete Spieler aufzurufen.