Problema epica
#1

Salut.

( ) ) Problema de astazi este urmatorea :

- Cand un player se conecteaza la server , nu totdeauna , primeste Admin , iar levelul de Admin il copie oarecum de la contul meu.
Am impresia ca problema este de la playerid. Daca sunt spre exemplu, 5 pe server , daca dau /kick 3 blah , mi-l da afara pe cel cu id 0.

What do to ?

Multumesc anticipat.
Reply
#2

Da-ne ce ai la OnPlayerConnect
Reply
#3

pawn Код:
public OnPlayerConnect(playerid)
{
    #if UseRandomColors == true
    new rand = random(sizeof(playerColors));
    SetPlayerColor(playerid, playerColors[rand]);
    #endif
    PlayerLogged[playerid] = 0;
    gPlayerSpectating[playerid] = 0;
    PMsDisabled[playerid] = 0;
    isGod[playerid] = 0;
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(File,sizeof(File),"/fAdmin/Players/%s.txt",name);
    if(dini_Exists(File))
    {
        PlayerAcc[playerid][Registered] = dini_Int(File,"Registered");
        AccIsBanned[playerid] = dini_Int(File,"AccBanned");
    }
   
    if(AccIsBanned[playerid] == 1)
    {
        SendClientMessage(playerid,red,"WARNING: Your account has been banned, but you can still make a new one and join again!");
        Kick(playerid);
        return 1;
    }
   
    #if ConnectMessages == true
    new ConnectMessage[256];
    format(ConnectMessage,sizeof(ConnectMessage),"* %s (ID:%d) has joined the server *", name, playerid);
    SendClientMessageToAll(COLOR_GREY,ConnectMessage);
    new File:Log = fopen(connectPATH, io_append);
    new logData[128];
    new fTime[6];
    getdate(fTime[0], fTime[1], fTime[2]);
    gettime(fTime[3], fTime[4], fTime[5]);
    format(logData, sizeof logData, "[%02d/%02d/%04d || %02d:%02d:%02d]%s(%d) connected!\r\n", fTime[2], fTime[1], fTime[0], fTime[3], fTime[4], fTime[5], name, playerid);
    fwrite(Log, logData);
    fclose(Log);
    #endif
   
    #if NameKick == true
    for(new i; i != sizeof(ForbiddenNames); i ++ )
    {
        if(!strcmp(name, ForbiddenNames[i], true))
        {
            new kstring[256];
            format(kstring,sizeof(kstring),"Player %s (ID:%d) got kicked from server! (Reason: Forbidden name)",name,playerid);
            SendClientMessageToAll(red,kstring);
            NameKickLog(playerid);
            Kick(playerid);
            return 1;
        }
    }
    #endif
    return 1;
}
Reply
#4

Servaru e RP sau STUNT/DM ETC. Si nu mi-ai spus cum schimb id dialog .Iti recomand sa iei un gm de pe net sa stergi onayerconect si sa iei de la ala
Reply
#5

Quote:
Originally Posted by POL_george
Посмотреть сообщение
Servaru e RP sau STUNT/DM ETC. Si nu mi-ai spus cum schimb id dialog .Iti recomand sa iei un gm de pe net sa stergi onayerconect si sa iei de la ala
Si te astepti sa mearga ? )

PS: Variabilele in care stochezi tu nivelul de admin le resetezi la onplayerdisconnect?
Reply
#6

Server-ul e de Stunt.
Eu ti-am dat add si inca astept sa dai accept o.O
----

Nu, nu se reseteaza.

Uite-l:

pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
    #if ConnectMessages == true
    new LeaveMessage[256];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    switch(reason)
    {
        case 0: format(LeaveMessage,sizeof(LeaveMessage), "* Player %s (ID:%d) left the server! (Reason: Timeout) *", name,playerid);
        case 1: format(LeaveMessage,sizeof(LeaveMessage), "* Player %s (ID:%d) left the server! (Reason: Leaving) *", name,playerid);
        case 2: format(LeaveMessage,sizeof(LeaveMessage), "* Player %s (ID:%d) left the server! (Reason: Kicked/Banned) *", name,playerid);
    }
    SendClientMessageToAll(COLOR_GREY, LeaveMessage);
    new File:Log = fopen(disconnectPATH, io_append);
    new logData[128];
    new fTime[6];
    getdate(fTime[0], fTime[1], fTime[2]);
    gettime(fTime[3], fTime[4], fTime[5]);
    format(logData, sizeof logData, "[%02d/%02d/%04d || %02d:%02d:%02d]%s(%d) disconnected!\r\n", fTime[2], fTime[1], fTime[0], fTime[3], fTime[4], fTime[5], name, playerid);
    fwrite(Log, logData);
    fclose(Log);
    #endif
   
    if(PlayerAcc[playerid][TempLevel] >= 1)
    {
        format(File,sizeof(File),"/fAdmin/Players/%s.txt",name);
        if(dini_Exists(File))
        {
            PlayerAcc[playerid][AdminLevel] = 0;
            PlayerAcc[playerid][TempLevel] = 0;
            dini_IntSet(File,"AdminLevel",0);
        }
        return 1;
    }
   
    if(PlayerAcc[playerid][TempVip] >= 1)
    {
        format(File,sizeof(File),"/fAdmin/Players/%s.txt",name);
        if(dini_Exists(File))
        {
            PlayerAcc[playerid][VIPlevel] = 0;
            PlayerAcc[playerid][TempVip] = 0;
            dini_IntSet(File,"VIPlevel",0);
        }
        return 1;
    }
    return 1;
}
Reply
#7

Pai pentru a rezolva problema, trebuie sa faci o functie care reseteaza toate variabilele jucatorului la deconectarea acestuia.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)