Wie sieht dein SaveGangAutos jetzt aus, und wie sieht deine Datenbankstruktur jetzt aus? Poste beides bitte nochmal.
Beiträge von Jeffry
-
-
Hast du es mit der zweiten Methode versucht?
-
Ah, ich habe grade in dem Code oben das Einfügen gefunden, das hatte ich übersehen.
Mache die Änderungen, die beiden, wieder rückgängig, und entferne in der Datenbank Struktur beim Slot das AUTO_INCREMENT.
-
Ok, da fehlt die erste Zeile. Da ich nicht weiß wie du die Zeilen einfügst, ändere beim speichern
i);
Zu
i+1);Und beim Laden
format(string, sizeof(string),"SELECT * FROM `gangautos` WHERE `SlotID` = '%d'", i);
Zu
format(string, sizeof(string),"SELECT * FROM `gangautos` WHERE `SlotID` = '%d'", i+1); -
Versuche es mit
if(params[0] != '\0') {
Zu
if(strlen(params)) {
Oder
if(strlen(params) > 1) { -
Wann soll denn die Nachricht kommen?
-
Das sieht auch korrekt aus.
Poste bitte mal einen Screenshot von den Daten in der Datenbank, direkt nach dem ersten speichern nach dem Kaufen.
Und einen Screenshot von der Datenbank Struktur. -
%s%s
Zu
{%06x}%s
-
if(Vehicle[vehicleid][vehFuel]+5 > VehicleData[GetVehicleModel(vehicleid)-400][vehMaxTank]) return SendClientMessage(playerid, 0xFF0000FF, "Error: Tank zu voll.");
-
Poste dann bitte den Code, mit dem du die Fahrzeuge aus der Datenbank lädst.
-
Das sieht soweit korrekt aus.
Wie genau machst du es denn? Du kaufst zum Beispiel zwei Fahrzeuge, dann speicherst du sie. Wird dann das erste schon nicht gespeichert, oder ist das erst nach dem Server Restart so, dass das erste fehlt?
Und fehlt das, oder verschiebt sich nur die ID? -
Dann musst du es anders machen, und zwar so:
new hPickup[MAX_PLAYERS] = {-1,...};forward RespawnPickUp(playerid);
public RespawnPickUp(playerid)
{
if(hPickup[playerid] != -1) DestroyPickup(hPickup[playerid]);
hPickup[playerid] = -1;
return 1;
}public OnPlayerPickUpPickup(playerid, pickupid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(hPickup[i] == pickupid)
{
new Float:health;
GetPlayerHealth(playerid,health);
DestroyPickup(hPickup[i]);
hPickup[i] = -1;
SetPlayerHealth(playerid, health+30);
return 1;
}
}
return 1;
}public OnPlayerDeath(playerid, killerid, reason)
{
//Health System
new Float:hPos[3];
GetPlayerPos(playerid, hPos[0], hPos[1], hPos[2]); //24
if(hPickup[playerid] != -1) DestroyPickup(hPickup[playerid]);
hPickup[playerid] = CreatePickup(1240, 2, hPos[0], hPos[1], hPos[2]);
SetTimerEx("Respawnpickup", 30000, false, "d",playerid); -
Ja, das hilft weiter.
Poste bitte jetzt den Code, mit dem du ein Fahrzeug kaufst/erstellst. -
Kannst du dir das Query (var) mal mit einem print ausgeben lassen und dann posten, was da ausgegeben wird?
print(var); -
Du musst bei SetTimerEx nach false ein "d" oder ein "i" angeben (Integer).
Mache es aber besser so:
forward RespawnPickUp(pickup);
public RespawnPickUp(pickup)
{
DestroyPickup(pickup);
return 1;
}public OnPlayerDeath(playerid, killerid, reason)
{
//Health System
new Float:hPos[3];
GetPlayerPos(playerid, hPos[0], hPos[1], hPos[2]); //24
new pickup = CreatePickup(1240, 2, hPos[0], hPos[1], hPos[2]);
SetTimerEx("RespawnPickup", 30000, false, "d",pickup); -
Hast du
#include <streamer>
im Code stehen?Ich habe es bei mir mal getestet, das geht es ohne Probleme.
-
Je nach dem wie das zu verstehen ist, schätze ich mal so:
if(dialogid == DIALOG_INVITE)
{
if(response) // If they clicked 'Yes' or pressed enter
{
if(InviteOffer[playerid] != -1)
{
if(IsPlayerConnected(InviteOffer[playerid]))
{
new ftext[20];
new Team = InviteTeam[playerid];
if(Team == 1) { ftext = "LV-PD"; }
else if(Team == 2) { ftext = "Drift Access"; }
else if(Team == 3) { ftext = "Feuerwehr"; }
else if(Team == 4) { ftext = "Medic"; }
else if(Team == 5) { ftext = "La Cosa Nostra"; }
else if(Team == 6) { ftext = "Yakuza"; }
else if(Team == 7) { ftext = "FBI"; }
else if(Team == 8) { ftext = "Hitman Agency"; }
else if(Team == 9) { ftext = "News Reporter"; }
else if(Team == 10) { ftext = "Wheelman Agency"; }
else if(Team == 11) { ftext = "Fahrschule"; }
else if(Team == 12) { ftext = "Regierung"; }
else if(Team == 13) { ftext = "Ordnungsamt"; }
else if(Team == 14) { ftext = "LS-PD"; }
else if(Team == 15) { ftext = "Biker Boys"; }
else if(Team == 16) { ftext = "SF-PD"; }
else if(Team == 17) { ftext = "Camorra"; }
else if(Team == 18) { ftext = "V.L.Atztecas"; }
else if(Team == 19) { ftext = "Grove Street"; }
else if(Team == 20) { ftext = "Ballas"; }
else if(Team == 21) { ftext = "West Coast Customs"; }
else if(Team == 22) { ftext = "Triaden"; }
else if(Team == 23) { ftext = "Red Soldiers"; }
else if(Team == 24) { ftext = "L.S.Vagos"; }
else if(Team == 25) { ftext = "Guerilla"; }
else if(Team == 26) { ftext = "Cali Kartell"; }
else { return 1; }
GetPlayerName(InviteOffer[playerid], giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[playerid][pMember] = Team;
PlayerInfo[playerid][pTeam] = Team;
PlayerInfo[playerid][pRank] = 1;
PlayerInfo[playerid][pJob] = 0;
format(string, sizeof(string), "* %s hat deine Einladung angenommen.", sendername);
SendClientMessage(InviteOffer[playerid], COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Du bist nun bei der Fraktion %s Beigetretten, du hast die Einladung von %s angenommen.", ftext, giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "UPDATE `users` SET `InviteDatum`='%d' WHERE `Name`='%s'", Time(), sendername);
self_mysql_query(string);
Kleidungsshop[playerid] = 1;
JoinSkinAuswahl(playerid);
SendClientMessage(playerid, COLOR_LIGHTRED, "* Wähle einen Skin aus mit den Pfeiltasten. Bestätigen mit Umschalt.");
InviteOffer[playerid] = -1;
InviteTeam[playerid] = -1;
new wielange = (InviteSperreTage*24*60*60);
new Zeit = wielange+Time();
PlayerInfo[playerid][pInviteSperre] += Zeit;
SetPVarInt(playerid, "PVTeam", Team);
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_ERRORTEXT, " Niemand hat dir einen Invite Angeboten !");
return 1;
}
}
else // Pressed ESC or clicked cancel
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du hast die Einladung abgelehnt!");
}
return 1; // We handled a dialog, so return 1. Just like OnPlayerCommandText.
}
//Bleibt stehen.
return 0;
} -
Die Include muss in den Ordner pawno/Include. Starte dann die pawno.exe aus dem pawno Ordner und öffne damit deinen Code. Dann kompiliere ihn.
-
-
Lade dir den aktuellen Streamer und die dazugehörige aktuelle Include herunter.