sscanf(query, "e<p<|>s[30]s[127]dddddddddddddddd>", pInfo[playerid]);
Das müsste helfen denke ich
/edit was übersehen
sscanf(query, "e<p<|>s[30]s[127]dddddddddddddddd>", pInfo[playerid]);
Das müsste helfen denke ich
/edit was übersehen
das komma beim mysql_query fehlt
zeig mal den momentanen code
1. if(fexist(...)) zu dini_Exists("Fkassen.sav")) machen und der format weg
2. dini_IntSet("Fkassen.sav","Grooves",Fkasse[Grooves]);
usw...
das bei ongamemodeinit ist falsch dann is klar das du playerid errors bekommst, mach das dahin wo der parameter 'playerid' gegeben ist z.B. bei Pickups 'OnPlayerPickupPickup'
was muss eintreten damit du eintreten kannst
soll er irgentwo stehen?
ahhh da fehltn return!!!
Ohne das Return führt er die Abfragen weiter und dann fragt er die 2 if abfrage durch und dann geht die maske weg also schön returnen
if(strcmp(cmd, "/maske", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(mask[playerid]==0)
{
if(PlayerInfo[playerid][pMember] == 8||PlayerInfo[playerid][pLeader] == 8)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
ShowPlayerNameTagForPlayer(i, playerid, 0);
}
}
SendClientMessage(playerid, COLOR_WHITE, " Du setzt deine Maske auf!");
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s setzt sich eine Maske auf!", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
mask[playerid] = 1;
return 1;
}
else
{
return SendClientMessage(playerid,COLOR_GRAD2,"Du bist kein Hitman!");
}
}
else if(mask[playerid]==1)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
ShowPlayerNameTagForPlayer(playerid, playerid, 1);
}
}
SendClientMessage(playerid, COLOR_WHITE, "Du hast deine Maske abgesetzt!");
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s nimmt seine Maske ab!", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
mask[playerid] = 0;
return 1;
}
}
return 1;
}
/Edit text oben mehr gemacht
fragst du regelmäßig irgentetwas mit der maske ab?
bei sscanf lädt er alles sofort in einem zuck auf die Variablen.
bei mysql_fetch_float(); musste einzelnt machen...
zur 2. Frage:
da musste denn format machen
new query[150];
format(query,sizeof query,"SELECT PosX,PosY,PosZ FROM `Tabelle` WHERE `Reihe` = %d",variable);
mysql_query(query);
und der rest halt :D
wo haste denn den code drin?
/Edit/
und pls in Pawn-Code machen
@ Jeffro Hernandez
MySQL kannst du dir Vorstellen wie Schubladen, darin sind Akten und darin sind die Dokumente.
Also anders gesagt Mysql Hat eine Datenbank (=Schublade) darin sind verschiedene Tabellen (=Akten) und darin sind die Dateien gespeichert. (= Dokumente).
Mit MySQL kann man finde ich am besten Dynamische Systeme machen (Wenn wir hier von SA:MP reden )
Aber MySQL finde ich auch etwas schwierig (Ich hab ein paar Probs damit :D)
Jedenfalls kannst du viele Sachen in Tabellen abspeichern und wieder abrufen,verändern,löschen usw...
/Zum Thema
Hier eine Hilfe:
new Float:x;
mysql_query("SELECT PosX FROM Tabelle");
mysql_store_result();
x = mysql_fetch_float();
//usw...
//oder die Methode mit sscanf, find ich ya besser ;)
//hab jedoch nie einzelne sachen geladen also könnte der code auch falsch sein ich würde dann doch lieber die mysql_fetch_float(); geschichte nehmen :D
new Float:x,Float:y,Float:z;
mysql_query("SELECT PosX,PosY,PosZ FROM Tabelle");
mysql_store_result();
while(mysql_fetch_row_format(query))
sscanf(query,"p<|>fff",x,y,z);
/Edit
Fehler bei sscanf entdeckt
Hier der richtige code. erkenne den Fehler
public OnGameModeInit()
{
BsnexitTemple=CreatePickup(1559,23,362.8914,-75.1857,1001.5078);
BsnenterTemple=CreatePickup(1559,23,1199.2013,-918.1477,43.1235);
BsnexitMarina=CreatePickup(1559,23,362.8624,-75.1588,1001.5078,1);
BsnenterMarina=CreatePickup(1559,23,810.4876,-1616.2129,13.5469);
Create3DTextLabel("Burger Shot Marina\n Eingang",Blau,810.4876,-1616.2129,13.5469,20,0);
Create3DTextLabel("Burger Shot Marina\n Ausgang",Blau,362.8624,-75.1588,1001.5078,20,1);
Create3DTextLabel("Burger Shot Temple\n Eingang",Blau,1199.2013,-918.1477,43.1235,20,0);
Create3DTextLabel("Burger Shot Temple\n Ausgang",Blau,362.8914,-75.1857,1001.5078,20,0);
DisableInteriorEnterExits();
SetGameModeText("German-Roleplay");
AddPlayerClass(0,817.2872,-1628.4049,13.3828,199.0709,0,0,0,0,0,0);
return 1;
}
wo ist die 1 beim Create pickup in ongamemodeinit?? die hin machen und fertig
alle createpickups auf 23 setzen
BsnenterMarina=CreatePickup(1559,1,810.4876,-1616.2129,13.5469,1);
zu
BsnenterMarina=CreatePickup(1559,23,810.4876,-1616.2129,13.5469,1); //sry net aufgepasst
bei 23 verschwindet es nie!
BsnenterMarina=CreatePickup(1559,1,810.4876,-1616.2129,13.5469);
zu
BsnenterMarina=CreatePickup(1559,1,810.4876,-1616.2129,13.5469,1); //1 = die VirtualWorld
und der 3DText is net im Script drin oO
/Edit
Außerdem ist das die falsche Sektion xD
das muss nach Scripting Base...
Das ist kein Server fehler
beim 1. kannste 0 lassen
beim 2. auf 1 setzen
beim 3. auf 2
usw...
/offtopic
ich bin eig net so gut
/Zum Thema
Ja durch die SetPlayerVirtualWorld(playerid,0); //<- durch die 0 wieder normale welt
du musst nur den ausgangspunkt bei dem bsn marina festlegen wenn du leaven willst
das ist alles
//Offtopic
kennen wir uns? xD
mach bei
if(pickupid==BsnenterMarina)
{
SetPlayerPos(playerid,375.962463,-65.816848,1001.507812);
SetPlayerInterior(playerid,10);
SetPlayerVirtualWorld(playerid,1); //Das hier einfügen
GameTextForPlayer(playerid,"~y~Herzlich Willkommen ~n~~y~im Burger Shot Marina.",4500,4);
}
if(exit) //einfügen
{
...
...
SetPlayerVirtualWorld(playerid,0);
}
MfG
Hallo,
ich habe ein Problem mit der Löschfunktion, genauer damit, dass die Fahrzeuge die Reloadet werden falsche IDs haben.
Hier der Code:
if(dialogid == Dialog_DeleteAhCar)
{
mysql_query("SELECT * FROM Autohaus");
mysql_store_result();
if(!strval(inputtext) || strval(inputtext) == 0 || strval(inputtext) > mysql_num_rows())
{
SendClientMessage(playerid,rot,"Kein Text, nicht 0 oder keine existierende ID!");
return ShowPlayerDialog(playerid,Dialog_DeleteAhCar,1,"Deleting - Autohaus Fahrzeug","{FF0000}ID eingeben bitte","Weiter","Zurück");
}
DeleteAhID[playerid] = strval(inputtext);
ShowPlayerDialog(playerid,Dialog_DeleteAhCarBestätigung,0,"Bestätigung","{FFFFFF}Bist du sicher, das du das Autohaus Fahrzeug {FF0000}löschen {FFFFFF}möchtest?","Löschen","Abbrechen");
}
if(dialogid == Dialog_DeleteAhCarBestätigung)
{
new query[150];
format(query,sizeof query,"DELETE FROM Autohaus WHERE id = %d",AhCars[DeleteAhID[playerid]][mysqlID]);
mysql_query(query);
mysql_free_result();
DestroyVehicle(AhCars[DeleteAhID[playerid]][vID]);
Delete3DTextLabel(AhCars[DeleteAhID[playerid]][vAhCarText]);
AhCars[DeleteAhID[playerid]][mysqlID] = 0;
AhCars[DeleteAhID[playerid]][Modell] = 0;
AhCars[DeleteAhID[playerid]][Kaufpreis] = 0;
AhCars[DeleteAhID[playerid]][Verkaufspreis] = 0;
AhCars[DeleteAhID[playerid]][Repairpreis] = 0;
AhCars[DeleteAhID[playerid]][PosX] = 0;
AhCars[DeleteAhID[playerid]][PosY] = 0;
AhCars[DeleteAhID[playerid]][PosZ] = 0;
AhCars[DeleteAhID[playerid]][Rotation] = 0;
AhCars[DeleteAhID[playerid]][vID] = 0;
//Ab hier war eigentlich gar nichts, ich hab ein wenig ausprobiert.
//ReloadAhCars();
new i = 1,string1[128],string2[128],col = random(126);
format(query,sizeof query,"SELECT * FROM Autohaus");
mysql_query(query);
mysql_store_result();
while(mysql_fetch_row_format(query))
{
DestroyVehicle(AhCars[i][vID]);
Delete3DTextLabel(AhCars[i][vAhCarText]);
sscanf(query,"e<p<|>dddddffff",AhCars[i]);
AhCars[i][vID] = AddStaticVehicleEx(AhCars[i][Modell],AhCars[i][PosX],AhCars[i][PosY],AhCars[i][PosZ],AhCars[i][Rotation],col,col,3600000);
format(string2,sizeof string2,"Modell: {FF0000}%s\n{00A0FF}Kaufpreis: %d€\nVerkaufspreis: %d€\nRepairpreis: %d€\nID: %d",Carname[AhCars[i][Modell]-400],AhCars[i][Kaufpreis],AhCars[i][Verkaufspreis],AhCars[i][Repairpreis],i);
AhCars[i][vAhCarText] = Create3DTextLabel(string2,hellblau,AhCars[i][PosX],AhCars[i][PosY],AhCars[i][PosZ],15,0);
Attach3DTextLabelToVehicle(AhCars[i][vAhCarText],AhCars[i][vID],0,0,0.75);
SetVehicleParamsEx(AhCars[i][vID],0,0,0,1,0,0,0);
format(string1,sizeof string1,"Autohaus %d",i);
SetVehicleNumberPlate(AhCars[i][vID],string1);
i++;
}
}
Bei der Bestätigung war eigentlich ReloadAhCars(); (Mit der Kennzeichnung)
Leider lief das schief...
Hier noch die Codes von LoadAhVehicles(); und ReloadAhCars();
ReloadAhCars()
{
new i = 1,query[128];
format(query,sizeof query,"SELECT * FROM Autohaus");
mysql_query(query);
mysql_store_result();
while(mysql_fetch_row_format(query))
{
DestroyVehicle(AhCars[i][vID]);
Delete3DTextLabel(AhCars[i][vAhCarText]);
printf("successful %d",i);
i++;
}
LoadAhVehicles();
}
LoadAhVehicles() //Ist vielleicht wichtig ;)
{
new col = 0 + random(126);
new str[128],string1[128],string2[128],i = 1;
format(str,sizeof str,"SELECT * FROM Autohaus");
mysql_query(str);
mysql_store_result();
while(mysql_fetch_row_format(str))
{
sscanf(str,"e<p<|>dddddffff>",AhCars[i]);
AhCars[i][vID] = AddStaticVehicleEx(AhCars[i][Modell],AhCars[i][PosX],AhCars[i][PosY],AhCars[i][PosZ],AhCars[i][Rotation],col,col,3600000);
format(string2,sizeof string2,"Modell: {FF0000}%s\n{00A0FF}Kaufpreis: %d€\nVerkaufspreis: %d€\nRepairpreis: %d€\nID: %d",Carname[AhCars[i][Modell]-400],AhCars[i][Kaufpreis],AhCars[i][Verkaufspreis],AhCars[i][Repairpreis],i);
AhCars[i][vAhCarText] = Create3DTextLabel(string2,hellblau,AhCars[i][PosX],AhCars[i][PosY],AhCars[i][PosZ],15,0);
Attach3DTextLabelToVehicle(AhCars[i][vAhCarText],AhCars[i][vID],0,0,0.75);
SetVehicleParamsEx(AhCars[i][vID],0,0,0,1,0,0,0);
format(string1,sizeof string1,"Autohaus %d",i);
SetVehicleNumberPlate(AhCars[i][vID],string1);
i++;
}
}
Danke schonmal