19.02.2012, 17:45
Galera to criando um gm do zero, e o sistema de registro to pegando de base o do godfather.... ai quando eu do /registrar eu registro de boa mas salva assim la...--Senha=/tgg…‘’Ћ№МAdmin=-- mas eu tinha colocado minha senha para ser 0 alguem me ajuda ai.....e o /logar n funfa tambem. 
Quem me ajudar ganha nome nos creeditos do gamemode..

Quem me ajudar ganha nome nos creeditos do gamemode..

PHP код:
#include a_samp
//~*~*~*~*~*~*~*~*~*~*~*~*~*~*~Cores~*~*~*~*~*~*~*~*~*~*~*~*~*~*~
#define COLOR_YELLOW 0xFFFF00AA
#define COR_ADMIN 0xFF34B3F6
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_GRAD1 0xB4B5B7FF
#define COLOR_GRAD2 0xBFC0C2FF
#define COLOR_GRAD3 0xCBCCCEFF
#define COLOR_GRAD4 0xD8D8D8FF
#define COLOR_GRAD5 0xE3E3E3FF
#define COLOR_GRAD6 0xF0F0F0FF
//~*~*~*~*~*~*~*~*~*~*~*~*~*~*~~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*
//~*~*~*~*~*~*~*~*~*~*~*~*~*~*~News~*~*~*~*~*~*~*~*~*~*~*~*~*~*~
new gPlayerLogged[MAX_PLAYERS];
new gPlayerLogTries[MAX_PLAYERS];
new gPlayerAccount[MAX_PLAYERS];
new motd[256];
//~*~*~*~*~*~*~*~*~*~*~*~*~*~*~~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*
//~*~*~*~*~*~*~*~*~*~*~*~*~*~*~Forward~*~*~*~*~*~*~*~*~*~*~*~*~*~
forward OnPlayerRegister(playerid, password[]);
forward OnPlayerLogin(playerid,password[]);
forward OnPlayerUpdate(playerid);
forward Encrypt(string[]);
forward ini_GetKey( line[] );
forward ini_GetValue( line[] );
//~*~*~*~*~*~*~*~*~*~*~*~*~*~*~~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*
enum pInfo
{
tSenha[128],
tAdmin,
tSkin,
};
new PlayerInfo[MAX_PLAYERS][pInfo];
new Peds[217][1] = {
{23},
{23},//TEAM_ADMIN
{286},{287},{228},{113},{120},{147},{294},{227},{61},{171},
{23},//CIVILIANS DOWN HERE
{248},{100},{256},{263},{262},{261},{260},{259},{258},{257},{256},{255},
{253},{252},{251},{249},{246},{245},{244},{243},{242},{241},{240},{239},
{238},{237},{236},{235},{234},{233},{232},{231},{230},{229},
{226},{225},{173},{174},{175},{224},{223},{222},{221},{220},{219},{218},
{217},{216},{215},{214},{213},{212},{211},{210},{209},
{207},{206},{205},{204},{203},{202},{201},{200},{199},{198},{197},{196},
{195},{194},{193},{192},{191},{190},{189},{185},{184},{183},
{182},{181},{180},{179},{178},{176},{172},{170},{168},{167},{162},
{161},{160},{159},{158},{157},{156},{155},{154},{153},{152},{151},
{146},{145},{144},{143},{142},{141},{140},{139},{138},{137},{136},{135},
{134},{133},{132},{131},{130},{129},{128},{254},{99},{97},{96},{95},{94},
{92},{90},{89},{88},{87},{85},{84},{83},{82},{81},{80},{79},{78},{77},{76},
{75},{73},{72},{69},{68},{67},{66},{64},{63},{62},{58},{57},{56},{55},
{54},{53},{52},{51},{50},{49},{45},{44},{43},{41},{39},{38},{37},{36},{35},
{34},{33},{32},{31},{30},{29},{28},{27},{26},{25},{24},{23},{22},{21},{20},
{19},{18},{17},{16},{15},{14},{13},{12},{11},{10},{1},{2},
{290},//ROSE
{291},//PAUL
{292},//CESAR
{293},//OGLOC
{187},
{296},//JIZZY
{297},//MADDOGG
{298},//CAT
{299}//ZERO
};
main()
{
print(" [BPL] Brasil PlayLife RolePlay");
print("_____________________");
print(" By: HP(Owner)");
print(" ");
}
public OnGameModeInit()
{
SetGameModeText("BPL RP Brasil");
format(motd, sizeof(motd), "Bem-vindo ao [BPL] RolePlay - Brasil PlayLife.");
return 1;
}
public OnGameModeExit()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
OnPlayerUpdate(i);
}
return 1;
}
public Encrypt(string[])
{
for(new x=0; x < strlen(string); x++)
{
string[x] += (3^x) * (x % 15);
if(string[x] > (0xff))
{
string[x] -= 256;
}
}
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
new string[128];
PlayerPlaySound(playerid, 1187, 0.0, 0.0, 0.0);
PlayerInfo[playerid][tSkin] = Peds[classid][0];
if (classid == 1)
{
format(string, sizeof(string), " ");
GameTextForPlayer(playerid,string,3500,6);
}
else if (classid == 2)
{
format(string, sizeof(string), " ");
GameTextForPlayer(playerid,string,3500,6);
}
else if (classid == 3)
{
format(string, sizeof(string), " ");
GameTextForPlayer(playerid,string,3500,6);
}
else if (classid == 4)
{
format(string, sizeof(string), " ");
GameTextForPlayer(playerid,string,3500,6);
}
else if (classid == 5)
{
format(string, sizeof(string), " ");
GameTextForPlayer(playerid,string,3500,6);
}
else if (classid == 6)
{
format(string, sizeof(string), " ");
GameTextForPlayer(playerid,string,3500,6);
}
else if (classid == 7)
{
format(string, sizeof(string), " ");
GameTextForPlayer(playerid,string,3500,6);
}
else if (classid == 8)
{
format(string, sizeof(string), " ");
GameTextForPlayer(playerid,string,3500,6);
}
else if (classid == 9)
{
format(string, sizeof(string), " ");
GameTextForPlayer(playerid,string,3500,6);
}
else if (classid == 10)
{
format(string, sizeof(string), " ");
GameTextForPlayer(playerid,string,3500,6);
}
else if (classid == 11)
{
format(string, sizeof(string), " ");
GameTextForPlayer(playerid,string,3500,6);
}
else
{
format(string, sizeof(string), "~y~> ~g~Seja Bem Vindo ~y~<");
GameTextForPlayer(playerid,string,3500,6);
}
return 1;
}
public OnPlayerConnect(playerid)
{
new string[128];
new plname[MAX_PLAYER_NAME];
gPlayerLogged[playerid] = 0; gPlayerLogTries[playerid] = 0; gPlayerAccount[playerid] = 0;
PlayerInfo[playerid][tAdmin] = 0;
format(string, sizeof(string), "%s.ini", plname);
if(fexist(string))
{
gPlayerAccount[playerid] = 1;
SendClientMessage(playerid, COLOR_WHITE, "Para voce poder logar use: /logar (Senha)");
return 1;
}
else
{
gPlayerAccount[playerid] = 0;
SendClientMessage(playerid,COLOR_YELLOW,"Seja bem vindo. Para se registrar em nosso servidor use: /registrar (Senha)");
SendClientMessage(playerid,COLOR_YELLOW,"Seu nome tera que ser RPG, Exemplo: Marcos_Vinicius...");
return 1;
}
}
public OnPlayerDisconnect(playerid, reason)
{
OnPlayerUpdate(playerid);
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
new string3[32];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
strmid(PlayerInfo[playerid][tSenha], password, 0, strlen(password), 255);
new var[32];
format(var, 32, "Senha=%s\n", PlayerInfo[playerid][tSenha]);fwrite(hFile, var);
format(var, 32, "Admin=%s\n", PlayerInfo[playerid][tAdmin]);fwrite(hFile, var);
fclose(hFile);
SendClientMessage(playerid, COLOR_YELLOW, "Conta registrada, agora vocк pode se logar (/logar [senha]).");
}
}
return 1;
}
public OnPlayerLogin(playerid,password[])
{
new tmp2[256];
new string2[64];
new playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string2, sizeof(string2), "%s.ini", playername2);
new File: UserFile = fopen(string2, io_read);
if ( UserFile )
{
new PassData[256];
new keytmp[256], valtmp[256];
fread( UserFile , PassData , sizeof( PassData ) );
keytmp = ini_GetKey( PassData );
if( strcmp( keytmp , "Senha" , true ) == 0 )
{
valtmp = ini_GetValue( PassData );
strmid(PlayerInfo[playerid][tSenha], valtmp, 0, strlen(valtmp)-1, 255);
}
if(strcmp(PlayerInfo[playerid][tSenha],password, true ) == 0 )
{
new Senha[ 256 ] , val[ 256 ];
new Data[ 256 ];
while ( fread( UserFile , Data , sizeof( Data ) ) )
{
Senha = ini_GetKey( Data );
if( strcmp( Senha , "Admin" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][tAdmin] = strval( val ); }
}
fclose(UserFile);
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "SERVER: Senha incorreta.");
fclose(UserFile);
gPlayerLogTries[playerid] += 1;
return 1;
}
gPlayerLogged[playerid] = 1;
SpawnPlayer(playerid);
format(tmp2, sizeof(tmp2), "~w~Bem-vindo ~n~~y~ %s", playername2);
GameTextForPlayer(playerid, tmp2, 5000, 1);
SendClientMessage(playerid, COLOR_YELLOW, motd);
}
return 1;
}
public OnPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid])
{
new string3[32];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
new var[32];
format(var, 32, "Senha=%s\n", PlayerInfo[playerid][tSenha]);fwrite(hFile, var);
format(var, 32, "Admin=%s\n", PlayerInfo[playerid][tAdmin]);fwrite(hFile, var);
fclose(hFile);
}
}
}
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new sendername[MAX_PLAYER_NAME];
new string[128];
new idx;
new tmp[256];
if (strcmp("/registrar", cmdtext, true, 10) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 1)
{
SendClientMessage(playerid, COLOR_WHITE, "SERVER: Vocк jб estб registrado.");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s.ini", sendername);
new File: hFile = fopen(string, io_read);
if (hFile)
{
SendClientMessage(playerid, COLOR_YELLOW, "Este Nome jб estб registrado, por favor, escolha outro.");
fclose(hFile);
return 1;
}
new tmppass[64];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Use: /registrar [senha]");
return 1;
}
strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
Encrypt(tmppass);
OnPlayerRegister(playerid,tmppass);
}
return 1;
}
if (strcmp("/logar", cmdtext, true, 10) == 0)
{
if(IsPlayerConnected(playerid))
{
new tmppass[64];
if(gPlayerLogged[playerid] == 1)
{
SendClientMessage(playerid, COLOR_WHITE, "SERVER: Vocк jб estб logado.");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "USE: /logar [senha]");
return 1;
}
strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
Encrypt(tmppass);
OnPlayerLogin(playerid,tmppass);
}
return 1;
}
if (strcmp("/admins", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid, COR_ADMIN, "*** Admins Online:");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1)
{
if(PlayerInfo[i][tAdmin] > 0)
{
if(PlayerInfo[i][tAdmin] >= 1 && PlayerInfo[i][tAdmin] < 5)
{
new msg[128];
GetPlayerName(i, sendername, sizeof(sendername));
format(msg, sizeof(msg), "Admin: (%s) Nivel: (%d)", sendername, PlayerInfo[i][tAdmin]);
SendClientMessage(playerid, COLOR_GRAD1, msg);
}
else if(PlayerInfo[i][tAdmin] == 4000)
{
new msg[128];
GetPlayerName(i, sendername, sizeof(sendername));
format(msg, sizeof(msg), "Admin: (%s) Nivel: (MASTER)", sendername, PlayerInfo[i][tAdmin]);
SendClientMessage(playerid, COLOR_GRAD1, msg);
}
else if(PlayerInfo[i][tAdmin] == 5000)
{
new msg[128];
GetPlayerName(i, sendername, sizeof(sendername));
format(msg, sizeof(msg), "Admin: (%s) Nivel: (DONO)", sendername, PlayerInfo[i][tAdmin]);
SendClientMessage(playerid, COLOR_GRAD1, msg);
}
}
}
}
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
stock ini_GetKey( line[] )
{
new keyRes[256];
keyRes[0] = 0;
if ( strfind( line , "=" , true ) == -1 ) return keyRes;
strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
return keyRes;
}
stock ini_GetValue( line[] )
{
new valRes[256];
valRes[0]=0;
if ( strfind( line , "=" , true ) == -1 ) return valRes;
strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
return valRes;
}