[FilterScript] Sistema Gold [Base]
#1

Ola!

Esta FS um pedido de matheus575.

Segue comigo
Quote:
Originally Posted by matheus575
Посмотреть сообщение
pedido : Sistema de gold
Comentбrios : com os comandos todos desbugados por favor e q de para trocar em dinheiro e score e cada 5 minutos ganha gold e q tenha uma textdraw marcando a quantidade de golds *-*
Entao esta ai .

Comandos

/dargold
/tirargold
/resetargold
/menu

Opзoes do menu
Comprar 1k
Comprar 2k
Comprar 5 Score
Comprar 10 Score

A cada 5 minutos vocк ganha gold.

Textdraw atualiza 1 segundo em 1 segundo.

Ibagen:


Code
pawn Код:
#include                  a_samp
#include                  DOF2
#include                  zcmd
#include                  sscanf2

#define                   DIALOG_MENU                                        125

#define                   Salvos                                   "Gold\%s.ini"// LOCAL QUE SALVA A CONTA COM O GOLD

new Gold[MAX_PLAYERS],// VARIAVEL DO GOLD
    Text:GoldText[MAX_PLAYERS],
    DName[MAX_PLAYER_NAME],
    Don[100],
    ID,
    Quantia;

public OnFilterScriptInit()
{
    return 1;
}
public OnFilterScriptExit()
{
    return 1;
}
public OnPlayerConnect(playerid)
{
    GetPlayerName(playerid, DName, sizeof(DName));
    format(Don, sizeof(Don), Salvos, DName);
    if(DOF2_FileExists(Don))
    {
          Gold[playerid] = DOF2_GetInt(Don, "Gold");
    }
    else
    {
          DOF2_CreateFile(Don);
          DOF2_SetInt(Don, "Gold", 0);
          DOF2_SaveFile();
          DOF2_Exit();
    }
    format(Don,sizeof(Don),"-!- Vocк possui %d Gold.", DOF2_GetInt(Don, "Gold"));
    SendClientMessage(playerid, -1, Don);
    SSetTimerEx("Atualizar", 1000, true, "i", playerid);
    SetTimerEx("Ganha", 1000*60*5, true, "i", playerid);
   
    GoldText[playerid] = TextDrawCreate(58.000000, 307.000000, "");
    TextDrawBackgroundColor(GoldText[playerid], 255);
    TextDrawFont(GoldText[playerid], 2);
    TextDrawLetterSize(GoldText[playerid], 0.300000, 1.900000);
    TextDrawColor(GoldText[playerid], -1);
    TextDrawSetOutline(GoldText[playerid], 0);
    TextDrawSetProportional(GoldText[playerid], 1);
    TextDrawSetShadow(GoldText[playerid], 1);
    TextDrawSetSelectable(GoldText[playerid], 0);
    return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    GetPlayerName(playerid, DName, sizeof(DName));
    format(Don, sizeof(Don), Salvos, DName);
    DOF2_SetInt(Don, "Gold", Gold[playerid]);
    DOF2_Save();
    DOF2_Exit();
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
           case DIALOG_MENU:
           {
                if(!response)return true;
                switch(listitem)
                {
                    case 0:
                    {
                        if(Gold[playerid] < 20)return SendClientMessage(playerid,-1,"-!- Vocк nгo tem todo o score necesario.");
                        GivePlayerMoney(playerid, 1000);// OU FAZER SETAR COM A FUNЗAO DE SEU GAMEMODE
                        Gold[playerid] -= 20;
                        SendClientMessage(playerid, -1,"-!- Compra efetuada com sucesso!");
                    }
                    case 1:
                    {
                        if(Gold[playerid] < 40)return SendClientMessage(playerid,-1,"-!- Vocк nгo tem todo o score necesario.");
                        GivePlayerMoney(playerid, 2000);// OU FAZER SETAR COM A FUNЗAO DE SEU GAMEMODE
                        Gold[playerid] -= 40;
                        SendClientMessage(playerid, -1,"-!- Compra efetuada com sucesso!");
                    }
                    case 2:
                    {
                        if(Gold[playerid] < 10)return SendClientMessage(playerid,-1,"-!- Vocк nгo tem todo o score necesario.");
                        SetPlayerScore(playerid, 5);// OU FAZER SETAR COM A FUNЗAO DE SEU GAMEMODE
                        Gold[playerid] -= 10;
                        SendClientMessage(playerid, -1,"-!- Compra efetuada com sucesso!");
                    }
                    case 3:
                    {
                        if(Gold[playerid] < 20)return SendClientMessage(playerid,-1,"-!- Vocк nгo tem todo o score necesario.");
                        SetPlayerScore(playerid, 10);// OU FAZER SETAR COM A FUNЗAO DE SEU GAMEMODE
                        Gold[playerid] -= 20;
                        SendClientMessage(playerid, -1,"-!- Compra efetuada com sucesso!");
                    }
               
                }
         }
    }
    return 1;
}
forward Ganha(playerid);
public Ganha(playerid)
{
    Gold[playerid] += 1;
    return true;
}
forward Atualizar(playerid);
public Atualizar(playerid)
{
    format(Don,sizeof(Don),"Gold %d", Gold[playerid]);
    TextDrawSetString(GoldText[playerid], Don);
    TextDrawShowForPlayer(playerid, GoldText[playerid]);
    return 1;
}
command(dargold,playerid,params[])
{
    if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,"-!- Vocк nгo esta logado na RCON!");
    if(sscanf(params, "ud", ID, Quantia))return SendClientMessage(playerid, -1,"-!- Uso /dargold [ID] [Quantia]");
    if(!IsPlayerConnected(ID))return SendClientMessage(playerid,-1,"-!- PlayerOff!");
    Gold[ID] += Quantia;
    format(Don,sizeof(Don),"-!- Vocк ganhou %d de gold , e possui %d Goldґs.", Quantia, Gold[ID]);
    SendClientMessage(ID,-1,Don);
    format(Don,sizeof(Don),"-!- Vocк deu %d para o ID %d, agora ele possui %d Goldґs.", Quantia , ID, Gold[ID]);
    SendClientMessage(playerid,-1,Don);
    return true;
}
command(tirargold,playerid,params[])
{
    if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,"-!- Vocк nгo esta logado na RCON!");
    if(sscanf(params, "ud", ID, Quantia))return SendClientMessage(playerid, -1,"-!- Uso /tirargold [ID] [Quantia]");
    if(!IsPlayerConnected(ID))return SendClientMessage(playerid,-1,"-!- PlayerOff!");
    Gold[ID] -= Quantia;
    format(Don,sizeof(Don),"-!- Vocк perdeu %d de gold , e possui %d Goldґs.", Quantia, Gold[ID]);
    SendClientMessage(ID,-1,Don);
    format(Don,sizeof(Don),"-!- Vocк tirou %d do ID %d, agora ele possui %d Goldґs.", Quantia , ID, Gold[ID]);
    SendClientMessage(playerid,-1,Don);
    return true;
}
command(resetargold,playerid,params[])
{
    if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,"-!- Vocк nгo esta logado na RCON!");
    if(sscanf(params, "u", ID))return SendClientMessage(playerid, -1,"-!- Uso /resetargold [ID]");
    if(!IsPlayerConnected(ID))return SendClientMessage(playerid,-1,"-!- PlayerOff!");
    Gold[ID] -= Quantia;
    format(Don,sizeof(Don),"-!- Vocк teve o gold resetado pelo id %d,", playerid);
    SendClientMessage(ID,-1,Don);
    format(Don,sizeof(Don),"-!- Vocк resetou o gold do id %d.",ID);
    SendClientMessage(playerid,-1,Don);
    return true;
}
command(menu,playerid,params[])
{
    ShowPlayerDialog(playerid, DIALOG_MENU, DIALOG_STYLE_LIST, "Menu", "20 Gold = 1K\n 40 Gold 2k\n10Gold = 5 Score\n20Gold = 10 Score", "Continuar", "Cancelar");
    return 1;
}
Credito a DonSpeed

Gostou Comente
Nгo gostou Faзa critica descente .
Quer deixar seu pedido aqui
Quer dar sugestгo para melhora do sistema Pode deixar a


PS№ Ele ja possui salvamento!

Reply
#2

pawn Код:
public OnPlayerSpawn(playerid)
{
    SetTimer("Atualizar", 1000, true);
    return 1;
}
Reply
#3

dificiu o uso do settimerEx?

o resto ta bacana!
Reply
#4

Quote:
Originally Posted by D4rk
Посмотреть сообщение
dificiu o uso do settimerEx?

o resto ta bacana!
nгo й a primeira vez que ele erra no uso de Timers k acho que ele tem algum problema com o SettimerEx

bacana Don daria para usar como compra de coisas especiais Jetpack e tudo mais !
Reply
#5

Quote:
Originally Posted by [Full]Garfield[XDB]
Посмотреть сообщение
pawn Код:
public OnPlayerSpawn(playerid)
{
    SetTimer("Atualizar", 1000, true);
    return 1;
}
Arrumei!
Foi so destraзгo ...

Quote:
Originally Posted by D4rk
Посмотреть сообщение
dificiu o uso do settimerEx?

o resto ta bacana!
Nгo uso por nгo saber a diferenзa entre eles.

Quote:
Originally Posted by Alex_Kidds
Посмотреть сообщение
nгo й a primeira vez que ele erra no uso de Timers k acho que ele tem algum problema com o SettimerEx

bacana Don daria para usar como compra de coisas especiais Jetpack e tudo mais !
Uhum valew.
Reply
#6

Tudo fail esses timers ae campeгo, ambos sу vгo funcionar para o ID 0.
Reply
#7

Quote:
Originally Posted by FeelLikeASir_
Посмотреть сообщение
Tudo fail esses timers ae campeгo, ambos sу vгo funcionar para o ID 0.
Poise parece que ele nгo intende . . .
Ja falei pra ele mas ele e meio burrinho.
Reply
#8

pawn Код:
SetTimer("Ganha", 1000*60*5, true);SetTimer("Atualizar", 1000, true);
caralho'
Reply
#9

vou tentar da uma Explicadinha!

o settimer normal seta um Tempo para chamar uma Public Global sem parametros.
agora se for chamar uma Public para um player й preciso que se use TimerEx para ser setado
para um player corretamente!
caso ao contrario pode atй chamar a public corretamente mais sу par ao ID 0

ali no seu caso!

pawn Код:
public OnPlayerSpawn(playerid)
{
    SetTimerEx("Atualizar", 1000, true, "i", playerid);//Correto pois sinal que chamarб a public para este player!
    return 1;
}

//no outro caso!

SetTimerEx("Ganha", 1000*60*5, true, "i", playerid);




i Representa um parвmetro inteiro.
d Exatamente o mesmo que eu.
A passa de uma matriz, o prуximo parвmetro deve ser um inteiro ("i") com tamanho da matriz. [ATUALMENTE UNUSABLE]
S representa um parвmetro de cadeia. [ATUALMENTE UNUSABLE]
f representa um parвmetro float.
b representa um parвmetro booleano.

translate !
para melhores estudos!

https://sampwiki.blast.hk/wiki/SetTimerEx


gostei da ideia do FS parabens!
Reply
#10

Quote:
Originally Posted by Sky_.
Посмотреть сообщение
vou tentar da uma Explicadinha!

o settimer normal seta um Tempo para chamar uma Public Global sem parametros.
agora se for chamar uma Public para um player й preciso que se use TimerEx para ser setado
para um player corretamente!
caso ao contrario pode atй chamar a public corretamente mais sу par ao ID 0

ali no seu caso!

pawn Код:
public OnPlayerSpawn(playerid)
{
    SetTimerEx("Atualizar", 1000, true, "i", playerid);//Correto pois sinal que chamarб a public para este player!
    return 1;
}

//no outro caso!

SetTimerEx("Ganha", 1000*60*5, true, "i", playerid);




i Representa um parвmetro inteiro.
d Exatamente o mesmo que eu.
A passa de uma matriz, o prуximo parвmetro deve ser um inteiro ("i") com tamanho da matriz. [ATUALMENTE UNUSABLE]
S representa um parвmetro de cadeia. [ATUALMENTE UNUSABLE]
f representa um parвmetro float.
b representa um parвmetro booleano.

translate !
para melhores estudos!

https://sampwiki.blast.hk/wiki/SetTimerEx


gostei da ideia do FS parabens!
Ta saquei ...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)