[ajuda] sistema de level
#1

Bom galera jб tentei usar o fs do los mais para o meeu gm n serve. Pq meu gm nгo e de RPG
Se alguйm podesse me ajudar a desenvolver um q a cada 15 min jogada o player ganha. 1 de respeito
E quando juntasse a 10 respeito ele Upa de level
Eu jб tentei vбrios ou ele buga o gm ou ele n da o respeito

Obrigado desde jб
Reply
#2

Tenta ae:

PHP код:
#include    <   a_samp  >
#include    <   dof2    >
#include    <   zcmd    >
#include    <   sscanf  >
#include    <   foreach >

new
    
Respeito[MAX_PLAYERS],
    
RespeitoReq[MAX_PLAYERS],
    
Level[MAX_PLAYERS],

#define     SCM                         SendClientMessage
#define     SCMTA                       SendClientMessageToAll

#define     TempoPD                     15*60000 // 15m


Payday();
SalvarLevel(playerid);
CarregarLevel(playerid);

public 
OnFilterScriptInit()
{
    
SetTimer("Payday"TempoPDtrue);
    return 
1;
}

public 
OnFilterScriptExit()
{
    
DOF2_Exit();
    return 
1;
}

public 
Payday()
{
    foreach(
Playeri)
     {
          
SalvarLevel(i);
           
SCMTA(-1"Hora do payday!");
        
Respeito[i]++;
        if(
RespeitoReq[i] == Respeito[i])
        {
            
Level[i]++;
             
Respeito[i] = 0;
              
RespeitoReq[i] = Level[i]*4;
               
SCM(i, -1"Level UP!");
        }
     }
    return 
1;
}

public 
OnPlayerSpawn(playerid)
{
    
CarregarLevel(playerid);
    return 
1;
}

public 
SalvarLevel(playerid)
{
    new 
arquivo[128]; format(arquivo128"Level/%s.txt"GetPlayerNameEx(playerid));
    if(!
DOF2_FileExists(arquivo)) return DOF2_CreateFile(arquivo);
    
DOF2_SetInt(arquivo"Level"Level[playerid]);
    
DOF2_SetInt(arquivo"Respeito"Respeito[playerid]);
    
DOF2_SetInt(arquivo"Respeito Requerido"RespeitoReq[playerid]);
    
DOF2_SaveFile();
    return 
1;
}

public 
CarregarLevel(playerid)
{
    new 
arquivo[128]; format(arquivo128"Level/%s.txt"GetPlayerNameEx(playerid));
    if(!
DOF2_FileExists(arquivo)) return 1;
    
Level[playerid] = (playeridDOF2_GetInt(arquivo"Level"));
    
Respeito[playerid] = (playeridDOF2_GetInt(arquivo"Respeito"));
    
RespeitoReq[playerid] = (playeridDOF2_GetInt(arquivo"Respeito Requerido"));
    return 
1;
}

CMD:status(playerid)
{
    new 
string[128];
    
format(string128"Level: %d   |   Respeito: %02d/%02d"Level[playerid], Respeito[playerid], RespeitoReq[playerid]);
    return 
SCM(playerid, -1string);
}

stock GetPlayerNameEx(playerid)
{
    new 
Nome[MAX_PLAYER_NAME]; GetPlayerName(playeridNomeMAX_PLAYER_NAME);
    return 
Nome;

Й o do Los mas eu sу editei algumas coisas pra vc, fiz rapidao agora e nгo testei porque preciso sair ;x
good luck
Reply
#3

Esse n serve eu ta tentei usa obg
Reply
#4

Pra min ele n ia servir.... Eu queria q a cada 15 min ele ganha 1respeito e quando juntasse 10 ele impasse de level
Reply
#5

pawn Код:
#include    <   a_samp  >
#include    <   dof2    >
#include    <   zcmd    >
#include    <   sscanf  >
#include    <   foreach >

new
    Respeito[MAX_PLAYERS],
    Level[MAX_PLAYERS];

#define     SCM                         SendClientMessage
#define     SCMTA                       SendClientMessageToAll

Payday();
SalvarLevel(playerid);
CarregarLevel(playerid);

public OnFilterScriptInit()
{
    SetTimer("Payday", 15*60000, true);
    return 1;
}

public OnFilterScriptExit()
{
    DOF2_Exit();
    return 1;
}

public Payday()
{
    foreach(Player, i)
    {
        SalvarLevel(i);
        SCMTA(-1, "Hora do payday!");
        Respeito[i]++;
        if(Respeito[i] == 10)
        {
            Level[i]++;
            Respeito[i] = 0;
            SCM(i, -1, "Level UP!");
        }
    }
    return 1;
}

public OnPlayerSpawn(playerid)
{
    CarregarLevel(playerid);
    return 1;
}

public SalvarLevel(playerid)
{
    new arquivo[128]; format(arquivo, 128, "Level/%s.txt", GetPlayerNameEx(playerid));
    if(!DOF2_FileExists(arquivo)) return DOF2_CreateFile(arquivo);
    DOF2_SetInt(arquivo, "Level", Level[playerid]);
    DOF2_SetInt(arquivo, "Respeito", Respeito[playerid]);
    DOF2_SaveFile();
    return 1;
}

public CarregarLevel(playerid)
{
    new arquivo[128]; format(arquivo, 128, "Level/%s.txt", GetPlayerNameEx(playerid));
    if(!DOF2_FileExists(arquivo)) return 1;
    Level[playerid] = (playerid, DOF2_GetInt(arquivo, "Level"));
    Respeito[playerid] = (playerid, DOF2_GetInt(arquivo, "Respeito"));
    return 1;
}

CMD:status(playerid)
{
    new string[128];
    format(string, 128, "Level: %d   |   Respeito: %02d/10", Level[playerid], Respeito[playerid]);
    return SCM(playerid, -1, string);
}

stock GetPlayerNameEx(playerid)
{
    new Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
    return Nome;
}
Reply
#6

Esse serб q funciona Pq eu tentei usa o seu e ele n upava...
Vou testar e dou um edit
Reply
#7

Quote:
Originally Posted by Caio_Freeze
Посмотреть сообщение
Esse serб q funciona Pq eu tentei usa o seu e ele n upava...
Vou testar e dou um edit
Se estб errado algo estб errado no seu GM, qualquer coisa faзa um debug =)
Reply
#8

N ele funciona perfeitamente mai vou testar o seu code eu dou um edit
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)