Grapefruit:
Dann fehlt in deinem Code aber komplett das INSERT INTO in die Datenbank. Das solltest du noch einbauen, wenn die Zone komplett erstellt ist.
@Voxa:
gInfo[i][Owner] = cache_get_field_content_int(i, "Owner",MySqlConnection);
Grapefruit:
Dann fehlt in deinem Code aber komplett das INSERT INTO in die Datenbank. Das solltest du noch einbauen, wenn die Zone komplett erstellt ist.
@Voxa:
gInfo[i][Owner] = cache_get_field_content_int(i, "Owner",MySqlConnection);
Wie erstellst du die Zonen denn? In deiner Datenbank stehen ja keine Daten, entsprechend müssen die Daten ja von irgendwo her kommen. Hast du da einen ERSTELLEN Befehl, oder wie willst du die Daten der Zonen in die Datenbank bekommen?
Du solltest wirklich auf die Einrückung und die Verwendung der Klammern achten.
So:
stock GivePlayerWPS(wantedplayer,WPSAnzahl,reason[])
{
Spieler[wantedplayer][pWantedPoints] += WPSAnzahl;
if(Spieler[wantedplayer][pWantedPoints] > 60) Spieler[wantedplayer][pWantedPoints] = 60;
SetPlayerWantedLevel(wantedplayer,Spieler[wantedplayer][pWantedPoints]/10);
SetPlayerColor(playerid,0xE20000FF);
new string[145];
format(string,sizeof(string),"* Wantedlevel: %i | Derzeitiges Fahndungslevel: %i",GetPlayerWantedLevel(wantedplayer),Spieler[wantedplayer][pWantedPoints]);
SendClientMessage(wantedplayer,GELB,string);
if(WPSAnzahl > 0)
{
Spieler[wantedplayer][pSuspectPoints]++;
Spieler[wantedplayer][pLastSuspects]++;
}
format(pWantedReason1[wantedplayer],64,"%s(%i WPS)",reason,WPSAnzahl);
if(Spieler[wantedplayer][pLastSuspects] == 5) Spieler[wantedplayer][pLastSuspects] = 0;
PlayCrimeReportForPlayer(wantedplayer,wantedplayer,3);
return 1;
}
Und dort wo du ihm das Wanted weg nimmst, machst du wieder SetPlayerColor zu der Farbe die er dann haben soll.
Was funktioniert nicht?
Was passiert, wie sehen deine Daten aus? Was sagt der Log? ![]()
Suche eine ObjektID für ein Autoreifen, was man evtl. als Pickup benutzen könnte.
Objekt ID: 1327
Ok, dann so:
forward LoadGZ();
public LoadGZ()
{
new rows, fields, str[64], Counter = 0;
cache_get_data(rows, fields);
for(new i = 0; i < rows; i++)
{
GZ[i][zid] = i;
GZ[i][owner] = cache_get_field_content(i, "owner", GZ[i][owner], handle);
GZ[i][max_x] = cache_get_field_content_float(i, "maxX", handle);
GZ[i][max_y] = cache_get_field_content_float(i, "maxY", handle);
GZ[i][min_x] = cache_get_field_content_float(i, "minX", handle);
GZ[i][min_y] = cache_get_field_content_float(i, "minY", handle);
GZ[i][flagge_x] = cache_get_field_content_float(i, "flaggeX", handle);
GZ[i][flagge_y] = cache_get_field_content_float(i, "flaggeY", handle);
GZ[i][flagge_z] = cache_get_field_content_float(i, "flaggeZ", handle);
GZ[i][erstellt] = true;
M_CreateZone(GZ[i][min_x],GZ[i][min_y],GZ[i][max_x],GZ[i][max_y],FrakColor(GZ[i][owner]),str,FrakColor(GZ[i][owner]));
GZ[i][pickup] = CreatePickup(1314,1,GZ[i][flagge_x],GZ[i][flagge_y],GZ[i][flagge_z],0);
GZ[i][label] = Create3DTextLabel("Tippe '/angriff', um das Gebiet anzugreifen.\nTippe '/flagge' | Y/Z, um die Flagge zu erobern.",Rot,GZ[i][flagge_x],GZ[i][flagge_y],GZ[i][flagge_z],20,0);
Counter++;
}
return printf(" '%d' Gangzone(n) wurde(n) erfolgreich erstellt und geladen.",Counter);
}
Und in deiner Tabelle befinden sich keine Daten, sprich es kann nichts geladen werden.
Er lädt dir nur Nullen aus der Datenbank.
Poste mal einen Screenshot deiner Datenbank (Struktur & Datensätze).
Und zwecks dem Speichern: Wo rufst du die beiden stocks auf?
Aah, das ist ein stock, da habe ich gar nicht drauf geachtet, mein Fehler. Aber die anderen Änderungen passen trotzdem.
Schreibe es so:
forward LoadGZ();
public LoadGZ()
{
new rows, fields, str[64], Counter = 0;
cache_get_data(rows, fields);
for(new i = 0; i < rows; i++)
{
GZ[i][zid] = i;
GZ[i][owner] = cache_get_field_content(i, "owner", GZ[i][owner], handle);
GZ[i][max_x] = cache_get_field_content_float(i, "maxX", handle);
GZ[i][max_y] = cache_get_field_content_float(i, "maxY", handle);
GZ[i][min_x] = cache_get_field_content_float(i, "minX", handle);
GZ[i][min_y] = cache_get_field_content_float(i, "minY", handle);
GZ[i][flagge_x] = cache_get_field_content_float(i, "flaggeX", handle);
GZ[i][flagge_y] = cache_get_field_content_float(i, "flaggeY", handle);
GZ[i][flagge_z] = cache_get_field_content_float(i, "flaggeZ", handle);
GZ[i][erstellt] = true;
M_CreateZone(GZ[i][min_x],GZ[i][min_y],GZ[i][max_x],GZ[i][max_y],FrakColor(GZ[i][owner]),str,FrakColor(GZ[i][owner]));
GZ[i][pickup] = CreatePickup(1314,1,GZ[i][flagge_x],GZ[i][flagge_y],GZ[i][flagge_z],0);
GZ[i][label] = Create3DTextLabel("Tippe '/angriff', um das Gebiet anzugreifen.\nTippe '/flagge' | Y/Z, um die Flagge zu erobern.",Rot,GZ[i][flagge_x],GZ[i][flagge_y],GZ[i][flagge_z],20,0);
Counter++;
}
return printf(" '%d' Gangzone(n) wurde(n) erfolgreich erstellt und geladen.",Counter);
}
Das erstellt ist mir abhanden gekommen, ist wieder drin. ![]()
Hast du das mysql_function_query selbst umdefiniert? Wenn nicht, dann ändere die Zeile zu
mysql_tquery(handle, "SELECT * FROM `gangfight` ORDER BY id ASC", "LoadGZ");
Oh ja, hab den Fehler grade entdeckt als ich es debuggen wollte, dann müsste es klappen:
format(string, sizeof(string), ""cBlue"[SAPD]"cWhite" Durchsuchung: %s", GetName(uID));
zu:
format(string2, sizeof(string2), ""cBlue"[SAPD]"cWhite" Durchsuchung: %s", GetName(uID));
Ok, dann mach mal:
format(string, sizeof(string), "%s%s || %i Schuss",string,GetWeaponNameEx(sInfo[playerid][weapons][i]), sInfo[playerid][ammo][i]);
zu:
format(string, sizeof(string), "%s%s || %i Schuss",string,"Test", sInfo[playerid][ammo][i]);
Zeigt es dir dann etwas an?
So leerst du es, aber das ist nicht die Zuweisung. Du musst doch irgendwas davor gemacht haben, bevor du /givereport machst. Irgendwo muss der Report doch eingegeben worden sein.
Und verwende bitte den PWN Code für PAWN Codes.
weapons[11]
zu:
weapons[12]
Ebenso bei der Ammo.
Im Filterscript:
stock GetPlayerFaction(playerid)
{
return CallRemoteFunction("GetPlayerFactionID","i",playerid);
}
Im Gamemode:
forward GetPlayerFactionID(playerid);
public GetPlayerFactionID(playerid)
{
return Spieler[playerid][pFraktion];
}
Versuche es mal so:
for(new i = 0; i<MAX_FRAKTIONEN; i++)ImGF[i] = 0;
mysql_function_query(handle, "SELECT * FROM `gangfight` ORDER BY id ASC", true, "LoadGZ", "", ""); //Was soll das ASC bedeuten?
//-> Das ASC steht für ASCENDING, und das heißt aufsteigend, also 1,2,3,4,...
return 1;
stock LoadGZ()
{
new rows, fields, str[64], Counter = 0;
cache_get_data(rows, fields);
for(new i = 0; i <= rows; i++)
{
GZ[i][zid] = i;
GZ[i][owner] = cache_get_field_content_int(i, "owner", handle);
GZ[i][max_x] = cache_get_field_content_float(i, "maxX", handle);
GZ[i][max_y] = cache_get_field_content_float(i, "maxY", handle);
GZ[i][min_x] = cache_get_field_content_float(i, "minX", handle);
GZ[i][min_y] = cache_get_field_content_float(i, "minY", handle);
GZ[i][flagge_x] = cache_get_field_content_float(i, "flaggeX", handle);
GZ[i][flagge_y] = cache_get_field_content_float(i, "flaggeY", handle);
GZ[i][flagge_z] = cache_get_field_content_float(i, "flaggeZ", handle);
M_CreateZone(GZ[i][min_x],GZ[i][min_y],GZ[i][max_x],GZ[i][max_y],FrakColor(GZ[i][owner]),str,FrakColor(GZ[i][owner]));
GZ[i][pickup] = CreatePickup(1314,1,GZ[i][flagge_x],GZ[i][flagge_y],GZ[i][flagge_z],0);
GZ[i][label] = Create3DTextLabel("Tippe '/angriff', um das Gebiet anzugreifen.\nTippe '/flagge' | Y/Z, um die Flagge zu erobern.",Rot,GZ[i][flagge_x],GZ[i][flagge_y],GZ[i][flagge_z],20,0);
Counter++;
}
return printf(" '%d' Gangzone(n) wurde(n) erfolgreich erstellt und geladen.",Counter);
}
Hier hast du ein Tutorial wie du das machst:
http://forum.sa-mp.com/showthread.php?t=337810
Ganz unten im ersten Post ist die Kategorie "Converting". Das Beispiel ist deinem Code ziemlich ähnlich.
Falls du mit dem konvertieren nicht klar kommst, erstelle bitte einen Thread und poste den Code dann da, da dies dann keine kleine Frage mehr ist.
Wie hast du "weapons" in sInfo deklariert (im enum)?
Hast du eine mehrzeilige Meldung mit vielen Zahlen im Compiler?
In Zeile 1 und 2 fehlt ganz hinten vor dem Semikolon eine Klammer zu. Da ist nur eine, müssen aber zwei sein.
Wie hast du ReportListitem deklariert?
Wie weist du ReportListitem[ i ][rID][selectitem] einen Wert zu? Und wo?
Beim Kauf:
Spieler[playerid][myGRID] = HausBau[hb][HBID];
zu:
Spieler[playerid][myGRID] = hb;