07.03.2017, 14:15
Olб galera bom dia a todos, bom estou aqui com um pensamento diferente em que podemos ajudar bastante pessoas.
Deixei todos os meus projetos SA-MP de lado nгo pretendo mais participar de projetos.
Porйm eu estava tentando criar um sistema de Ranking em DOF2 para postar aqui na Fуrum SA-MP para o pessoal pois muitas pessoas pedem e nгo achei nenhum sistema que funcione!
Entгo estou aqui atravйs desta publicaзгo mostrando a base que eu criei e eu queria a ajuda de todos para deixar o sistema funcional e quando a finalizaзгo do sistema e a constataзгo de 100% funcional eu irei pegar o nome de todos que ajudaram e colocar na publicaзгo principal.
Bom jб vou deixar bem claro que eu nгo quero reputaзгo nem nada do tipo pois isto pra mim nгo passa de status de internet.
Tenho 20 anos jб tenho meu carro, minha casa jб sou casado a 4 anos e nгo ligo para isto, estou apenas com o intuito de ajudar o pessoal.
Bom quem estiver interessado em ajudar abaixo tem o cуdigo base que eu fiz porйm ele possui uns bugs entгo ao invйs de eu explicar pegue o cуdigo copie e execute ele que vocк que entende se souber de uma soluзгo poste aqui para nos ajudar e assim agradeзo a colaboraзгo de todos!
Atenciosamente Leonardo Bradoks.
Para funcionamento do mesmo й necessбrio criar as pastas abaixo:
OBS: Existem alguns bugs no sistema de registro e login pois eu estava a muito tempo sem programar e sem internet no computador entгo desconsidere.
Deixei todos os meus projetos SA-MP de lado nгo pretendo mais participar de projetos.
Porйm eu estava tentando criar um sistema de Ranking em DOF2 para postar aqui na Fуrum SA-MP para o pessoal pois muitas pessoas pedem e nгo achei nenhum sistema que funcione!
Entгo estou aqui atravйs desta publicaзгo mostrando a base que eu criei e eu queria a ajuda de todos para deixar o sistema funcional e quando a finalizaзгo do sistema e a constataзгo de 100% funcional eu irei pegar o nome de todos que ajudaram e colocar na publicaзгo principal.
Bom jб vou deixar bem claro que eu nгo quero reputaзгo nem nada do tipo pois isto pra mim nгo passa de status de internet.
Tenho 20 anos jб tenho meu carro, minha casa jб sou casado a 4 anos e nгo ligo para isto, estou apenas com o intuito de ajudar o pessoal.
Bom quem estiver interessado em ajudar abaixo tem o cуdigo base que eu fiz porйm ele possui uns bugs entгo ao invйs de eu explicar pegue o cуdigo copie e execute ele que vocк que entende se souber de uma soluзгo poste aqui para nos ajudar e assim agradeзo a colaboraзгo de todos!
Atenciosamente Leonardo Bradoks.
PHP код:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include <a_samp>
#include <DOF2>
#include <sscanf2>
#define PASTA_CONTAS "Contas/%s.ini"
#define PASTA_RANKING "Ranking/%d.ini"
#define MAX_RANKING 500
#define INIT_RANKING 1
#define DIALOG_LOGIN 1
#define DIALOG_REGISTRO 2
forward RankingUpdate();
forward SalvarDados();
main()
{
print("\n----------------------------------");
print(" Sistema de Ranking Ligado");
print("----------------------------------\n");
}
public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
SetTimer("RankingUpdate", 10000, true);
return 1;
}
public OnGameModeExit()
{
DOF2_Exit();
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
if(DOF2_FileExists(PlayerConta(playerid))) {
new string[155];
format(string, sizeof(string), "%s bem vindo(a) novamente logue-se em sua conta !", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Faзa Login em sua Conta", string, "Entrar", "Sair");
}
else
{
new string[155];
format(string, sizeof(string), "%s bem vindo(a) registre-se em sua conta !", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registre a sua Conta para jogar !", string, "Registrar", "Sair");
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/money", true) == 0) {
GivePlayerMoney(playerid, 500);
SendClientMessage(playerid, -1, "500R$ setado!");
return 1;
}
if(strcmp(cmdtext, "/money2", true) == 0) {
GivePlayerMoney(playerid, 600);
SendClientMessage(playerid, -1, "600R$ setado!");
return 1;
}
return 0;
}
public SalvarDados() {
new aname[MAX_PLAYER_NAME], file[50], file2[50], table[50];
print("Entrei na salvar dados");
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
GetPlayerName(i, aname, sizeof(aname));
for(new a = INIT_RANKING; a < MAX_RANKING; a++) {
format(file, sizeof(file), PASTA_RANKING, a);
if(DOF2_FileExists(file)) {
printf("SVD - conectado pasta %s", file);
if(!strcmp(aname, DOF2_GetString(file, "Nome"), false)) {
printf("SVD - conectado pasta %s NOME NAO SAO IGUAIS", file);
if(GetPlayerMoney(i) < DOF2_GetInt(file, "Dinheiro") || GetPlayerMoney(i) > DOF2_GetInt(file, "Dinheiro")) {
DOF2_SetInt(file, "Dinheiro", GetPlayerMoney(i));
DOF2_SaveFile();
printf("Dinheiro Atualizado");
}
}
}
else if(!DOF2_FileExists(file) )
{
printf("SVD - entrei na pasta %s que nao existe", file);
format(file2, sizeof(file2), PASTA_RANKING, (a-1));
printf("SVD - conectado na pasta %s que nao existe", file2);
if(!strcmp(aname, DOF2_GetString(file2, "Nome"), false)) {
printf("Diz que os nomes sao iguais");
}
else
{
format(table, sizeof(table), PASTA_RANKING, 1);
if(!DOF2_FileExists(table) || strcmp(DOF2_GetString(file, "Nome"), DOF2_GetString(file2, "Nome"), true)) {
printf("diz que sao iguais e o nome e %s", aname);
printf("na pasta esta salvo o nome %s", DOF2_GetString(file2, "Nome"));
DOF2_CreateFile(file);
DOF2_SetString(file, "Nome", aname);
DOF2_SetInt(file, "Dinheiro", GetPlayerMoney(i));
DOF2_SaveFile();
printf("Conta criada Dinheiro Atualizado");
}
}
}
}
}
}
return 1;
}
public RankingUpdate() {
new file[50], file2[50], string[155];
for(new idranking = INIT_RANKING; idranking < MAX_RANKING; idranking++) {
new valDin, valDin2, strNome[24], strNome2[24];
format(file, sizeof(file), PASTA_RANKING, idranking);
format(file2, sizeof(file2), PASTA_RANKING, idranking+1);
if(DOF2_FileExists(file2) && DOF2_FileExists(file)) {
printf(file2);
printf(file);
valDin = DOF2_GetInt(file, "Dinheiro");
valDin2 = DOF2_GetInt(file2, "Dinheiro");
strcat(strNome, DOF2_GetString(file, "Nome"));
strcat(strNome2, DOF2_GetString(file2, "Nome"));
if(valDin2 > valDin) {
printf("%d", valDin);
printf("%d", valDin2);
DOF2_RemoveFile(file);
DOF2_RemoveFile(file2);
DOF2_CreateFile(file);
DOF2_SetString(file, "Nome", strNome2);
DOF2_SetInt(file, "Dinheiro", valDin2);
DOF2_SaveFile();
DOF2_CreateFile(file2);
DOF2_SetString(file2, "Nome", strNome);
DOF2_SetInt(file2, "Dinheiro", valDin);
DOF2_SaveFile();
format(string, sizeof(string), "[RANKING] %s subiu para a %d posiзгo e passou %s que caiu no ranking para a %d posiзгo!", DOF2_GetString(file2, "Nome"), idranking, DOF2_GetString(file, "Nome"), (idranking+1));
SendClientMessageToAll(-1, string);
}
}
}
print("Fim da Loop salvei os dados");
SalvarDados();
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
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 OnPlayerText(playerid, text[])
{
return 1;
}
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 OnPlayerUpdate(playerid)
{
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;
}
stock PlayerConta(playerid) {
new arquivo[90];
format(arquivo, sizeof(arquivo), PASTA_CONTAS, PlayerName(playerid));
return arquivo;
}
stock PlayerName(playerid) {
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, sizeof(aname));
return aname;
}
Код:
Contas Ranking