kann man nicht eine eine meldung ausgeben lassen
new i = GetPlayerGWB(playerid);
Zu
new i = GetPlayerGWB(playerid);
if(i == -1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Kein GWB gefunden.");
kann man nicht eine eine meldung ausgeben lassen
new i = GetPlayerGWB(playerid);
Zu
new i = GetPlayerGWB(playerid);
if(i == -1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Kein GWB gefunden.");
Alle sind 0.
Wurden die eventuell nicht richtig geladen? Prüfe das mal.
Am besten beides in die Schleife vor die if Abfrage:
printf("%d == %d", GWB[i][gwbfraktion], GetPlayerFaction(playerid));
Danke, das wünsche ich dir auch ![]()
Das return ist insofern schon richtig, denn es wird zu GetPlayerFaction kein passendes GWB[i][gwbfraktion] gefunden.
Prüfe mal, was GetPlayerFaction ausgibt und schaue dann, ob dazu überhaupt ein GWB Wert existiert.
Ansonsten müsstest du deinem Befehl eventuell, wenn i gleich -1 ist, noch eine return Meldung hinzufügen, dass für diese Fraktion keine GWB existiert.
Den Teil mit der Ausgabe der Zeile hast du nicht eingebaut. Aber ich habe eine Vermutung.
Poste bitte mal deine GetPlayerGWB Funktion. Ich nehme an, dass die -1 zurück gibt, daher wird das Array gesprengt, was zu dem Fehler führt.
Wünsche allen in Forum ein Frohes Neus Jahr und Frohes Schafen und Viel Spaß in Silvester
Danke, das wünsche ich dir auch ![]()
Danke geht entlich da war ich wohl nah dran Danke MfG lui
Yup, war die ganze Zeit ziemlich nahe dran. ![]()
Dank An Jeffry das ist der himmel auf sägen ;-):-D
Sägen?
![]()
Ein paar pID und playerid's waren da noch vertauscht.
Versuche es so:
else if(strcmp(option, "hacken", true) == 0)
{
new Float:X, Float:Y, Float:Z;
new pID = HackAntrag[playerid]; //Damit es einfacher ist. pID entspricht HackAntrag[playerid].
if(pID != INVALID_PLAYER_ID)
{
if(HackAntrag[pID] != INVALID_PLAYER_ID)
{
if(IsLoggedIn(pID))
{
GetPlayerPos(pID, X, Y, Z);
if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Nähe vom Spieler.");
new WantedsHack = HackWanteds[playerid];
new Geld = HackBetrag[playerid];
if(GetMoney(pID) < Geld)return SendClientMessage(playerid, COLOR_GREY, "Dein Partner hat nicht genügend Geld.");
if(WantedsHack < 0 || WantedsHack > 5)return SendClientMessage(playerid, COLOR_GREY, "Du kannst nur zwischen 1 und 5 Wanteds löschen.");
if(Spieler[playerid][pWanteds] == 0)return SendClientMessage(playerid, COLOR_GREY, "Du hast keine Wanteds.");
OnWantedChange(playerid, Spieler[playerid][pWanteds], (Spieler[playerid][pWanteds]-WantedsHack));
Spieler[playerid][pWanteds] -= WantedsHack;
if(Spieler[playerid][pWanteds] <= 0)Spieler[playerid][pWanteds] = 0;
new string[145];
GetPlayerName(pID, string, MAX_PLAYER_NAME);
format(string, sizeof(string), "Du hast %s den Hackbetrag gesendet (+$%d).", string, Geld);
SendClientMessage(playerid, COLOR_GREEN, string);
GiveMoney(playerid, -Geld);
GiveMoney(pID, Geld);
HackBetrag[playerid] = 0;
HackBetrag[pID] = 0;
HackWanteds[playerid] = 0;
HackWanteds[pID] = 0;
HackAntrag[pID] = INVALID_PLAYER_ID;
}
}
}
return 1;
}
Lade dir das Crashdetect Plugin herunter und gehe nach Punkt 1.5 vor: Tipps: Scripting-Probleme richtig erklären
Gehe auch durch den Schritt mit der Zeilenausgabe.
So erfährst du, in welcher Zeile der Fehler liegt, wenn du den Befehl nochmal eingibst.
Poste dann die Fehlerzeile nochmal separat, zusammen mit dem Log.
Es wird also doch geprintet. Das hättest du schon vor 3 Stunden posten können.
Ändere im 2. Dialog nach dem "Welt ok" Print:
if(!strcmp(Radio[i2][urlname],inputtext,true))
zu:
if(!strcmp(Radio[i2][urlname][8],inputtext,true))
Wie gibst du dem Spieler denn die Wanteds? (Code)
Poste dazu bitte den aktuellen Accept Befehl nochmal.
kannst du mir noch bei was anderem helfen ?
Kommt drauf an was es ist.
Was wird dir so im Server Log ausgegeben?
case DIALOG_vehMUSIK:
{
printf("DIALOG_vehMUSIK");
new vehicleid = GetPlayerVehicleID(playerid),counter = 0;
new string [900];
printf("response: %d", response);
if(response == 0)return 1;
else
{
printf("else");
if(!IsPlayerInAnyVehicle(playerid))return SCM(playerid,GRAU,"[FEHLER]: Du befindest dich in keinem Fahrzeug!");
for(new i=0;i<sizeof(Radio);i++)
{
if(strfind(string,Radio[i][urlcategory],true) == -1)
{
strcat(string,Radio[i][urlcategory]),strcat(string,"\n");
counter++;
}
}
printf("listitem: %d / counter: %d", listitem, counter);
strdel(string,0,strlen(string));
if(listitem >= counter)
{
ForEachPlayer(i)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
if(GetPVarInt(i,"Eingeloggt") == 1)
{
if(GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid))
{
if(IsPlayerInVehicle(i,vehicleid)) StopAudioStreamForPlayer(i), printf("Stoppe Stream für %d", i);
}
}
}
}
format(vFahrzeug[vehicleid][VehicleRadioStream],128,"NONE");
}
printf("Schleife.");
for(new i=0;i<sizeof(Radio);i++)
{
if(!strcmp(Radio[i][urlcategory],inputtext,true))
{
strcat(string,Radio[i][urlname]),strcat(string,"\n");
}
}
printf("ShowPlayerDialog");
ShowPlayerDialog(playerid,DIALOG_vehMUSIK2,DIALOG_STYLE_LIST,VehicleDefinations[GetVehicleModel(vehicleid)-400],string,"Auswählen","Zurück");
}
return 1;
}
Dann müsste es doch meinem Verständnis nach so sein, oder?
if(Spieler[pID][pWanteds] == 0)return SendClientMessage(playerid, COLOR_GREY, "Der Spieler hat keine Wanteds.");
zu:
if(Spieler[playerid][pWanteds] == 0)return SendClientMessage(playerid, COLOR_GREY, "Du hast keine Wanteds.");
Ändere die Spalte "id" auf AUTO_INCREMENT.
Dazu gibt es in der Struktur ein Feld. Es heißt auch oft "A_I" (Checkbox).
Wie sieht der vorherige Befehl aus, der /hacken?
Mach hier mal das return weg:
return format(vFahrzeug[vehicleid][VehicleRadioStream],128,"NONE");
In dem Befehl oben findet sich diese Nachricht (Du hast keine Wanteds) nicht. Wo kommt die her?
Es soll auch nichts angezeigt werden, es soll dir etwas in den Server Log geschrieben werden.
Steht dort nichts drin? Der wird sicher nicht leer sein.
Dir fehlt ebenfalls das MySQL Plugin.
Normalerweise solltest du vom Ersteller des Codes alle Plugins erhalten haben.
Falls nicht, frage bei ihm bitte nach, welche MySQL Plugin Version benötigt wird.