27.05.2012, 20:58
Eu tenho uma dificuldade com Dini, pretendo aprender melhor sobre banco de dados, sei que Dini nao й bom, mas por enquanto quero entender melhor como funciona...
Eu tentei fazer um Salvamento aki, Nao sei se esta correto, mas ele esta salvando errado..
Assim, eu dou o Admin para o Player com o comando /daradmin
Na pasta Scriptfiles, ele salva errado, e nao salva o nome do jogador...
Esta salvando assim
e antes de azio,1 esta um simbolo quadrado pequeno...
Ai no jogo quando eu digito, /infoadm, mostra a Vaga e aparece azio Cargo 0 , sendo que era pra ser o nome do jogador que dei o admin e o lvl...
Alguem pode ajudar ?
Eu tentei fazer um Salvamento aki, Nao sei se esta correto, mas ele esta salvando errado..
Assim, eu dou o Admin para o Player com o comando /daradmin
pawn Код:
newCmd:daradmin(playerid, params[]) //Admin LVL == 1342
{
if(IsPlayerConnected(playerid))
{
new para1, level;
if(PlayerInfo[playerid][pAdmin] < 1342)
return SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo tem autorizaзгo para usar esse comando.");
AdmsVaga();
if(VagaSobrando == 0)
return SendClientMessage(playerid, COLOR_GRAD1, "Nгo hб mais vagas na lista use /limparadm primeiro.");
if(sscanf(params, "ud", para1, level))
return SendClientMessage(playerid, COLOR_GRAD2, "USE: /daradmin [id] [Nivel]");
if(level == 0)
return SendClientMessage(playerid, COLOR_GRAD2, "USE: /limparadmin para limpar uma vaga");
if(!IsPlayerConnected(para1))
return SendClientMessage(playerid, COLOR_GRAD2, "O player nгo esta Online!");
if(para1 != INVALID_PLAYER_ID)
{
if(PlayerInfo[playerid][pAdmin] != 1342 || PlayerInfo[para1][pAdmin] == 1342)
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo pode promover um Admin Poderoso/Scripter!");
format(Str, sizeof(Str), "O admin %s tentou te promover a nivel %d", PlayerName(playerid), level);
SendClientMessage(para1, COLOR_AZULBB, Str);
return 1;
}
format(Str, sizeof(Str), "Vocк foi promovido para level %d de Admin - Por %s", level, PlayerName(playerid));
SendClientMessage(para1, COLOR_LIGHTBLUE, Str);
format(Str, sizeof(Str), " Vocк promoveu o(a) %s Para o level %d de Admin.", PlayerName(para1), level);
SendClientMessage(playerid, COLOR_LIGHTBLUE, Str);
getdate(year, month, day);
gettime(hour,minute,second);
format(Str, sizeof(Str), "%s deu Admin nivel %d para %s [%d/%d/%d] бs [%d:%d:%d].", PlayerName(playerid), level, PlayerName(para1), day, month, year, hour, minute, second);
PAdminsLog(Str);
for(new i = 0; i < sizeof(AdmInfo); i++)
{
if(PlayerInfo[para1][pAdmin] > 0)
{
PlayerInfo[para1][pAdmin] = level;
break;
}
else if(AdmInfo[i][AdminVaga] == 0)
{
PlayerInfo[para1][pAdmin] = level;
AdmInfo[i][gMembro] = para1;
AdmInfo[i][AdminVaga] = 1;
SaveAdm();
break;
}
}
}
}
return 1;
}
pawn Код:
forward AdmsVaga();
public AdmsVaga()
{
new storedcopname[64];
new File: file = fopen("Configs/Admins.cfg", io_read);
if (file)
{
new valtmp[MAX_PLAYER_NAME];
while (fread(file, valtmp) > 0)
{
strmid(storedcopname, valtmp, 0, strlen("Vazio"), 255);
if ((strcmp(storedcopname, "Vazio", true, strlen("Vazio")) == 0) && (strlen("Vazio") == strlen(storedcopname)))
{
fclose(file);
VagaSobrando = 1;
return 1;
}
}
}
fclose(file);
VagaSobrando = 0;
return 0;
}
forward SaveAdm();
public SaveAdm()
{
new idx;
new File: file2;
while (idx < sizeof(AdmInfo))
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%s,%d\n",AdmInfo[idx][gMembro],AdmInfo[idx][AdminVaga]);
if(idx == 0)
{
file2 = fopen("Configs/Admins.cfg", io_write);
}
else
{
file2 = fopen("Configs/Admins.cfg", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}
return 1;
}
Esta salvando assim
Код:
azio,1
Ai no jogo quando eu digito, /infoadm, mostra a Vaga e aparece azio Cargo 0 , sendo que era pra ser o nome do jogador que dei o admin e o lvl...
Alguem pode ajudar ?