Beiträge von #define
-
-
Evtl. mit nem besoffenen Kopf n Bier verschüttet?:D
-
Also quasi so?
new querystring[128];
format(querystring,sizeof(querystring),"UPDATE `accounts` SET `Level` = '%s', `Geld` = '%s', `Kills` = '%s', `Tode` = '%s', `Adminlevel` = '%s, `Health` = '%s' WHERE `Name` = '%s'",SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pHealth],SpielerInfo[playerid][pName]);
mysql_query(querystring); -
Finde ich richtig gut und mit ein wenig logischen denken selbst für einen Anfänger wie mir gut zu verstehen.
//edit:
Habe mal versucht das maddin speicherzeugs in einer einzigen query zu speichern, allerdings speichert er es nicht...
mysql_query("UPDATE `accounts` SET `Level` = 'SpielerInfo[playerid][pLevel]', `Geld` = 'SpielerInfo[playerid][pGeld]', `Kills` = 'SpielerInfo[playerid][pKills]', `Tode` = 'SpielerInfo[playerid][pTode]', `Adminlevel` = 'SpielerInfo[playerid][pAdminlevel], `Health` = 'SpielerInfo[playerid][pHealth]' WHERE `Name` = 'SpielerInfo[playerid][pName]'");
Oder muss ich mit strings arbeiten?
-
Wenn er das gleiche wiedergeben möchte, wieso sollte er das ganze nochmal umschreiben?
Finde die Aktion ganz interessant... -
e-sport
-
Jaaaa,
danke an euch 2
Funkioniert -
Hey Leute,
ich arbeite momentan an einem Startintro, also eigentlich ein Tutorial. Es klappt auch, nur wenn ich es danach nochmal versuche mit einem neuen Account, oder wenn es ein Kumpel versuchst, klappt es nichtmehr o_O...Hier der Code:
new new StartdialogTime[MAX_PLAYERS];
new DialogTimer[MAX_PLAYERS];
forward Startdialog(playerid);Dann nach der Registration:
TogglePlayerControllable(playerid,false);
SetPlayerPos(playerid,180.0177,-110.1077,8.7177);
SetPlayerCameraPos(playerid, 180.0177,-110.1077,8.7177);
SetPlayerCameraLookAt(playerid,208.2195,-102.8708,7.8655);
DialogTimer = SetTimerEx("Startdialog",1000,true,"i",playerid);
SetPVarInt(playerid,"ImIntro", 1);Bei OnPlayerSpawn:
if(GetPVarInt(playerid,"ImIntro") == 1)
{
DeletePVar(playerid,"ImIntro");
KillTimer(DialogTimer[playerid]);
return 1;
}Der Timer:
public Startdialog(playerid)
{
StartdialogTime[playerid]++;
new str[128],str1[128],str2[128],str3[128],str4[128],str5[128],str6[128],strr[128],str7[128],str8[128];
if(StartdialogTime[playerid] == 3)
{
SendClientMessage(playerid,Weiss,"{"Embed_Türkis"}Jim sagt: {"Embed_Weiss"}Junge, du schuldest mir immernoch mein Geld! 120.000$!");
}
if(StartdialogTime[playerid] == 8)
{
format(str1,sizeof(str1),"{"Embed_Gelb"}%s sagt:{"Embed_Weiss"} Man Jim, du kennst meinen finanziellen Zustand ganz genau!",Playername(playerid));
format(str,sizeof(str),"{"Embed_Gelb"}%s sagt:{"Embed_Weiss"} In meinem Portmonai herrscht Ebbe und das Geld was ich krieg reicht grade noch so zum überleben!",Playername(playerid));
SendClientMessage(playerid,Weiss,str1);
SendClientMessage(playerid,Weiss,str);
}
// Und so weiter...
}Hoffentlich kann mir einer von euch helfen
mfg
-
Also an den Rolltreppen?
Drück dich mal genauer aus... -
An dieser Rolltreppe oder wo?
oder hast du einen eigenen?
-
Ok, habe es jetzt so gemacht:
new rPass[128],rAlter,rSex;
GetPVarString(playerid,"Reg_Passwort",rPass,128);
rAlter = GetPVarInt(playerid,"Reg_Alter");
rSex = GetPVarInt(playerid,"Reg_Geschlecht");
CreateAccount(playerid,rPass,rAlter,rSex,inputtext);
return true;HILFE!
Jetzt wird garkein Account mehr erstellt!
Es wird nichts in der Tabelle erstellt -.- -
Ich versuche dir mal zu helfen:
Ersteinmal setzt du in deinem Speicherenum folgende Punkte ein:
Float:pLastX,
Float:pLastY,
Float:pLastZDeine letzten Koordinaten speicherst du dann bei OnPlayerDisconnect.
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid,x,y,z);
mysql_SetFloat("accounts", "LastX", Float:x, "Name", SpielerInfo[playerid][pName]);
mysql_SetFloat("accounts", "LastY", Float:y, "Name", SpielerInfo[playerid][pName]);
mysql_SetFloat("accounts", "LastZ", Float:z, "Name", SpielerInfo[playerid][pName]);
SavePlayer(playerid);Nun musst du sie nurnoch laden. Das machst du einfach bei deinem LoadPlayer stock.
SpielerInfo[playerid][pLastX] = mysql_GetFloat("accounts", "LastX", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pLastY] = mysql_GetFloat("accounts", "LastY", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pLastZ] = mysql_GetFloat("accounts", "LastZ", "Name", SpielerInfo[playerid][pName]);Zu guter letzt setzt du den Spieler einfach an die abgespeicherte Position... bei OnPlayerSpawn
new Float:Lx = mysql_GetFloat("accounts", "LastX", "Name", SpielerInfo[playerid][pName]);
new Float:Ly = mysql_GetFloat("accounts", "LastY", "Name", SpielerInfo[playerid][pName]);
new Float:Lz = mysql_GetFloat("accounts", "LastZ", "Name", SpielerInfo[playerid][pName]);
SetPlayerPos(playerid,Lx,Ly,Lz);
//edit:Dein mysql_GetFloat muss im übrigen oben stehen, also im Header. Ausserdem musst du "Float:" davorschreiben.
Also so:stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
{
new query[128], Float:sqlfloat;
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Is, Is);
format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
mysql_query(query);
mysql_store_result();
mysql_fetch_float(sqlfloat);
mysql_free_result();
return sqlfloat;
}
Ich hoffe ich konnte dir weiterhelfen -
Hallo Community,
ich arbeite an einem Registriersystem in mysql. Als kleine Vorlage habe ich das System von maddin!Zum System: Es werden Geschlecht, Alter und Email abgefragt. Vorerst wird es in PVar's abgespeichert und beim erstellen dann aufgerufen.
Und genau da liegt mein Problem!case DIALOG_REGISTER_MAIL:
{
if(response)
{
if(strfind(inputtext, "@", true) != -1)
{
new rPass[128],rAlter,rSex,rMail[256];
rPass = GetPVarInt(playerid,"Reg_Passwort"); //array must be indexed (variable "rPass")
rAlter = GetPVarInt(playerid,"Reg_Alter"); // Fehlerfrei
rSex = GetPVarInt(playerid,"Reg_Geschlecht"); // Fehlerfrei
rMail = GetPVarInt(playerid,"Reg_Mail"); //array must be indexed (variable "rMail")
CreateAccount(playerid,rPass,rAlter,rSex,rMail);
return true;
}
else
{
kick(playerid);
return true;
}
}
}Und im CreateAccount stock gibt es auch erros...
stock CreateAccount(playerid, pass[],age,sex,email[])
{
new query[256],Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
mysql_real_escape_string(Name,Name);
mysql_real_escape_string(pass,pass);
mysql_real_escape_string(email,email);
mysql_real_escape_string(age,age); //argument type mismatch(argument 1)
mysql_real_escape_string(sex,sex);//argument type mismatch(argument 1)
format(query, sizeof(query), "INSERT INTO accounts (Name, Passwort, eMail, Alter, Geschlecht) VALUES ('%s', '%s', '%s', '%d', '%d')", Name, pass, email, age,sex);
mysql_query(query);
return true;
}Ich hoffe einer von euch könnte mir helfen... Bin langsam echt am verzweifeln.
Falls ihr noch mehr Informationen benötigt, einfach in den Thread schreiben.
Mfg. -
Hey Leute,
stehe hinter einen Rätsel... unzwar: Ich möchte eine e-Mail abfrage machen, habe aber keine Ahnung wie das geht, das man auch eine e-mail eingeben muss. Bedeutet das wenn man halt "Domain@email.de" machen muss.
Ich hoffe ihr wisst wie ich meine und ihr könnt mir helfen -
Oh man bei UPDATE nutzt du mysql_free_result obwohl man es da garnicht benötigt
Bei SELECT nutz du selten mysql_free_result Wiso?Diese frage wird er dir nicht beantworten können, da er es selber nicht geschrieben hat.
wette ich drum -
Und jetzt kopier nochmal das ganze und schreib daneber die zeile, als //254, //255
...
-
zeig nochmal die fehler
-
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==DIALOG_REGISTER)
{
if(response==0)
{
SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren"."Gib bitte das gewünschte Passwort ein:"."Register"."Abbrechen");
SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
return 1;
}
else
{
Register(playerid,inputtext);
return 1;
}
}
}
return 1;
}Du hast Klammern vergessen, so is es richtig
und Xuki: das wurde schon gesagt du beitragspusher :DD
-
-
das is aber komplizierter als nur einen enum abfragen.