[problema] Salvamento ini -
Rick_DR - 07.05.2012
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 ??
Re: [problema] Salvamento ini -
sanalex - 07.05.2012
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:
E verifique se a tem na pasta includes do pawno.
Teste!
Re: [problema] Salvamento ini -
Rick_DR - 07.05.2012
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 ?
Re: [problema] Salvamento ini -
CidadeNovaRP - 07.05.2012
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
.
Re: [problema] Salvamento ini -
sanalex - 07.05.2012
Coloca:
pawn Код:
DOF2_Exit(); // no OnGameModeExit ou se for filterscript em OnFilterScriptExit
Teste
.
Re: [problema] Salvamento ini -
Rick_DR - 07.05.2012
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
Re: [problema] Salvamento ini -
humildadeforever - 07.05.2012
Й sу por
Debaixo de
pawn Код:
DOF2_SetInt("Nivel/moderadores.ini",PlayerName(strval(tmp)),Moderadores[strval(tmp)]);
'-'
Re: [problema] Salvamento ini -
Rick_DR - 07.05.2012
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 ?
Re: [problema] Salvamento ini -
sanalex - 07.05.2012
Tenta colocar isso aqui:
pawn Код:
if(!fexist("Nivel/moderadores.ini")) { DOF2_CreateFile("Nivel/moderadores.ini");
Tambйm em OnPlayerConnect.
Re: [problema] Salvamento ini -
Rick_DR - 07.05.2012
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 !