Jump to content
  • 0

pomoc Ukládání !


PanRožokRohliik

Dotaz

//Includy
#include <a_samp>
#include <YSI\y_ini>
#include <sscanf2>
#include <foreach>
#include <Poliscol>
///////////////Definace
#define PATH "/Vip/%s.ini"
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#define DIALOG_VIPS 2005
//Pragma
#pragma tabsize 0
new mojevip		[MAX_PLAYERS];
//
new vip[MAX_PLAYERS];
stock Meno(playerid)
{
new m[255];
GetPlayerName(playerid,m,255);
return m;
}
//
enum pInfo
{
    pPass,
    pAdmin,
    pVip,
    pRegistrace
}
new PlayerInfo[MAX_PLAYERS][pInfo];

//Vytvoření
stock UserPath(playerid)
{
    new string[128],playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    format(string,sizeof(string),PATH,playername);
    return string;
}
//Stock2
//Zjistit Jmeno
stock GetName(playerid)
{
    new
        name[24];
    GetPlayerName(playerid, name, sizeof(name));
    strreplace(name, '_', ' ');
    return name;
}
//Stock3
//strreplace
stock strreplace(string[], find, replace)
{
    for(new i=0; string[i]; i++)
    {
        if(string[i] == find)
        {
            string[i] = replace;
        }
    }
}
//
public OnPlayerConnect(playerid)
{
mojevip  [playerid]  = false;
    if(PlayerInfo[playerid][pRegistrace] == 1)
    {
    new INI:File = INI_Open(UserPath(playerid));
    //Uložení
    INI_SetTag(File,"data");
    INI_WriteInt(File,"Admin",0);
    INI_WriteInt(File,"Vip",0);
    INI_WriteInt(File,"Registrace",1);
    //Pojistka
    PlayerInfo[playerid][pAdmin] = 0;
    PlayerInfo[playerid][pVip] = 0;
    PlayerInfo[playerid][pRegistrace] = 1;
    INI_Close(File);
    	}


	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
new INI:File = INI_Open(UserPath(playerid));
    INI_SetTag(File,"data");
    INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
    INI_WriteInt(File,"Vip",PlayerInfo[playerid][pVip]);
    INI_WriteInt(File,"Registrace",PlayerInfo[playerid][pRegistrace]);
    INI_Close(File);
    mojevip  [playerid]  = false;
	return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(dvip,4,cmdtext);
dcmd(vips,4,cmdtext);
dcmd(varmor,6,cmdtext);
return 0;
}
/////////////////////////////
dcmd_dvip(playerid, params[])
{
new id = strval(params);
new string[256];
if (!strlen(params)) return SendClientMessage(playerid, 0xFF0000AA, "Použite /dvip [id]");
if(IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,0xFF0000AA,"Příkaz Lze použít v Rcon");
else if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000AA, "Zadané id neni je pripojené");
format(string, 200, "Administrátor %s dal V.I.P hráčovi %s. ",Meno(playerid), Meno(id));
SendClientMessageToAll(0xff0000AA, string);
vip[id] = 1;
return 1;
}
dcmd_vips(playerid, params[])
{
    #pragma unused params
    new str[2000];
    ShowPlayerDialog(playerid,DIALOG_VIPS,DIALOG_STYLE_MSGBOX,"Online VIP","Žádné VIP není online!","Ok","");
    for (new i; i<MAX_PLAYERS; i++)
    {
    if(vip[i] == 1)
    {
    format(str,sizeof(str), "{FFFFFF}%s %s -> {FF0000}VIP{FFFFFF}\r\n\n",str,Meno(i));
    }}
    ShowPlayerDialog(playerid,DIALOG_VIPS,DIALOG_STYLE_MSGBOX,"Online VIP",str,"Ok","");
    return 1;
}
dcmd_varmor(playerid, params[])
{
#pragma unused params
if(vip[playerid] == 0)return SendClientMessage(playerid,0xff0000AA,"Nejsi VIP Hráč");
SetPlayerArmour(playerid,100);
    return 1;
}

 

Mám dotaz proč se mi to nechce ukládat ?

 

Link to comment
Share on other sites

1 odpověd na tuto otázku

Recommended Posts

  • 0

skús dať samostatný stock na ukladanie a potom to len hodíš do onplayerdisconnect

 

takto nejak:

public onplaydisconnect(playerid,reason)
{
	ukladanie(playerid);
	return 1;
}



stock ukladanie(playerid)
{
    if(INI_Open(GetUser(playerid)))
    {
        INI_WriteInt("money",GetPlayerMoney(playerid));
        INI_WriteInt("admn",pInfo[playerid][pAdmin]);
        INI_WriteInt("vip",pInfo[playerid][pVip]);
        INI_Save();
        INI_Close();
    }
        return 1;
}
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...