Hallo Leute,
ich habe bereits die Suchfunktion benutzt und auch einiges gefunden - ein großer Teil hat nicht geholfen und der Rest bezog sich auf andere Fragestellungen. Ich möchte gerne die MySQL Position eines Spielers in die MySQL Account Tabelle speichern - so weit so gut, das klappt alles. Nun möchte ich, dass der Spieler nach dem Login auf die gespeicherte Position gesetzt wird.... Klappt komischerweise nicht - ich werde nicht auf die gespeicherte Position gespawnt. Stattdessen lande ich bei 0, 0 , 0. Die HP Anzahl, die auch als Float gespeichert wird, kann aber problemlos verwendet werden Ich weiß nicht, wo das Problem liegt.
Codeee: [Nur die wichtigsten Teile enthalten]
{
pName[MAX_PLAYER_NAME],
pLevel,
pGeld,
pKills,
pTode,
Float:pHealth,
Float:PosX,
Float:PosY,
Float:PosZ,
Float:PosR,
pskinid
}
LoadPlayer(playerid);
new PlayerName[MAX_PLAYER_NAME],
string[128];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
format(string, sizeof(string), "%s hat den Server betreten.", PlayerName);
SendClientMessageToAll(system, string);
SpawnPlayer(playerid);
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, SpielerInfo[playerid][pGeld]);
SetPlayerHealth(playerid, SpielerInfo[playerid][pHealth]);
SetPlayerSkin(playerid, SpielerInfo[playerid][pskinid]);
SetPlayerPos(playerid,SpielerInfo[playerid][PosX],SpielerInfo[playerid][PosY],SpielerInfo[playerid][PosZ]);
SetPlayerFacingAngle(playerid,SpielerInfo[playerid][PosR]);
return 1;
SpielerInfo[playerid][PosY] = mysql_GetFloat("Accounts","PosY","Name",SpielerInfo[playerid][pName]);
SpielerInfo[playerid][PosZ] = mysql_GetFloat("Accounts","PosZ","Name",SpielerInfo[playerid][pName]);
SpielerInfo[playerid][PosR] = mysql_GetFloat("Accounts","PosR","Name",SpielerInfo[playerid][pName]);
GetPlayerPos(playerid,PosXX,PosYY,PosZZ);
GetPlayerFacingAngle(playerid,PosRR);
mysql_SetFloat("accounts", "PosX", PosXX, "Name", SpielerInfo[playerid][pName]);
mysql_SetFloat("accounts", "PosY", PosYY, "Name", SpielerInfo[playerid][pName]);
mysql_SetFloat("accounts", "PosZ", PosZZ, "Name", SpielerInfo[playerid][pName]);
mysql_SetFloat("accounts", "PosR", PosRR, "Name", SpielerInfo[playerid][pName]);
{
new query[128];
mysql_real_escape_string(Table,Table);
mysql_real_escape_string(Field,Field);
mysql_real_escape_string(Where,Where);
mysql_real_escape_string(Where2,Where2);
format(query,128,"Update. %s SET %s = '%f' WHERE %s = '%s'",Table, Field, To, Where, Where2);
mysql_query(query);
format(query,128, "");
return true;
}
{
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;
}
BTW erhalte ich folgende Warnung:
C: ... Blabla .... gamemode.pwn(350) : warning 208: function with tag result used before definition, forcing reparse
In der Zeile 350 beginnt der GetFloat Stock, genau genommen steht dort: stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])