public OnPlayerConnect(playerid){
Character[playerid][Level] = 1;
Character[playerid][Money] = 10000;
Character[playerid][Health] = 100;
Character[playerid][Armour] = 0;
Character[playerid][Admin] = 0;
Character[playerid][Helper] = 0;
Character[playerid][SecretKey] = EOS; // End Of String, clear this string
Character[playerid][posX] = 1685.7357; // This is player spawn position
Character[playerid][posY] = 2333.7434;
Character[playerid][posZ] = -2.6797;
Character[playerid][posA] = 1.1255;
loginAttempt[playerid] = 0;
SetPVarInt(playerid, "FirstConnection", 1);
return 1;
}
public OnPlayerRequestSpawn(playerid){ // When the player click 'spawn' button, I will check their account.
CreateCharacterTextDraws(playerid);
CheckAccountConnection(playerid);
return 0;
}
CheckAccountConnection(playerid){
new pName[MAX_PLAYER_NAME], query[512];
GetPlayerName(playerid, pName, sizeof(pName));
mysql_format(MHandle, query, sizeof(query), "SELECT * FROM `character` WHERE `Username` = '%e' LIMIT 1", pName);
mysql_tquery(MHandle, query, "OnCharacterCheck", "i", playerid);
return 1;
}
forward OnCharacterCheck(playerid);
public OnCharacterCheck(playerid){
new rows, szFieldName[MAX_PLAYER_NAME];
cache_get_row_count(rows);
for(new row = 0; row < rows; row++){
cache_get_value_name(row, "Username", szFieldName);
if(!strcmp(szFieldName, GetPlayerNameEx(playerid))){
cache_get_value_name(row, "Password", Character[playerid][Password]);
cache_get_value_name(row, "Username", Character[playerid][Username]);
System_Scm(playerid, COLOR_YELLOW, "LOGIN", "This account has been registered.");
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Fill your password", "Ok", "Cancel");
return 1;
}
}
System_Scm(playerid, COLOR_YELLOW, "REGISTER", "You can register.");
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "REGISTRATION", "Fill your password", "Ok", "Cancel");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
switch(dialogid){
case DIALOG_REGISTER:{
if(!response) Kick(playerid);
if(strlen(inputtext) < 5 || strlen(inputtext) > 129) return System_Scm(playerid, COLOR_RED, "ERROR", "Password must be at least 5 words."), ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Fill your password", "Ok", "Cancel");
new query[512];
TogglePlayerSpectating(playerid, true);
WP_Hash(Character[playerid][Password], 129, inputtext);
mysql_format(MHandle, query, sizeof(query), "INSERT INTO `character` (`Username`, `Password`, `Level`, `Money`, `IP`, `posX`, `posY`, `posZ`, `posA`, `Health`, `Armour`, `Admin`, `Helper`, `SecretKey`, `Skin`, `Age`) VALUES ('%e', SHA1('%e'), 1, 10000, '%e', %f, %f, %f, %f, 100.0, 0.0, %d, %d, '', %d, %d)",
GetPlayerNameEx(playerid), Character[playerid][Password], Character[playerid][IP], Character[playerid][posX], Character[playerid][posY], Character[playerid][posZ], Character[playerid][posA], Character[playerid][Admin], Character[playerid][Helper], Character[playerid][Skin], Character[playerid][Age]);
mysql_tquery(MHandle, query, "OnCharacterRegister", "i", playerid);
}
return 1;
}
forward OnCharacterRegister(playerid);
public OnCharacterRegister(playerid){
GetPlayerName(playerid, Character[playerid][Username], MAX_PLAYER_NAME);
SetSpawnInfo(playerid, 0, Character[playerid][Skin], Character[playerid][posX], Character[playerid][posY], Character[playerid][posZ], Character[playerid][posA], 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid); // I will spawn the player with the above positions and then go to the public OnPlayerSpawn.
SaveCharacterInfo(playerid);
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerSkin(playerid, Character[playerid][Skin]);
SetPlayerMoney(playerid, Character[playerid][Money]);
SetPlayerScore(playerid, Character[playerid][Level]);
//SetPlayerPos(playerid, Character[playerid][posX], Character[playerid][posY], Character[playerid][posZ]);
// SetPlayerFacingAngle(playerid, Character[playerid][posA]);
SetPlayerHealth(playerid, Character[playerid][Health]);
SetPlayerArmour(playerid, Character[playerid][Armour]);
GetPlayerIp(playerid, Character[playerid][IP], 16);
CreateCharacterNameTag(playerid);
SetPlayerColor(playerid, COLOR_WHITE);
TogglePlayerClock(playerid,1);
return 1;
}
Have you made sure you defined Character[playerid][posZ] as a float, Please show us the enum and the loading system you have for your playing accounts
|
enum cInfo
{
Username[MAX_PLAYER_NAME],
Password[129],
Skin,
Sex,
IP[16],
Level,
Money,
Age,
Float:posX,
Float:posY,
Float:posZ,
Float:posA,
Float:Health,
Float:Armour,
Admin,
Helper,
SecretKey
};
forward OnCharacterRegister(playerid);
public OnCharacterRegister(playerid){
Character[playerid][Level] = 1;
Character[playerid][Money] = 10000;
Character[playerid][Health] = 100;
Character[playerid][Armour] = 0;
Character[playerid][Admin] = 0;
Character[playerid][Helper] = 0;
Character[playerid][posX] = 1642.2721;
Character[playerid][posY] = -2334.2493;
Character[playerid][posZ] = -2.6797;
Character[playerid][posA] = 1.1255;
GetPlayerName(playerid, Character[playerid][Username], MAX_PLAYER_NAME);
SetSpawnInfo(playerid, 0, Character[playerid][Skin], Character[playerid][posX], Character[playerid][posY], Character[playerid][posZ], Character[playerid][posA], -1, -1, -1, -1, -1, -1);
SetTimerEx("SpawnCharacter", 500, false, "i", playerid);
gCharacterLogged{playerid} = 1;
SaveCharacterInfo(playerid);
return 1;
}
forward SpawnCharacter(playerid);
public SpawnCharacter(playerid){
SpawnPlayer(playerid);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(!gCharacterLogged{playerid})
{
System_Scm(playerid, COLOR_RED, "ERROR", "Ban chua dang nhap!");
Kick(playerid);
return 1;
}
gCharacterLogged{playerid} = 1;
SetCharacterSpawn(playerid);
TogglePlayerClock(playerid,1);
return 1;
}
SetCharacterSpawn(playerid){
//if(IsPlayerConnected(playerid)){
SetPlayerSkin(playerid, Character[playerid][Skin]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerMoney(playerid, Character[playerid][Money]);
SetPlayerScore(playerid, Character[playerid][Level]);
/*SetPlayerPos(playerid, Character[playerid][posX], Character[playerid][posY], Character[playerid][posZ]);
SetPlayerFacingAngle(playerid, Character[playerid][posA]);*/
SetPlayerHealth(playerid, Character[playerid][Health]);
SetPlayerArmour(playerid, Character[playerid][Armour]);
GetPlayerIp(playerid, Character[playerid][IP], 16);
CreateCharacterNameTag(playerid);
SetPlayerColor(playerid, COLOR_WHITE);
//}
return 1;
}