@Fernandez_:
Hast du mal geschaut ob beim Auslesen Fraktion 1 der Name in die Varriable getan wird ?
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Schau mal ob der Name der Fraktion in eine Var geschrieben wird.
und versuchs mal so.
public Fraktions_Save()
{
new query[1024];
for(new i=0; i < MAX_FRAKS; i++){
format(query, sizeof(query), "UPDATE server_fraktions SET \
name = %s,\
spawn_x = %f,\
spawn_y = %f,\
spawn_z = %f,\
spawn_r = %f,\
interior = %d,\
world = %d,\
member = %d,\
memberlimit = %d\
WHERE id = '%d'",
FrakInfo[i][fName],
FrakInfo[i][fSpawn][0],
FrakInfo[i][fSpawn][1],
FrakInfo[i][fSpawn][2],
FrakInfo[i][fSpawn][3],
FrakInfo[i][fInterior],
FrakInfo[i][fWorld],
FrakInfo[i][fMember],
FrakInfo[i][fMemberlimit],
i);
printf("Die Fraktion %s wurde erfolgreich gespeichert!", FrakInfo[i][fName]);
}
return 1;
} -
Bewirkt leider auch nichts, wüsste auch nicht, was.
Beim Laden als Beispiel, wird alles richtig ausgegeben.Code
Alles anzeigenpublic Fraktions_Load() { new rows; cache_get_row_count(rows); if(rows == 0)return print("[Fraktionen] Es konnten keine Fraktionen geladen werden!"); for(new i = 0; i < rows;i ++) { new fraktion = cache_get_value_name_int(i, "id", fraktion); if (fraktion < MAX_FRAKS) { cache_get_value_name(i, "name", FrakInfo[fraktion][fName], 128); cache_get_value_name_float(i, "spawn_x", FrakInfo[fraktion][fSpawn][0]); cache_get_value_name_float(i, "spawn_y", FrakInfo[fraktion][fSpawn][1]); cache_get_value_name_float(i, "spawn_z", FrakInfo[fraktion][fSpawn][2]); cache_get_value_name_float(i, "spawn_r", FrakInfo[fraktion][fSpawn][3]); cache_get_value_name_int(i, "interior", FrakInfo[fraktion][fInterior]); cache_get_value_name_int(i, "world", FrakInfo[fraktion][fWorld]); cache_get_value_name_int(i, "member", FrakInfo[fraktion][fMember]); cache_get_value_name_int(i, "memberlimit", FrakInfo[fraktion][fMemberlimit]); printf("Die Fraktion %s wurde erfolgreich geladen. (%d/%d Member)", FrakInfo[fraktion][fName], FrakInfo[fraktion][fMember], FrakInfo[fraktion][fMemberlimit]); } } return 1; }
Code[15:57:39] Die Ränge der Fraktion San Andreas Police Department wurden erfolgreich geladen. [15:57:39] ==> Aktivierte Ränge: 16 [15:57:39] Die Ränge der Fraktion Federal Bureau of Investigation wurden erfolgreich geladen. [15:57:39] ==> Aktivierte Ränge: 25 [15:57:39] Die Fraktion San Andreas Police Department wurde erfolgreich geladen. (0/15 Member) [15:57:39] Die Fraktion Federal Bureau of Investigation wurde erfolgreich geladen. (2/10 Member)
-
Wenn man ein Gutschein erstellt kommt zwar du hast einen Gutschein erstellt aber es kommt kein Code
if (response)
{
if (strlen(inputtext) && IsNumeric(inputtext))
{
for(new i = 1; i < MAX_GUTSCHEINE; i++)
{
Gutschein[pCreateGutschein[playerid]][gWert] = strval(inputtext);
SaveGutschein(pCreateGutschein[playerid]);
pCreateGutschein[playerid] = INVALID_GUTSCHEIN_KEY;
SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Du hast erfolgreich einen Gutschein erstellt!");
format(Gutschein[pCreateGutschein[playerid]][gCode], 64, "Code: %c%d%c%d-%c%d%c%d-%c%d%c%d",getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10),getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10),getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10));
SendClientMessageEx(playerid, COLOR_LIGHTBLUE, Gutschein[pCreateGutschein[playerid]][gCode]);
}
} -
Wenn man ein Gutschein erstellt kommt zwar du hast einen Gutschein erstellt aber es kommt kein Code
if (response) { if (strlen(inputtext) && IsNumeric(inputtext)) { for(new i = 1; i < MAX_GUTSCHEINE; i++) { Gutschein[pCreateGutschein[playerid]][gWert] = strval(inputtext); SaveGutschein(pCreateGutschein[playerid]); pCreateGutschein[playerid] = INVALID_GUTSCHEIN_KEY; SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Du hast erfolgreich einen Gutschein erstellt!"); format(Gutschein[pCreateGutschein[playerid]][gCode], 64, "Code: %c%d%c%d-%c%d%c%d-%c%d%c%d",getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10),getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10),getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10)); SendClientMessageEx(playerid, COLOR_LIGHTBLUE, Gutschein[pCreateGutschein[playerid]][gCode]); } }
Was ich auf die schnelle gesehen hab ist das du die Variable pCreateGutschein zu früh auf INVALID_GUTSCHEIN_KEY setzt.Versuch es mal so:
Code
Alles anzeigenif (response) { if (strlen(inputtext) && IsNumeric(inputtext)) { for(new i = 1; i < MAX_GUTSCHEINE; i++) { Gutschein[pCreateGutschein[playerid]][gWert] = strval(inputtext); SaveGutschein(pCreateGutschein[playerid]); SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Du hast erfolgreich einen Gutschein erstellt!"); format(Gutschein[pCreateGutschein[playerid]][gCode], 64, "Code: %c%d%c%d-%c%d%c%d-%c%d%c%d",getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10),getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10),getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10)); SendClientMessageEx(playerid, COLOR_LIGHTBLUE, Gutschein[pCreateGutschein[playerid]][gCode]); pCreateGutschein[playerid] = INVALID_GUTSCHEIN_KEY; } }
-
Was ich auf die schnelle gesehen hab ist das du die Variable pCreateGutschein zu früh auf INVALID_GUTSCHEIN_KEY setzt.
Versuch es mal so:
Code
Alles anzeigenif (response) { if (strlen(inputtext) && IsNumeric(inputtext)) { for(new i = 1; i < MAX_GUTSCHEINE; i++) { Gutschein[pCreateGutschein[playerid]][gWert] = strval(inputtext); SaveGutschein(pCreateGutschein[playerid]); SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Du hast erfolgreich einen Gutschein erstellt!"); format(Gutschein[pCreateGutschein[playerid]][gCode], 64, "Code: %c%d%c%d-%c%d%c%d-%c%d%c%d",getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10),getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10),getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10)); SendClientMessageEx(playerid, COLOR_LIGHTBLUE, Gutschein[pCreateGutschein[playerid]][gCode]); pCreateGutschein[playerid] = INVALID_GUTSCHEIN_KEY; } }
Hat geklappt aber jetzt neues Problem, wenn ich den Gutschein einlösen will kommt keine Meldung das er eingelöst wurde und man bekommt auch nix gesettet oder so
case DIALOG_GUTSCHEIN:
{
if (response)
{
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_GUTSCHEIN, DIALOG_STYLE_INPUT, "Gutschein einlösen", ""COLOR_HEX_WHITE"Bitte gebe deinen Gutschein-Code nun in das untere Feld ein.", "Auswählen", "Abbrechen");for(new i = 1; i < MAX_GUTSCHEINE; i++)
{
if (Gutschein[i][gErstellt] != 0)
{
if (!strcmp(inputtext, Gutschein[i][gCode], false))
{
if (Gutschein[i][gGebunden] == 1) //Gebunden
{
if (!strcmp(GetFullName(playerid), Gutschein[i][gGebundenAn], false))
{
if (Gutschein[i][gEingeloest] == 1) //Eingelöst
{
ShowPlayerDialog(playerid, DIALOG_GUTSCHEIN, DIALOG_STYLE_INPUT, "Gutschein einlösen", ""COLOR_HEX_YELLOW"Der angegebene Gutschein-Code ist bereits eingelöst\n\n"COLOR_HEX_WHITE"Bitte gebe deinen Gutschein-Code nun in das untere Feld ein.", "Auswählen", "Abbrechen");
}
else //Nicht eingelöst
{
switch(Gutschein[i][gTyp])
{
case 1: //24 Stunden Premium
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}if (PlayerInfo[playerid][pPremium] == 2) return SendClientMessageEx(playerid, COLOR_GRAD1, "Diesen Code kannst du nicht einlösen, da du bereits permanentes Premium hast.");
ShowPlayerDialog(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "Gutschein eingelöst", ""COLOR_HEX_WHITE"Du hast deinen Gutschein erfolgreich eingelöst.\nWert: 24 Stunden Premium\n\nDieser Gutschein wurde nun unbrauchbar gemacht, du kannst ihn nicht erneut einlösen.","Schließen", "");
new premTime;
premTime = gettime()+(60*60*24);
PlayerInfo[playerid][pPremiumZeit] = premTime;
PlayerInfo[playerid][pPremium] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
Gutschein[i][gEingeloest] = 1;
}case 2: //7 Tage Premium
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}if (PlayerInfo[playerid][pPremium] == 2) return SendClientMessageEx(playerid, COLOR_GRAD1, "Diesen Code kannst du nicht einlösen, da du bereits permanentes Premium hast.");
ShowPlayerDialog(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "Gutschein eingelöst", ""COLOR_HEX_WHITE"Du hast deinen Gutschein erfolgreich eingelöst.\nWert: 7 Tage Premium\n\nDieser Gutschein wurde nun unbrauchbar gemacht, du kannst ihn nicht erneut einlösen.","Schließen", "");
new premTime;
premTime = gettime()+(60*60*24*7);
PlayerInfo[playerid][pPremiumZeit] = premTime;
PlayerInfo[playerid][pPremium] = 1;
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
}case 3: //30 Tage Premium
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}if (PlayerInfo[playerid][pPremium] == 2) return SendClientMessageEx(playerid, COLOR_GRAD1, "Diesen Code kannst du nicht einlösen, da du bereits permanentes Premium hast.");
ShowPlayerDialog(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "Gutschein eingelöst", ""COLOR_HEX_WHITE"Du hast deinen Gutschein erfolgreich eingelöst.\nWert: 30 Tage Premium\n\nDieser Gutschein wurde nun unbrauchbar gemacht, du kannst ihn nicht erneut einlösen.","Schließen", "");
new premTime;
premTime = gettime()+(60*60*24*30);
PlayerInfo[playerid][pPremiumZeit] = premTime;
PlayerInfo[playerid][pPremium] = 1;
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
}case 4: //Permanentes Premium
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}if (PlayerInfo[playerid][pPremium] == 2) return SendClientMessageEx(playerid, COLOR_GRAD1, "Diesen Code kannst du nicht einlösen, da du bereits permanentes Premium hast.");
ShowPlayerDialog(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "Gutschein eingelöst", ""COLOR_HEX_WHITE"Du hast deinen Gutschein erfolgreich eingelöst.\nWert: Permanentes Premium\n\nDieser Gutschein wurde nun unbrauchbar gemacht, du kannst ihn nicht erneut einlösen.","Schließen", "");
PlayerInfo[playerid][pPremium] = 2;
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
}case 5: //Respektpunkte
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}new Wert = Gutschein[i][gWert];
format(DialogString, sizeof(DialogString), ""COLOR_HEX_WHITE"Du hast deinen Gutschein erfolgreich eingelöst.\nWert: %d Respektpunkte\n\nDieser Gutschein wurde nun unbrauchbar gemacht, du kannst ihn nicht erneut einlösen.",Wert);
ShowPlayerDialog(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "Gutschein eingelöst", DialogString,"Schließen", "");
PlayerInfo[playerid][pExp] += Wert;
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
}case 6: //Bargeld
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}new Wert = Gutschein[i][gWert];
format(DialogString, sizeof(DialogString), ""COLOR_HEX_WHITE"Du hast deinen Gutschein erfolgreich eingelöst.\nWert: %d$ Bargeld\n\nDieser Gutschein wurde nun unbrauchbar gemacht, du kannst ihn nicht erneut einlösen.",Wert);
ShowPlayerDialog(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "Gutschein eingelöst", DialogString,"Schließen", "");
GiveMoney(playerid, Wert);
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
}case 7: //KM-Resetter
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}new vehicleid = GetPlayerVehicleID(playerid);
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessageEx(playerid, COLOR_GRAD1, "Du befindest dich in keinem Fahrzeug.");
if (!(IsAFactionVeh(vehicleid) == INVALID_VEHICLE_ID))
{
if (IsValidVehicle(vehicleid))
{
new fV = IsAFactionVeh(vehicleid);
if (PlayerInfo[playerid][pFraktion] == fVehicle[fV][vehFraktion] && PlayerInfo[playerid][pRank] == RANG_LEADER)
{
Vehicle[fVehicle[fV][vehID]][vehKMStand] = 0;
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
printf("%d", vehicleid);
printf("fVehicle: %d",fVehicle[fV][vehID]);
printf("Kilometer: %d",fVehicle[fV][vehKMStand]);
SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Du hast den Kilometer-Stand des Fahrzeuges zurückgesetzt.");
return 1;
}
}
}for(new slot = 0; slot < MAX_PLAYER_VEHICLES; slot ++)
{
if (IsValidVehicle(PrivateVehicle[playerid][slot][vehID]))
{
if (vehicleid == PrivateVehicle[playerid][slot][vehID])
{
Vehicle[PrivateVehicle[playerid][slot][vehID]][vehKMStand] = 0;
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Du hast den Kilometer-Stand des Fahrzeuges zurückgesetzt.");
return 1;
}
}
}
}case 8: //Tuning-Resetter
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessageEx(playerid, COLOR_GRAD1, "Du befindest dich in keinem Fahrzeug.");
new vehicleid = GetPlayerVehicleID(playerid);
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessageEx(playerid, COLOR_GRAD1, "Du befindest dich in keinem Fahrzeug.");
if (!(IsAFactionVeh(vehicleid) == INVALID_VEHICLE_ID))
{
if (IsValidVehicle(vehicleid))
{
new fV = IsAFactionVeh(vehicleid);
if (PlayerInfo[playerid][pFraktion] == fVehicle[fV][vehFraktion] && PlayerInfo[playerid][pRank] == RANG_LEADER)
{
fVehicle[fV][vehPaintjob] = -1;
fVehicle[fV][vehSpoiler] = 0;
fVehicle[fV][vehHood] = 0;
fVehicle[fV][vehRoof] = 0;
fVehicle[fV][vehSideskirt] = 0;
fVehicle[fV][vehLamps] = 0;
fVehicle[fV][vehNitro] = 0;
fVehicle[fV][vehExhaust] = 0;
fVehicle[fV][vehWheels] = 0;
fVehicle[fV][vehStereo] = 0;
fVehicle[fV][vehHydraulics] = 0;
fVehicle[fV][vehFrontBumper] = 0;
fVehicle[fV][vehRearBumper] = 0;
fVehicle[fV][vehVentRight] = 0;
fVehicle[fV][vehVentLeft] = 0;
SetVehicleToRespawn(vehicleid);
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Du hast das Tuning des Fahrzeuges entfernt, es wurde vom Server neu gespawnt.");
return 1;
}
}
}for(new slot = 0; slot < MAX_PLAYER_VEHICLES; slot ++)
{
if (IsValidVehicle(PrivateVehicle[playerid][slot][vehID]))
{
if (vehicleid == PrivateVehicle[playerid][slot][vehID])
{
PrivateVehicle[playerid][slot][vehPaintjob] = -1;
PrivateVehicle[playerid][slot][vehSpoiler] = 0;
PrivateVehicle[playerid][slot][vehHood] = 0;
PrivateVehicle[playerid][slot][vehRoof] = 0;
PrivateVehicle[playerid][slot][vehSideskirt] = 0;
PrivateVehicle[playerid][slot][vehLamps] = 0;
PrivateVehicle[playerid][slot][vehNitro] = 0;
PrivateVehicle[playerid][slot][vehExhaust] = 0;
PrivateVehicle[playerid][slot][vehWheels] = 0;
PrivateVehicle[playerid][slot][vehStereo] = 0;
PrivateVehicle[playerid][slot][vehHydraulics] = 0;
PrivateVehicle[playerid][slot][vehFrontBumper] = 0;
PrivateVehicle[playerid][slot][vehRearBumper] = 0;
PrivateVehicle[playerid][slot][vehVentRight] = 0;
PrivateVehicle[playerid][slot][vehVentLeft] = 0;
SetVehicleToRespawn(vehicleid);
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Du hast das Tuning des Fahrzeuges entfernt, es wurde vom Server neu gespawnt.");
return 1;
}
}
}
}
}
}
}
else
{
ShowPlayerDialog(playerid, DIALOG_GUTSCHEIN, DIALOG_STYLE_INPUT, "Gutschein einlösen", ""COLOR_HEX_YELLOW"Der Gutschein-Code ist an einen anderen Spieler gebunden\n\n"COLOR_HEX_WHITE"Bitte gebe deinen Gutschein-Code nun in das untere Feld ein.", "Auswählen", "Abbrechen");
}
} -
else //Nicht gebunden
{
if (Gutschein[i][gEingeloest] == 1) //Eingelöst
{ShowPlayerDialog(playerid,
DIALOG_GUTSCHEIN, DIALOG_STYLE_INPUT, "Gutschein einlösen",
""COLOR_HEX_YELLOW"Der angegebene Gutschein-Code ist bereits
eingelöst\n\n"COLOR_HEX_WHITE"Bitte gebe deinen Gutschein-Code nun in
das untere Feld ein.", "Auswählen", "Abbrechen");
}
else //Nicht eingelöst
{
switch(Gutschein[i][gTyp])
{
case 0:
{}
case 1: //24 Stunden Premium
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}if (PlayerInfo[playerid][pPremium] == 2) return SendClientMessageEx(playerid, COLOR_GRAD1, "Diesen Code kannst du nicht einlösen, da du bereits permanentes Premium hast.");
ShowPlayerDialog(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "Gutschein eingelöst", ""COLOR_HEX_WHITE"Du hast deinen Gutschein erfolgreich eingelöst.\nWert: 24 Stunden Premium\n\nDieser Gutschein wurde nun unbrauchbar gemacht, du kannst ihn nicht erneut einlösen.","Schließen", "");
new premTime;
premTime = gettime()+(60*60*24);
PlayerInfo[playerid][pPremiumZeit] = premTime;
PlayerInfo[playerid][pPremium] = 1;Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
}case 2: //7 Tage Premium
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}if (PlayerInfo[playerid][pPremium] == 2) return SendClientMessageEx(playerid, COLOR_GRAD1, "Diesen Code kannst du nicht einlösen, da du bereits permanentes Premium hast.");
ShowPlayerDialog(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "Gutschein eingelöst", ""COLOR_HEX_WHITE"Du hast deinen Gutschein erfolgreich eingelöst.\nWert: 7 Tage Premium\n\nDieser Gutschein wurde nun unbrauchbar gemacht, du kannst ihn nicht erneut einlösen.","Schließen", "");
new premTime;
premTime = gettime()+(60*60*24*7);
PlayerInfo[playerid][pPremiumZeit] = premTime;
PlayerInfo[playerid][pPremium] = 1;Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
}case 3: //30 Tage Premium
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}if (PlayerInfo[playerid][pPremium] == 2) return SendClientMessageEx(playerid, COLOR_GRAD1, "Diesen Code kannst du nicht einlösen, da du bereits permanentes Premium hast.");
ShowPlayerDialog(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "Gutschein eingelöst", ""COLOR_HEX_WHITE"Du hast deinen Gutschein erfolgreich eingelöst.\nWert: 30 Tage Premium\n\nDieser Gutschein wurde nun unbrauchbar gemacht, du kannst ihn nicht erneut einlösen.","Schließen", "");
new premTime;
premTime = gettime()+(60*60*24*30);
PlayerInfo[playerid][pPremiumZeit] = premTime;
PlayerInfo[playerid][pPremium] = 1;
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
}case 4: //Permanentes Premium
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}if (PlayerInfo[playerid][pPremium] == 2) return SendClientMessageEx(playerid, COLOR_GRAD1, "Diesen Code kannst du nicht einlösen, da du bereits permanentes Premium hast.");
ShowPlayerDialog(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "Gutschein eingelöst", ""COLOR_HEX_WHITE"Du hast deinen Gutschein erfolgreich eingelöst.\nWert: Permanentes Premium\n\nDieser Gutschein wurde nun unbrauchbar gemacht, du kannst ihn nicht erneut einlösen.","Schließen", "");PlayerInfo[playerid][pPremium] = 2;
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
}case 5: //Respektpunkte
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}new Wert = Gutschein[i][gWert];
format(DialogString, sizeof(DialogString), ""COLOR_HEX_WHITE"Du hast deinen Gutschein erfolgreich eingelöst.\nWert: %d Respektpunkte\n\nDieser Gutschein wurde nun unbrauchbar gemacht, du kannst ihn nicht erneut einlösen.",Wert);
ShowPlayerDialog(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "Gutschein eingelöst", DialogString,"Schließen", "");PlayerInfo[playerid][pExp] += Wert;
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
}case 6: //Bargeld
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}new Wert = Gutschein[i][gWert];
format(DialogString, sizeof(DialogString), ""COLOR_HEX_WHITE"Du hast deinen Gutschein erfolgreich eingelöst.\nWert: %d$ Bargeld\n\nDieser Gutschein wurde nun unbrauchbar gemacht, du kannst ihn nicht erneut einlösen.",Wert);
ShowPlayerDialog(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "Gutschein eingelöst", DialogString,"Schließen", "");GiveMoney(playerid, Wert);
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
}case 7: //KM-Resetter
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}new vehicleid = GetPlayerVehicleID(playerid);
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessageEx(playerid, COLOR_GRAD1, "Du befindest dich in keinem Fahrzeug.");
if (!(IsAFactionVeh(vehicleid) == INVALID_VEHICLE_ID))
{
if (IsValidVehicle(vehicleid))
{
new fV = IsAFactionVeh(vehicleid);
if (PlayerInfo[playerid][pFraktion] == fVehicle[fV][vehFraktion] && PlayerInfo[playerid][pRank] == RANG_LEADER)
{
Vehicle[fVehicle[fV][vehID]][vehKMStand] = 0;
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Du hast den Kilometer-Stand des Fahrzeuges zurückgesetzt.");
return 1;
}
}
}for(new slot = 0; slot < MAX_PLAYER_VEHICLES; slot ++)
{
if (IsValidVehicle(PrivateVehicle[playerid][slot][vehID]))
{
if (vehicleid == PrivateVehicle[playerid][slot][vehID])
{
Vehicle[PrivateVehicle[playerid][slot][vehID]][vehKMStand] = 0;
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Du hast den Kilometer-Stand des Fahrzeuges zurückgesetzt.");
return 1;
}
}
}
}case 8: //Tuning-Resetter
{
if (gettime() > Gutschein[i][gAblauf])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "Dieser Gutschein ist bereits abgelaufen.");
Gutschein[i][gAbgelaufen] = 1;
return 1;
}
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessageEx(playerid, COLOR_GRAD1, "Du befindest dich in keinem Fahrzeug.");
new vehicleid = GetPlayerVehicleID(playerid);
if (!(IsAFactionVeh(vehicleid) == INVALID_VEHICLE_ID))
{
if (IsValidVehicle(vehicleid))
{
new fV = IsAFactionVeh(vehicleid);
if (PlayerInfo[playerid][pFraktion] == fVehicle[fV][vehFraktion] && PlayerInfo[playerid][pRank] == RANG_LEADER)
{
fVehicle[fV][vehPaintjob] = -1;
fVehicle[fV][vehSpoiler] = 0;
fVehicle[fV][vehHood] = 0;
fVehicle[fV][vehRoof] = 0;
fVehicle[fV][vehSideskirt] = 0;
fVehicle[fV][vehLamps] = 0;
fVehicle[fV][vehNitro] = 0;
fVehicle[fV][vehExhaust] = 0;
fVehicle[fV][vehWheels] = 0;
fVehicle[fV][vehStereo] = 0;
fVehicle[fV][vehHydraulics] = 0;
fVehicle[fV][vehFrontBumper] = 0;
fVehicle[fV][vehRearBumper] = 0;
fVehicle[fV][vehVentRight] = 0;
fVehicle[fV][vehVentLeft] = 0;
SetVehicleToRespawn(vehicleid);
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Du hast das Tuning des Fahrzeuges entfernt, es wurde vom Server neu gespawnt.");
return 1;
}
}
}for(new slot = 0; slot < MAX_PLAYER_VEHICLES; slot ++)
{
if (IsValidVehicle(PrivateVehicle[playerid][slot][vehID]))
{
if (vehicleid == PrivateVehicle[playerid][slot][vehID])
{
PrivateVehicle[playerid][slot][vehPaintjob] = -1;
PrivateVehicle[playerid][slot][vehSpoiler] = 0;
PrivateVehicle[playerid][slot][vehHood] = 0;
PrivateVehicle[playerid][slot][vehRoof] = 0;
PrivateVehicle[playerid][slot][vehSideskirt] = 0;
PrivateVehicle[playerid][slot][vehLamps] = 0;
PrivateVehicle[playerid][slot][vehNitro] = 0;
PrivateVehicle[playerid][slot][vehExhaust] = 0;
PrivateVehicle[playerid][slot][vehWheels] = 0;
PrivateVehicle[playerid][slot][vehStereo] = 0;
PrivateVehicle[playerid][slot][vehHydraulics] = 0;
PrivateVehicle[playerid][slot][vehFrontBumper] = 0;
PrivateVehicle[playerid][slot][vehRearBumper] = 0;
PrivateVehicle[playerid][slot][vehVentRight] = 0;
PrivateVehicle[playerid][slot][vehVentLeft] = 0;
SetVehicleToRespawn(vehicleid);
Gutschein[i][gEingeloest] = 1;
format(Gutschein[i][gEingeloestVon], 16, "%s", GetFullName(playerid));
SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Du hast das Tuning des Fahrzeuges entfernt, es wurde vom Server neu gespawnt.");
return 1;
}
}
}
}
}
}
}return 1;
}
}
}ShowPlayerDialog(playerid, DIALOG_GUTSCHEIN, DIALOG_STYLE_INPUT, "Gutschein einlösen", ""COLOR_HEX_YELLOW"Du hast einen ungültigen Gutschein-Code eingegeben\n\n"COLOR_HEX_WHITE"Bitte gebe deinen Gutschein-Code nun in das untere Feld ein.", "Auswählen", "Abbrechen");
return 1;
}
}Musste zwei Beiträge hintereinander machen da zwei Funktionen im Gutschein sein gebunden und ungebunden und es war über 40k Zeichen
-
Laden klappt, nur die Speicherung nicht.
CodeDie Ränge der Fraktion UNDEFINED wurden erfolgreich geladen. ==> Aktivierte Ränge: 0 Die Ränge der Fraktion San Andreas Police Department wurden erfolgreich geladen. ==> Aktivierte Ränge: 16 Die Ränge der Fraktion Federal Bureau of Investigation wurden erfolgreich geladen. ==> Aktivierte Ränge: 25 Die Fraktion UNDEFINED wurde erfolgreich geladen. (0/0 Member) Die Fraktion San Andreas Police Department wurde erfolgreich geladen. (0/15 Member) Die Fraktion Federal Bureau of Investigation wurde erfolgreich geladen. (2/10 Member)
SQLUPDATE `server_fraktions` SET `name`='', `spawn_x`='0.000000', `spawn_y`='0.000000', `spawn_z`='0.000000', `spawn_r`='0.000000', `interior`='0', `world`='0', `member`='0', `memberlimit`='0', `type`='0', `message`='' WHERE `id`='0' Die Fraktion wurde erfolgreich gespeichert! UPDATE `server_fraktions` SET `name`='Federal Bureau of Investigation', `spawn_x`='1.000000', `spawn_y`='2.000000', `spawn_z`='3.000000', `spawn_r`='4.000000', `interior`='5', `world`='6', `member`='2', `memberlimit`='10', `type`='0', `message`='NULL' WHERE `id`='1' Die Fraktion Federal Bureau of Investigation wurde erfolgreich gespeichert! UPDATE `server_fraktions` SET `name`='', `spawn_x`='0.000000', `spawn_y`='0.000000', `spawn_z`='0.000000', `spawn_r`='0.000000', `interior`='0', `world`='0', `member`='0', `memberlimit`='0', `type`='0', `message`='' WHERE `id`='2' Die Fraktion wurde erfolgreich gespeichert! Die Ränge der Fraktion wurden erfolgreich gespeichert! Die Ränge der Fraktion Federal Bureau of Investigation wurden erfolgreich gespeichert! Die Ränge der Fraktion wurden erfolgreich gespeichert!
Code
Alles anzeigenpublic Fraktions_Load() { new rows; cache_get_row_count(rows); if(rows == 0)return print("[Fraktionen] Es konnten keine Fraktionen geladen werden!"); for(new i = 0; i < rows;i ++) { new fraktion = cache_get_value_name_int(i, "id", fraktion); if (fraktion < MAX_FRAKS) { cache_get_value_name(i, "name", FrakInfo[fraktion][fName], 128); cache_get_value_name_float(i, "spawn_x", FrakInfo[fraktion][fSpawn][0]); cache_get_value_name_float(i, "spawn_y", FrakInfo[fraktion][fSpawn][1]); cache_get_value_name_float(i, "spawn_z", FrakInfo[fraktion][fSpawn][2]); cache_get_value_name_float(i, "spawn_r", FrakInfo[fraktion][fSpawn][3]); cache_get_value_name_int(i, "interior", FrakInfo[fraktion][fInterior]); cache_get_value_name_int(i, "world", FrakInfo[fraktion][fWorld]); cache_get_value_name_int(i, "member", FrakInfo[fraktion][fMember]); cache_get_value_name_int(i, "memberlimit", FrakInfo[fraktion][fMemberlimit]); cache_get_value_name_int(i, "type", FrakInfo[fraktion][fType]); cache_get_value_name(i, "message", FrakInfo[fraktion][fMessage], 128); printf("Die Fraktion %s wurde erfolgreich geladen. (%d/%d Member)", FrakInfo[fraktion][fName], FrakInfo[fraktion][fMember], FrakInfo[fraktion][fMemberlimit]); } } return 1; }
Code
Alles anzeigenpublic Fraktions_Save() { new query[1024]; for(new i = 0; i < MAX_FRAKS; i ++) { format(query, sizeof(query), "UPDATE `server_fraktions` SET `name`='%s', `spawn_x`='%f', `spawn_y`='%f', `spawn_z`='%f', `spawn_r`='%f', `interior`='%d', `world`='%d', `member`='%d', `memberlimit`='%d', `type`='%d', `message`='%s' WHERE `id`='%d'", FrakInfo[i][fName], FrakInfo[i][fSpawn][0], FrakInfo[i][fSpawn][1], FrakInfo[i][fSpawn][2], FrakInfo[i][fSpawn][3], FrakInfo[i][fInterior], FrakInfo[i][fWorld], FrakInfo[i][fMember], FrakInfo[i][fMemberlimit], FrakInfo[i][fType], FrakInfo[i][fMessage], i); printf("%s", query); printf("Die Fraktion %s wurde erfolgreich gespeichert!", FrakInfo[i][fName]); } return 1; }
-
Das liegt daran, dass du hier: new fraktion = cache_get_value_name_int(i, "id", fraktion); beim Laden als Index die ID setzt und die ID beginnt bei 1, also musst du bei dem Fraktions_Save() Loop auch wieder bei 1 anfangen.
-
ID beginnt jetzt bei null. Daran liegt es nicht.
-
Du führst den Query doch garnicht aus?!?
-
Beitrag von Fernandez_ ()
Dieser Beitrag wurde von Eddy aus folgendem Grund gelöscht: keine Doppelposts (). -
Laden klappt, nur die Speicherung nicht.
CodeDie Ränge der Fraktion UNDEFINED wurden erfolgreich geladen. ==> Aktivierte Ränge: 0 Die Ränge der Fraktion San Andreas Police Department wurden erfolgreich geladen. ==> Aktivierte Ränge: 16 Die Ränge der Fraktion Federal Bureau of Investigation wurden erfolgreich geladen. ==> Aktivierte Ränge: 25 Die Fraktion UNDEFINED wurde erfolgreich geladen. (0/0 Member) Die Fraktion San Andreas Police Department wurde erfolgreich geladen. (0/15 Member) Die Fraktion Federal Bureau of Investigation wurde erfolgreich geladen. (2/10 Member)
SQLUPDATE `server_fraktions` SET `name`='', `spawn_x`='0.000000', `spawn_y`='0.000000', `spawn_z`='0.000000', `spawn_r`='0.000000', `interior`='0', `world`='0', `member`='0', `memberlimit`='0', `type`='0', `message`='' WHERE `id`='0' Die Fraktion wurde erfolgreich gespeichert! UPDATE `server_fraktions` SET `name`='Federal Bureau of Investigation', `spawn_x`='1.000000', `spawn_y`='2.000000', `spawn_z`='3.000000', `spawn_r`='4.000000', `interior`='5', `world`='6', `member`='2', `memberlimit`='10', `type`='0', `message`='NULL' WHERE `id`='1' Die Fraktion Federal Bureau of Investigation wurde erfolgreich gespeichert! UPDATE `server_fraktions` SET `name`='', `spawn_x`='0.000000', `spawn_y`='0.000000', `spawn_z`='0.000000', `spawn_r`='0.000000', `interior`='0', `world`='0', `member`='0', `memberlimit`='0', `type`='0', `message`='' WHERE `id`='2' Die Fraktion wurde erfolgreich gespeichert! Die Ränge der Fraktion wurden erfolgreich gespeichert! Die Ränge der Fraktion Federal Bureau of Investigation wurden erfolgreich gespeichert! Die Ränge der Fraktion wurden erfolgreich gespeichert!
Code
Alles anzeigenpublic Fraktions_Load() { new rows; cache_get_row_count(rows); if(rows == 0)return print("[Fraktionen] Es konnten keine Fraktionen geladen werden!"); for(new i = 0; i < rows;i ++) { new fraktion = cache_get_value_name_int(i, "id", fraktion); if (fraktion < MAX_FRAKS) { cache_get_value_name(i, "name", FrakInfo[fraktion][fName], 128); cache_get_value_name_float(i, "spawn_x", FrakInfo[fraktion][fSpawn][0]); cache_get_value_name_float(i, "spawn_y", FrakInfo[fraktion][fSpawn][1]); cache_get_value_name_float(i, "spawn_z", FrakInfo[fraktion][fSpawn][2]); cache_get_value_name_float(i, "spawn_r", FrakInfo[fraktion][fSpawn][3]); cache_get_value_name_int(i, "interior", FrakInfo[fraktion][fInterior]); cache_get_value_name_int(i, "world", FrakInfo[fraktion][fWorld]); cache_get_value_name_int(i, "member", FrakInfo[fraktion][fMember]); cache_get_value_name_int(i, "memberlimit", FrakInfo[fraktion][fMemberlimit]); cache_get_value_name_int(i, "type", FrakInfo[fraktion][fType]); cache_get_value_name(i, "message", FrakInfo[fraktion][fMessage], 128); printf("Die Fraktion %s wurde erfolgreich geladen. (%d/%d Member)", FrakInfo[fraktion][fName], FrakInfo[fraktion][fMember], FrakInfo[fraktion][fMemberlimit]); } } return 1; }
Code
Alles anzeigenpublic Fraktions_Save() { new query[1024]; for(new i = 0; i < MAX_FRAKS; i ++) { format(query, sizeof(query), "UPDATE `server_fraktions` SET `name`='%s', `spawn_x`='%f', `spawn_y`='%f', `spawn_z`='%f', `spawn_r`='%f', `interior`='%d', `world`='%d', `member`='%d', `memberlimit`='%d', `type`='%d', `message`='%s' WHERE `id`='%d'", FrakInfo[i][fName], FrakInfo[i][fSpawn][0], FrakInfo[i][fSpawn][1], FrakInfo[i][fSpawn][2], FrakInfo[i][fSpawn][3], FrakInfo[i][fInterior], FrakInfo[i][fWorld], FrakInfo[i][fMember], FrakInfo[i][fMemberlimit], FrakInfo[i][fType], FrakInfo[i][fMessage], i); printf("%s", query); printf("Die Fraktion %s wurde erfolgreich gespeichert!", FrakInfo[i][fName]); } return 1; }
Brauche weiterhin Hilfe!
-
Wie gesagt, du fängst mit der ID 0 an beim Speichern, und im Index 0 ist nichts gespeichert wurden.
-
-
-
C:\Users\User\Desktop\Daten\Script\gamemodes\German.pwn(36973) : warning 208: function with tag result used before definition, forcing reparse
C:\Users\User\Desktop\ Daten\Script\gamemodes\German.pwn(36981) : warning 208: function with tag result used before definition, forcing reparseCstock Float:GetPlayerACHealth(playerid) //36973 { new Float:health; GetPlayerHealth(playerid, health); return health; }
Cstock Float:GetPlayerACArmour(playerid) //36981 { new Float:armour; GetPlayerArmour(playerid, armour); return armour; }
Was spricht den da dagegen :o -
Wenn du einen Tag verwendest musst du es wie einen Public forwarden.
-
Wenn ich meinen Gamemode compiliere.. Blinkt einfach nur ein Strich.. Hab diverse Möglichkeiten getestet um klammerfehler zu finden etc.. nichts geholfen.. in Zeile 1 nen klammerfehler reingemacht, kein Erfolg..
Weiß einer Rat?
-
Schon versucht ein anderes Programm wie Pawnfox zum compilen zu verwenden?
-
Schon versucht ein anderes Programm wie Pawnfox zum compilen zu verwenden?
noch nicht.. nein..Schon versucht ein anderes Programm wie Pawnfox zum compilen zu verwenden?
-