y_ini won't save
#1

Hello, i have a problem so i decided to ask for a help. So the problem is that y_ini won't save my position(x,y,z) and the skin id. Where is the problem?



user.ini shows me this:
Код:
[data]
NewReg = 0
Zpos = 0.000000
Ypos = 0.000000
Xpos = 0.000000
Skin = 5
Deaths = 0
Kills = 0
Admin = 0
Cash = 0
Password = 228918034
And i don't know why he sets skin id automatically to 5

here is the code: https://pastebin.com/J7uNdBKQ
Reply
#2

._.
y_ini is saving your variables value. It's you not setting the value for your player's current coordinate !!!
GetPlayerPos(playerid, PlayerInfo[playerid][Xpos],PlayerInfo[playerid][Ypos],PlayerInfo[playerid][Zpos]);
PlayerInfo[playerid][SkinID] = GetPlayerSkin(playerid);
And then save ...
Reply
#3

Could you edit the part where is the mistake? im a newbie lol . Thaanks
Reply
#4

PHP код:
public OnPlayerDisconnect(playeridreason)
{
    new 
LastSkin GetPlayerSkin(playerid);
    new 
Float:xFloat:yFloat:z;
    
GetPlayerPos(playeridxyz);
    new 
INI:File INI_Open(UserPath(playerid));
    
INI_SetTag(File,"data");
    
INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
    
INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
    
INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
    
INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
    
INI_WriteInt(File,"Skin"LastSkin);
    
INI_WriteFloat(File,"Xpos"x);
    
INI_WriteFloat(File,"Ypos"y);
    
INI_WriteFloat(File,"Zpos"z);
    
INI_WriteInt(File,"NewReg",0);
    
INI_Close(File);
    return 
1;

Can you test?
Reply
#5

Use mine its better.
Код:
public OnPlayerDisconnect(playerid, reason)
{
    pInfo[playerid][Skin] = GetPlayerSkin(playerid);
    GetPlayerPos(playerid, pInfo[playerid][Xpos],pInfo[playerid][Ypos],pInfo[playerid][Zpos]);
    new INI:File = INI_Open(UserPath(playerid));
    INI_SetTag(File,"data");
    INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
    INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
    INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
    INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
    INI_WriteInt(File,"Skin", pInfo[playerid][Skin]);
    INI_WriteFloat(File,"Xpos", pInfo[playerid][Xpos]);
    INI_WriteFloat(File,"Ypos", pInfo[playerid][Ypos]);
    INI_WriteFloat(File,"Zpos", pInfo[playerid][Zpos]);
    INI_WriteInt(File,"NewReg",0);
    INI_Close(File);
    return 1;
}
Also make a new plain function and write your saving lines there. Make sure that the player is registered before saving the data. Make a global timer which saves player data every 120000ms (120 seconds -> 2 minutes) for every player. (Just in case)
Reply
#6

Quote:
Originally Posted by Maximun
Посмотреть сообщение
PHP код:
public OnPlayerDisconnect(playeridreason)
{
    new 
LastSkin GetPlayerSkin(playerid);
    new 
Float:xFloat:yFloat:z;
    
GetPlayerPos(playeridxyz);
    new 
INI:File INI_Open(UserPath(playerid));
    
INI_SetTag(File,"data");
    
INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
    
INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
    
INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
    
INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
    
INI_WriteInt(File,"Skin"LastSkin);
    
INI_WriteFloat(File,"Xpos"x);
    
INI_WriteFloat(File,"Ypos"y);
    
INI_WriteFloat(File,"Zpos"z);
    
INI_WriteInt(File,"NewReg",0);
    
INI_Close(File);
    return 
1;

Can you test?
now it saves the position but not the skin id
Reply
#7

Quote:
Originally Posted by whadez
Посмотреть сообщение
Use mine its better.
Код:
public OnPlayerDisconnect(playerid, reason)
{
    pInfo[playerid][Skin] = GetPlayerSkin(playerid);
    GetPlayerPos(playerid, pInfo[playerid][Xpos],pInfo[playerid][Ypos],pInfo[playerid][Zpos]);
    new INI:File = INI_Open(UserPath(playerid));
    INI_SetTag(File,"data");
    INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
    INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
    INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
    INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
    INI_WriteInt(File,"Skin", pInfo[playerid][Skin]);
    INI_WriteFloat(File,"Xpos", pInfo[playerid][Xpos]);
    INI_WriteFloat(File,"Ypos", pInfo[playerid][Ypos]);
    INI_WriteFloat(File,"Zpos", pInfo[playerid][Zpos]);
    INI_WriteInt(File,"NewReg",0);
    INI_Close(File);
    return 1;
}
Also make a new plain function and write your saving lines there. Make sure that the player is registered before saving the data.
Код:
C:\Users\Lukasz\Desktop\server\gamemodes\rpgmode.pwn(91) : error 028: invalid subscript (not an array or too many subscripts): "pInfo"
C:\Users\Lukasz\Desktop\server\gamemodes\rpgmode.pwn(91) : warning 215: expression has no effect
C:\Users\Lukasz\Desktop\server\gamemodes\rpgmode.pwn(91) : error 001: expected token: ";", but found "]"
C:\Users\Lukasz\Desktop\server\gamemodes\rpgmode.pwn(91) : error 029: invalid expression, assumed zero
C:\Users\Lukasz\Desktop\server\gamemodes\rpgmode.pwn(91) : fatal error 107: too many error messages on one line
Reply
#8

Quote:
Originally Posted by Lokii
Посмотреть сообщение
PHP код:
INI_WriteInt(File,"Skin"GetPlayerSkin(playerid)); 
still doesn't save
Reply
#9

Can you try that?
PHP код:
public OnPlayerDisconnect(playeridreason)
{
    new 
INI:File INI_Open(UserPath(playerid));
    
INI_SetTag(File,"data");
    
INI_WriteInt(File,"Cash"GetPlayerMoney(playerid));
    
INI_WriteInt(File,"Admin"PlayerInfo[playerid][pAdmin]);
    
INI_WriteInt(File,"Kills"PlayerInfo[playerid][pKills]);
    
INI_WriteInt(File,"Deaths"PlayerInfo[playerid][pDeaths]);
    
PlayerInfo[playerid][Skin] = GetPlayerSkin(playerid);
    
INI_WriteInt(File,"Skin"PlayerInfo[playerid][Skin]);
    
GetPlayerPos(playeridPlayerInfo[playerid][Xpos], PlayerInfo[playerid][Ypos], PlayerInfo[playerid][Zpos]);
    
INI_WriteFloat(File,"Xpos"PlayerInfo[playerid][Xpos]);
    
INI_WriteFloat(File,"Ypos"PlayerInfo[playerid][Ypos]);
    
INI_WriteFloat(File,"Zpos"PlayerInfo[playerid][Zpos]);
    
INI_WriteInt(File,"NewReg"0);
    
INI_Close(File);
    return 
1;

Reply
#10

Quote:
Originally Posted by Maximun
Посмотреть сообщение
Can you try that?
PHP код:
public OnPlayerDisconnect(playeridreason)
{
    new 
INI:File INI_Open(UserPath(playerid));
    
INI_SetTag(File,"data");
    
INI_WriteInt(File,"Cash"GetPlayerMoney(playerid));
    
INI_WriteInt(File,"Admin"PlayerInfo[playerid][pAdmin]);
    
INI_WriteInt(File,"Kills"PlayerInfo[playerid][pKills]);
    
INI_WriteInt(File,"Deaths"PlayerInfo[playerid][pDeaths]);
    
PlayerInfo[playerid][Skin] = GetPlayerSkin(playerid);
    
INI_WriteInt(File,"Skin"PlayerInfo[playerid][Skin]);
    
GetPlayerPos(playeridPlayerInfo[playerid][Xpos], PlayerInfo[playerid][Ypos], PlayerInfo[playerid][Zpos]);
    
INI_WriteFloat(File,"Xpos"PlayerInfo[playerid][Xpos]);
    
INI_WriteFloat(File,"Ypos"PlayerInfo[playerid][Ypos]);
    
INI_WriteFloat(File,"Zpos"PlayerInfo[playerid][Zpos]);
    
INI_WriteInt(File,"NewReg"0);
    
INI_Close(File);
    return 
1;

Thank you repped
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)