06.12.2011, 13:17
Seguinte, Eu peguei esse sistema de salvamento aqui no forum mesmo, e coloquei no meu GM, e atй adicionei o aproveitamento, mais nгo ta salvando, tipo se eu fexo o sv e abro dnv perde tudo, queria saber oq tem de errado.
obs. ele da 2 warning, talvez seja isso
Desde jб Agradeзo
pawn Код:
#include <a_samp>
#include <Dini>
#define FILTERSCRIPT
#define REGISTRO 1
#define LOGIN 2
#define CONTAS "Contas/%s.ini"
new Matou[MAX_PLAYERS];
new Morreu[MAX_PLAYERS];
new Logou[MAX_PLAYERS];
new Aprov[MAX_PLAYERS];
public OnFilterScriptInit()
{
return 1;
}
public OnFilterScriptExit()
{
for(new i=0; i<MAX_PLAYERS; i++)
SalvarPlayer(i);
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
return 1;
}
public OnPlayerConnect(playerid)
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[100];
format(String, sizeof(String), CONTAS, Nome);
if(!dini_Exists(String))
{
format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Nгo Registrado\n\n{FFFFFF} Digite Uma Senha Para Continuar", Nome);
ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_INPUT, "Registro", String, "Registrar", "Cancelar");
}
else
{
format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Registrado\n\n{FFFFFF} Digite Sua Senha Para Logar", Nome);
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Registro", String, "Logar", "Cancelar");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SalvarPlayer(playerid);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(IsPlayerConnected(killerid))
{
Matou[killerid]++;
}
Morreu[playerid]++;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/status", cmdtext, true, 8) == 0)
{
Status(playerid);
return 1;
}
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == REGISTRO)
{
if(response)
{
if(!strlen(inputtext))
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[100];
format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Nгo Registrado\n\n{FFFFFF} Digite Uma Senha Para Continuar", Nome);
ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_INPUT, "Registro", String, "Registrar", "Cancelar");
SendClientMessage(playerid,0x1E90FFAA,"Senha invalida, digite uma senha vбlida");
return 1;
}
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[100];
format(String, sizeof(String), CONTAS, Nome);
dini_Create(String);
dini_Set(String,"Senha",inputtext);
dini_IntSet(String,"Dinheiro",0);
dini_IntSet(String,"Vida", 100);
dini_IntSet(String,"Colete", 100);
dini_IntSet(String,"Matou",0);
dini_IntSet(String,"Morreu",0);
dini_IntSet(String,"Logou",0);
dini_IntSet(String,"Aprov",0);
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Login", "{1E90FF}Pronto vocк se registrou agora digite Sua Senha Para Logar-Se", "Logar", "Cancelar");
return 1;
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Vocк Foi Kickado Porque Nгo Quis Se Registrar!!");
Kick(playerid);
return 1;
}
}
if(dialogid == LOGIN)
{
if(response)
{
if(!strlen(inputtext))
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[100];
format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Registrado\n\n{FFFFFF} Digite Sua Senha Para Logar", Nome);
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Registro", String, "Logar", "Cancelar");
SendClientMessage(playerid,0x1E90FFAA,"Senha Incorreta !");
return 1;
}
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[100];
format(String, sizeof(String), CONTAS, Nome);
if(!strcmp(inputtext,dini_Get(String,"Senha"),false))
{
SetarPlayer(playerid);
Logou[playerid]++;
SendClientMessage(playerid,0x00FF00AA,"Vocк Foi Logado Com Sucesso > Escolha Sua Skin!");
return 1;
}
else
{
SendClientMessage(playerid,0x00FF00AA,"Senha incorreta digite-a novamente");
format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Registrado\n\n{FFFFFF} Digite Sua Senha Para Logar", Nome);
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Registro", String, "Logar", "Cancelar");
}
return 1;
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Vocк nгo quis se logar, por este motivo serб Kickado");
Kick(playerid);
return 1;
}
}
return 1;
}
SalvarPlayer(playerid)
{
new Float:Vida;
new Float:Colete;
GetPlayerHealth(playerid, Vida);
GetPlayerArmour(playerid, Colete);
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[50];
format(String, sizeof(String), CONTAS, Nome);
dini_IntSet(String,"Dinheiro", GetPlayerMoney(playerid));
dini_FloatSet(String,"Vida", Vida);
dini_FloatSet(String,"Colete", Colete);
dini_IntSet(String,"Matou", Matou[playerid]);
dini_IntSet(String,"Morreu", Morreu[playerid]);
dini_IntSet(String,"Logou", Logou[playerid] = Float:Matou[playerid]/Float:Morreu[playerid]);
dini_IntSet(String,"Aprov", Aprov[playerid]);
return 1;
}
SetarPlayer(playerid)
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[50];
format(String, sizeof(String), CONTAS, Nome);
GivePlayerMoney(playerid, dini_Int(String,"Dinheiro"));
SetPlayerHealth(playerid, dini_Int(String,"Vida"));
SetPlayerArmour(playerid, dini_Int(String,"Colete"));
Matou[playerid] = dini_Int(String, "Matou");
Morreu[playerid] = dini_Int(String, "Morreu");
Logou[playerid] = dini_Int(String, "Logou");
Aprov[playerid] = dini_Int(String, "Aprov");
return 1;
}
Status(playerid)
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[128];
SendClientMessage(playerid, 0xFF0000AA, "================================================");
format(String, sizeof(String),"Status De %s",Nome);
SendClientMessage(playerid, 0xFFFF00AA,String);
format(String, sizeof(String),"Dinheiro: %d", GetPlayerMoney(playerid));
SendClientMessage(playerid, 0x1E90FFAA,String);
format(String, sizeof(String),"Matou: %d",Matou[playerid]);
SendClientMessage(playerid, 0x1E90FFAA,String);
format(String, sizeof(String),"Morreu: %d",Morreu[playerid]);
SendClientMessage(playerid, 0x1E90FFAA,String);
format(String, sizeof(String),"Vocк Jб Logou %d Vezes Neste Servidor",Logou[playerid]);
SendClientMessage(playerid, 0x1E90FFAA,String);
format(String, sizeof(String),"Aproveitamento: %0.1f",Float:Matou[playerid]/Float:Morreu[playerid]);
SendClientMessage(playerid, 0x1E90FFAA,String);
SendClientMessage(playerid, 0xFF0000AA, "================================================");
return 1;
}
obs. ele da 2 warning, talvez seja isso
Код:
K:\Samp\Novo GM\filterscripts\Registro.pwn(48) : warning 217: loose indentation K:\Samp\Novo GM\filterscripts\Registro.pwn(172) : warning 213: tag mismatch Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 2 Warnings.