Problem with Function in Y_INI.
#1

So when i use the command to spawn an Vikendica thats like House but its named on other Language so when i spawn it in the folder "Vikendice" there spawned 100 other files and later i cant spawn new. But in server its only one spawned and you can buy only one, after you buy it you cant make an new one also there problem with /vikendica which i tried to solve thats it when you register and try to buy an vikendica it say you already an owner of vikendica but you are not i have set OnGamemodeInit but nothing also OnPlayerConnect and lack forwards for the pOwnerVikendica


Enum:
pawn Код:
#define VIKENDICE_FILE    "Vikendice/%d.ini"
#define MAX_VIKENDICA 200
enum Vikendica
{
    viProveraVlasnika,
    viVlasnik[45],
    Float:viUlazX,
    Float:viUlazY,
    Float:viUlazZ,
    Float:viIzlazX,
    Float:viIzlazY,
    Float:viIzlazZ,
    viLevel,
    viCena,
    viNovac,
    viInt,
    viZatvoreno,
    viVW,
    viDroga,
    viMats
};
new VikendiceInfo[MAX_VIKENDICA][Vikendica];
new VikendicaPickup[sizeof(VikendiceInfo)];
new Text3D:VikendicaLabel[sizeof(VikendiceInfo)];
OnGameModeInit:
pawn Код:
PlayerInfo[playerid][pPosedovanjeVikendice] = -1;


pawn Код:
forward UcitajVikendice(idvikendice, name[], value[]);
public UcitajVikendice(idvikendice, name[], value[])
{
    INI_Int("ProveraVlasnika",VikendiceInfo[idvikendice][viProveraVlasnika]);
    INI_String("Vlasnik",VikendiceInfo[idvikendice][viVlasnik],45);
    INI_Float("UlazX",VikendiceInfo[idvikendice][viUlazX]);
    INI_Float("UlazY",VikendiceInfo[idvikendice][viUlazY]);
    INI_Float("UlazZ",VikendiceInfo[idvikendice][viUlazZ]);
    INI_Float("IzlazX",VikendiceInfo[idvikendice][viIzlazX]);
    INI_Float("IzlazY",VikendiceInfo[idvikendice][viIzlazY]);
    INI_Float("IzlazZ",VikendiceInfo[idvikendice][viIzlazZ]);
    INI_Int("Level",VikendiceInfo[idvikendice][viLevel]);
    INI_Int("Cena",VikendiceInfo[idvikendice][viCena]);
    INI_Int("Novac",VikendiceInfo[idvikendice][viNovac]);
    INI_Int("Int",VikendiceInfo[idvikendice][viInt]);
    INI_Int("Zatvoreno",VikendiceInfo[idvikendice][viZatvoreno]);
    INI_Int("VW",VikendiceInfo[idvikendice][viVW]);
    INI_Int("Droga",VikendiceInfo[idvikendice][viDroga]);
    INI_Int("Mats",VikendiceInfo[idvikendice][viMats]);
    return 1;
}
///////////////////////////////////////////////////////////////////////
stock SacuvajVikendicu(idvikendice)
{
    new vFile[128];
    format(vFile, sizeof(vFile), VIKENDICE_FILE, idvikendice);
    new INI:File = INI_Open(vFile);
    INI_WriteInt(File,"ProveraVlasnika",VikendiceInfo[idvikendice][viProveraVlasnika]);
    INI_WriteString(File,"Vlasnik",VikendiceInfo[idvikendice][viVlasnik]);
    INI_WriteFloat(File,"UlazX",VikendiceInfo[idvikendice][viUlazX]);
    INI_WriteFloat(File,"UlazY",VikendiceInfo[idvikendice][viUlazY]);
    INI_WriteFloat(File,"UlazZ",VikendiceInfo[idvikendice][viUlazZ]);
    INI_WriteFloat(File,"IzlazX",VikendiceInfo[idvikendice][viIzlazX]);
    INI_WriteFloat(File,"IzlazY",VikendiceInfo[idvikendice][viIzlazY]);
    INI_WriteFloat(File,"IzlazZ",VikendiceInfo[idvikendice][viIzlazZ]);
    INI_WriteInt(File,"Level",VikendiceInfo[idvikendice][viLevel]);
    INI_WriteInt(File,"Cena",VikendiceInfo[idvikendice][viCena]);
    INI_WriteInt(File,"Novac",VikendiceInfo[idvikendice][viNovac]);
    INI_WriteInt(File,"Int",VikendiceInfo[idvikendice][viInt]);
    INI_WriteInt(File,"Zatvoreno",VikendiceInfo[idvikendice][viZatvoreno]);
    INI_WriteInt(File,"VW",VikendiceInfo[idvikendice][viVW]);
    INI_WriteInt(File,"Droga",VikendiceInfo[idvikendice][viDroga]);
    INI_WriteInt(File,"Mats",VikendiceInfo[idvikendice][viMats]);
    INI_Close(File);
    return 1;
}

CMD for creating:
pawn Код:
CMD:kreirajvikendicu(playerid, params[])
{
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Moras biti logovan da bi koristio ovu komandu.");
    if(PlayerInfo[playerid][pAdmin] < 1338) return SendClientMessage(playerid, COLOR_WHITE, "{FAFAFA}[{D7FF00}INFO{FAFAFA}]: Nemas prava da koristis ova komanda.");
    new idvi,level,cena,vfajl[80],string[500];
    new Float:X2, Float:Y2, Float:Z2;
    GetPlayerPos(playerid, X2, Y2, Z2);
    if(sscanf(params, "iii",idvi,level,cena)) return SendClientMessage(playerid, COLOR_WHITE, "{FAFAFA}[{D7FF00}INFO{FAFAFA}]: Koristi /kreirajvikendica [ID] [Level] [Cjena]");
    if(idvi >= MAX_VIKENDICA) return SendClientMessage(playerid, COLOR_WHITE, "{FAFAFA}[{D7FF00}INFO{FAFAFA}]: Nadminat je limit na vikendica, tako da nemoze se dodati vise vikendica.");
    format(vfajl, sizeof(vfajl), VIKENDICE_FILE, idvi);
    if(fexist(vfajl)) return SendClientMessage(playerid, COLOR_WHITE, "{FAFAFA}[{D7FF00}INFO{FAFAFA}]: ID vec postoji iz ova vikendica.");
    VikendiceInfo[idvi][viIzlazX] = 421.9191; VikendiceInfo[idvi][viIzlazY] = 2536.4529; VikendiceInfo[idvi][viIzlazZ] = 10.0000;
    VikendiceInfo[idvi][viInt] = 10; VikendiceInfo[idvi][viCena] = cena; VikendiceInfo[idvi][viLevel] = level; VikendiceInfo[idvi][viUlazX] = X2;
    VikendiceInfo[idvi][viUlazY] = Y2; VikendiceInfo[idvi][viUlazZ] = Z2; VikendiceInfo[idvi][viProveraVlasnika] = 0;
    VikendiceInfo[idvi][viDroga] = 0; VikendiceInfo[idvi][viZatvoreno] = 1; VikendiceInfo[idvi][viVW] = idvi; VikendiceInfo[idvi][viMats] = 0;
    strmid(VikendiceInfo[idvi][viVlasnik],"Niko",0,strlen("Niko"),255);
    format(string,sizeof(string),"{A5FF00}Vikendica na Prodaju!\n{00CDFF}Cena: {FAFAFA}%d$\n{00CDFF}Level: {FAFAFA}%d\n{FAFAFA}Za kupovinu {00CDFF}/kupivikendicu{FAFAFA}",VikendiceInfo[idvi][viCena], VikendiceInfo[idvi][viLevel]);
    VikendicaLabel[idvi] = Create3DTextLabel(string ,0x33CCFFAA,VikendiceInfo[idvi][viUlazX], VikendiceInfo[idvi][viUlazY], VikendiceInfo[idvi][viUlazZ],25,0,1);
    VikendicaPickup[idvi] = CreateDynamicPickup(19134, 1, VikendiceInfo[idvi][viUlazX], VikendiceInfo[idvi][viUlazY], VikendiceInfo[idvi][viUlazZ]);
    SCMF(playerid, COLOR_LIGHTBLUE,"Kreirana je vikendica sa ID: %d",idvi);
    SacuvajVikendicu(idvi);
    return 1;
}
CMD For buying:
pawn Код:
CMD:kupivikendicu(playerid, params[])
{
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Moras biti logovan da bi koristio ovu komandu.");
    for(new i; i < sizeof(VikendiceInfo); i++)
    {
        if(IsPlayerInRangeOfPoint(playerid, 3.0, VikendiceInfo[i][viUlazX], VikendiceInfo[i][viUlazY], VikendiceInfo[i][viUlazZ]))
        {
            if(!strcmp(VikendiceInfo[i][viVlasnik], "Niko", true) && VikendiceInfo[i][viProveraVlasnika] == 0)
            {
                if(PlayerInfo[playerid][pPosedovanjeVikendice] != -1) return SendClientMessage(playerid, COLOR_WHITE, "{FAFAFA}[{D7FF00}INFO{FAFAFA}]: Ti nisi vlasnik na vikendica!");
                if(GetPlayerScore(playerid) < VikendiceInfo[i][viLevel]) return SendClientMessage(playerid, COLOR_WHITE, "{FAFAFA}[{D7FF00}INFO{FAFAFA}]: Nemate dovoljan level za da kupite vikendica!.");
                if(PlayerInfo[playerid][pMoney] < VikendiceInfo[i][viCena]) return SendClientMessage(playerid, COLOR_WHITE, "{FAFAFA}[{D7FF00}INFO{FAFAFA}]: Nemate novca da bi kupili vikendica.");
                strmid(VikendiceInfo[i][viVlasnik], PlayerNameEu(playerid), 0, strlen(PlayerNameEu(playerid)), 255);
                VikendiceInfo[i][viProveraVlasnika] = 1; PlayerInfo[playerid][pPosedovanjeVikendice] = i;
                VikendiceInfo[i][viZatvoreno] = 1; g_NovacMinus(playerid, VikendiceInfo[i][viCena]); VikendicaLP(i); SacuvajVikendicu(i); SaveChar(i);
                SendClientMessage(playerid, COLOR_WHITE, "{FAFAFA}[{D7FF00}INFO{FAFAFA}]: Cestitamo, kupili ste vikendicu!.");
                SendClientMessage(playerid, COLOR_WHITE, "{FAFAFA}[{D7FF00}INFO{FAFAFA}]: Za komande vikendice koristite /vikendica.");
                SendClientMessage(playerid, COLOR_WHITE, "{FAFAFA}[{D7FF00}INFO{FAFAFA}]: Za ulaz u kucu koristi tipku F");
                return 1;
            }
            else return SendClientMessage(playerid, COLOR_WHITE, "{FAFAFA}[{D7FF00}INFO{FAFAFA}]: Vikendica nije na prodaja.");
        }
    }
    return 1;
}
Reply
#2

The problem is somewhere in the CMD:kreirajvikendicu and Sacuvajvikendicu because when you create the vikendica and buy it after you restart the server or just save the files the sacuvajvikendica save another 100 files.
Reply
#3

Bump.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)