19.08.2012, 23:45
eu nao manjo muito disso nao entendo bLines e to tentando aprender DOF2 e achei esse sistema do .FuneraL. bem interessante queria utilizar ele no meu novo projeto que й uma grande atualizaзгo do meu gm de drift que postei aqui...
como ficaria em DOF2 ?
pawn Код:
#include <a_samp>
#include <bCMD>
#include <bLines>
#include <sscanf>
#define FILTERSCRIPT
#if defined FILTERSCRIPT
#endif
#define Vermelho 0xFF0000FF
#define CCASH 1
forward AtualizarCash(playerid);
new PlayerCash[MAX_PLAYERS];
new PlayerText:TextCash[MAX_PLAYERS];
new Nome[24], Nome2[24];
new StringSave[60], StringCash[128];
public OnFilterScriptInit()
{
print("--> FuneraL's Cash System With Save - Iniciado <--");
return 1;
}
public OnFilterScriptExit()
{
print("--> FuneraL's Cash System With Save - Desligado <--");
File_Save();
return 1;
}
public OnPlayerConnect(playerid)
{
LoadCash(playerid);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SaveCash(playerid);
return 1;
}
public AtualizarCash(playerid)
{
format(StringCash, sizeof(StringCash), "~w~Player Cashpoints: ~r~%d", PlayerCash[playerid]);
PlayerTextDrawSetString(playerid, TextCash[playerid], StringCash);
return 1;
}
public OnPlayerSpawn(playerid)
{
TextCash[playerid] = CreatePlayerTextDraw(playerid, 20.000000, 312.000000, "_");
PlayerTextDrawUseBox(playerid, TextCash[playerid], 1);
PlayerTextDrawBoxColor(playerid, TextCash[playerid], 0x00000040);
PlayerTextDrawBackgroundColor(playerid, TextCash[playerid], 255);
PlayerTextDrawTextSize(playerid, TextCash[playerid], 156.000000, 0.000000);
PlayerTextDrawLetterSize(playerid, TextCash[playerid], 0.290000, 2.000000);
PlayerTextDrawSetOutline(playerid, TextCash[playerid], 1);
PlayerTextDrawShow(playerid, TextCash[playerid]);
AtualizarCash(playerid);
return 1;
}
bCMD[darcash]-(playerid, params[]) // Admin RCON
{
new QtdCash, ID, String[128];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, Vermelho, "[Admin]: Vocк Nгo й Administrador RCON!");
if(sscanf(params, "dd", ID, QtdCash)) return SendClientMessage(playerid, Vermelho, "USO: /darcash [ID] [Quantidade]");
if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, Vermelho, "[ERRO]: ID Nгo Conectado");
GetPlayerName(playerid, Nome, sizeof(Nome));
GetPlayerName(ID, Nome2, sizeof(Nome2));
format(String, sizeof(String), "[Cashpoint]: %s Deu %d Cashpoint's Para o Jogador %s", Nome, QtdCash, Nome2);
SendClientMessageToAll(Vermelho, String);
PlayerCash[playerid] += QtdCash;
AtualizarCash(ID);
return 1;
}
bCMD[setarcash]-(playerid, params[]) // Admin RCON
{
new QtdCash, ID, String[128];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, Vermelho, "[Admin]: Vocк Nгo й Administrador RCON!");
if(sscanf(params, "dd", ID, QtdCash)) return SendClientMessage(playerid, Vermelho, "USO: /setarcash [ID] [Quantidade]");
if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, Vermelho, "[ERRO]: ID Nгo Conectado");
GetPlayerName(playerid, Nome, sizeof(Nome));
GetPlayerName(ID, Nome2, sizeof(Nome2));
format(String, sizeof(String), "[Cashpoint]: %s Setou os Cashpoint's do Jogador %s Para %d", Nome, Nome2, QtdCash);
SendClientMessageToAll(Vermelho, String);
PlayerCash[playerid] = QtdCash;
AtualizarCash(ID);
return 1;
}
bCMD[comprarcash]-(playerid)
{
ShowPlayerDialog(playerid, CCASH, DIALOG_STYLE_LIST, "Compra de Cash's", "1 CashPoint (500,000)\n5 CashPoints (2,500,000)\n10 CashPoints (5,000,000)\n50 CashPoints (25,000,000)\n100 CashPoints (50,000,000)","Comprar","Cancelar");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == CCASH)
{
if(!response) return SendClientMessage(playerid, Vermelho, "[Shop-CashPoint]: Vocк Cancelou a Compra de CashPoints");
if(response)
{
switch(listitem)
{
case 0:
{
if(GetPlayerMoney(playerid) < 500000)
{
SendClientMessage(playerid, Vermelho, "[Shop-CashPoint]: Vocк Nгo tem Dinheiro Para Comprar 1 Cashpoint(s)!");
}
else
{
PlayerCash[playerid] += 1;
SaveCash(playerid);
GivePlayerMoney(playerid, -500000);
AtualizarCash(playerid);
}
}
case 1:
{
if(GetPlayerMoney(playerid) < 2500000)
{
SendClientMessage(playerid, Vermelho, "[Shop-CashPoint]: Vocк Nгo tem Dinheiro Para Comprar 5 Cashpoint(s)!");
}
else
{
PlayerCash[playerid] += 5;
SaveCash(playerid);
GivePlayerMoney(playerid, -2500000);
AtualizarCash(playerid);
}
}
case 2:
{
if(GetPlayerMoney(playerid) < 5000000)
{
SendClientMessage(playerid, Vermelho, "[Shop-CashPoint]: Vocк Nгo tem Dinheiro Para Comprar 10 Cashpoint(s)!");
}
else
{
PlayerCash[playerid] += 10;
SaveCash(playerid);
GivePlayerMoney(playerid, -5000000);
AtualizarCash(playerid);
}
}
case 3:
{
if(GetPlayerMoney(playerid) < 25000000)
{
SendClientMessage(playerid, Vermelho, "[Shop-CashPoint]: Vocк Nгo tem Dinheiro Para Comprar 50 Cashpoint(s)!");
}
else
{
PlayerCash[playerid] += 50;
SaveCash(playerid);
GivePlayerMoney(playerid, -25000000);
AtualizarCash(playerid);
}
}
case 4:
{
if(GetPlayerMoney(playerid) < 50000000)
{
SendClientMessage(playerid, Vermelho, "[Shop-CashPoint]: Vocк Nгo tem Dinheiro Para Comprar 100 Cashpoint(s)!");
}
else
{
PlayerCash[playerid] += 100;
SaveCash(playerid);
GivePlayerMoney(playerid, -50000000);
AtualizarCash(playerid);
}
}
}
}
}
return 1;
}
stock SaveCash(playerid)
{
GetPlayerName(playerid, Nome, sizeof(Nome));
format(StringSave, sizeof(StringSave), "/Cash/%s.ini", Nome);
File_Open(StringSave);
File_SetInt(0, PlayerCash[playerid]); // Cash Save
File_Save();
return 1;
}
stock LoadCash(playerid)
{
GetPlayerName(playerid, Nome, sizeof(Nome));
format(StringSave, sizeof(StringSave), "/Cash/%s.ini", Nome);
File_Open(StringSave);
PlayerCash[playerid] = File_GetInt(0); // Cash Load
return 1;
}