[problema] Salvamento ini
#1

Estou a fazer um sistema de moderadores para o meu servidor desta forma:

pawn Код:
new Moderadores[MAX_PLAYERS];

public OnGameModeInit()

pawn Код:
if(!fexist("Nivel/moderadores.ini")) dini_Create("Nivel/moderadores.ini");
public OnPlayerSpawn(playerid)

pawn Код:
if(dini_Isset("Nivel/moderadores.ini",PlayerName(playerid))) Moderadores[playerid] = Moderadores[playerid];(playerid,dini_Int("Nivel/moderadores.ini",PlayerName(playerid)));

Para guardar:

pawn Код:
if(strcmp(cmd, "/darmoderador", true) == 0)
{
    new tmp[128];
    tmp = strtok(cmdtext, idx);
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFFFFFFFF,"Comando reservado apenas para Administradores");
    if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Uso do Comando: /darmoderador ID");
    if(!IsPlayerConnected(strval(tmp))) return SendClientMessage(playerid, 0xFFFFFFFF, "Jogador invalido");
    Moderadores[strval(tmp)] = 1;
    SendClientMessage(strval(tmp), 0xFFFFFFFF, "{FF0000}Aviso:{A0D197} Agora es moderador do Patos-Tugas {FF0000}/moderador!");
    SendClientMessage(playerid, TEAM_COMERCIO_COLOR, "{FF0000}Aviso:{A0D197} Desde moderaзгo a um jogdor!");
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    new pName1[MAX_PLAYER_NAME];
    GetPlayerName(strval(tmp),pName1,sizeof(pName1));
    new string[248];
    format(string,sizeof(string),"{FFB01F}O administrador{FFEA00}%s{FFB01F} colocou o{FFEA00} %s como moderador!",pName,pName1);
    SendClientMessageToAll(TEAM_COMERCIO_COLOR, string);
    dini_IntSet("Nivel/moderadores.ini",PlayerName(strval(tmp)),Moderadores[strval(tmp)]);
    return 1;
}

O problema й o seguinte:

Quando dou o nivel de moderador ao jogador Fernando (fernado й ficticio) este consegue utilizar os comandos de moderador sem problema, se ele sair e voltar a entrar consegue utilizar na mesma sem problemas, mas se eu reniciar o servidor mesmo estando dentro da pasta "scriptfiles" "niveis" e no ficheiro "moderador" "Fernando=1" este nao consegue utilizar os comandos de moderador, e tenho de voltar a fazer o comando /darmoderador.

Acho que o problema esta na leitura do ficheiro "moderadores"

Alguem me ajuda ??
Reply
#2

Dini nгo й bom, jб tб muito ultrapassado, fiz pra vocк usando DOF2, deve funcionar .

public OnGameModeInit()
pawn Код:
if(!fexist("Nivel/moderadores.ini")) { DOF2_CreateFile("Nivel/moderadores.ini");
public OnPlayerSpawn(playerid)
pawn Код:
if(DOF2_IsSet("Nivel/moderadores.ini",PlayerName(playerid))) Moderadores[playerid] = Moderadores[playerid];(playerid,DOF2_GetInt("Nivel/moderadores.ini",PlayerName(playerid)));
Para guardar:
pawn Код:
if(strcmp(cmd, "/darmoderador", true) == 0)
{
    new tmp[128];
    tmp = strtok(cmdtext, idx);
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFFFFFFFF,"Comando reservado apenas para Administradores");
    if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Uso do Comando: /darmoderador ID");
    if(!IsPlayerConnected(strval(tmp))) return SendClientMessage(playerid, 0xFFFFFFFF, "Jogador invalido");
    Moderadores[strval(tmp)] = 1;
    SendClientMessage(strval(tmp), 0xFFFFFFFF, "{FF0000}Aviso:{A0D197} Agora es moderador do Patos-Tugas {FF0000}/moderador!");
    SendClientMessage(playerid, TEAM_COMERCIO_COLOR, "{FF0000}Aviso:{A0D197} Desde moderaзгo a um jogdor!");
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    new pName1[MAX_PLAYER_NAME];
    GetPlayerName(strval(tmp),pName1,sizeof(pName1));
    new string[248];
    format(string,sizeof(string),"{FFB01F}O administrador{FFEA00}%s{FFB01F} colocou o{FFEA00} %s como moderador!",pName,pName1);
    SendClientMessageToAll(TEAM_COMERCIO_COLOR, string);
    DOF2_SetInt("Nivel/moderadores.ini",PlayerName(strval(tmp)),Moderadores[strval(tmp)]);
    return 1;
}
Bota no Topo do GM junto com as outras definiзхes de includes:
pawn Код:
#include <DOF2>
E verifique se a tem na pasta includes do pawno.

Teste!
Reply
#3

Obrigado amigo ! deu um warning mas ja esta resolvido.

Agora o problema й que nao grava no ficheiro "moderadores" eu faзo o comando /darmoderador e devia guardar logo mas nao grava nada!

sabe o que podera ser ?
Reply
#4

Veja:
pawn Код:
DOF2_SetInt("Nivel/moderadores.ini",PlayerName(strval(tmp)),Moderadores[strval(tmp)]);
Irб salvar no ficheiro "Nivel/moderadores.ini", basta alterar ao seu gosto .
Reply
#5

Coloca:

pawn Код:
DOF2_Exit();   // no OnGameModeExit ou se for filterscript em OnFilterScriptExit
Teste .
Reply
#6

Sim amigo eu sei que tem de salvar em "Nivel/moderadores.ini", , o ficheiro moderadores.ini й criado eu vejo ele.

So que nao grava nada la dentro quando faзo /darmoderador. e nao sei porque :S


edit: ja meti isso no OnGameModeExit, foi o tal warning que deu ! mas o problema continua
Reply
#7

Й sу por
pawn Код:
DOF2_SaveFile();
Debaixo de
pawn Код:
DOF2_SetInt("Nivel/moderadores.ini",PlayerName(strval(tmp)),Moderadores[strval(tmp)]);
'-'
Reply
#8

Primeiro ponto resolvido foi so mesmo colocar o saveFile, agora quando entro nao da o load .

tenho de colocar DOF2_LoadFile(); ou algo do genero ?
Reply
#9

Tenta colocar isso aqui:

pawn Код:
if(!fexist("Nivel/moderadores.ini")) { DOF2_CreateFile("Nivel/moderadores.ini");
Tambйm em OnPlayerConnect.
Reply
#10

Se colocar assim da-me muitos erros penso que seja por estar aberto {
coloquei assim no OnPlayerConnect

pawn Код:
if(!fexist("Nivel/moderadores.ini")) { DOF2_CreateFile("Nivel/moderadores.ini");}
mas mesmo sem as {} ou sem{} nao faz o load !
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)