Bom eu nгo estava fazendo nada e resolvi postar essa profissгo de PizzaBoy que criei um dia mas agora dei uma melhorada nela, espero que gostem.
Ela funciona da seguinte maneira, o player vai atй a pizzaria pega a pizza e й determinado um local pra ele no mapa aleatуrio para ele entregar a pizza, o dinheiro a receber tambйm e aleatуrio e tem o sistema da gorjeta que funciona da seguinte maneira, caso o player demorar demais para entregar a pizza ele nгo recebera a gorjeta sу o valor da pizza.
PHP код:
#include <a_samp>
#include <zcmd>
//NEW
new Pizza[MAX_PLAYERS];
new GanhaGorjeta[MAX_PLAYERS];
new timerGorjeta[MAX_PLAYERS];
new EntregandoPizza[MAX_PLAYERS];
//CORES
#define Vermelho 0xF60000AA
#define Amarelo 0xFFA500AA
//Random
new Float: CheckPointsP[1][10] =
{
{2077.6982,-1730.5145,13.3832, 3.0}
};
public OnFilterScriptInit()
{
AddStaticVehicleEx(448,2098.090820,-1821.328002,12.983078,89.726402,3,3,30);
AddStaticVehicleEx(448,2098.166992,-1820.152832,12.982042,83.844284,3,3,30);
return 1;
}
public OnPlayerConnect(playerid)
{
Pizza[playerid] = 0;
GanhaGorjeta[playerid] = 0;
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
if(Pizza[playerid] == 1)
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 448)
{
EntregandoPizza[playerid] = SetTimerEx("EntregarPizza", 10000, false, "i", playerid);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid,Amarelo,"| INFO | Entregando Pizza, aguarde alguns segundos");
}else return SendClientMessage(playerid,Vermelho,"| ERRO | Vocк nгo esta com a moto do MotoBoy");
}
return 1;
}
CMD:ir(playerid)
{
SetPlayerPos(playerid,2094.7395,-1817.1388, 13.3828);
return 1;
}
CMD:pizza(playerid)
{
if(Pizza[playerid] == 1) {
SendClientMessage(playerid,Vermelho,"| ERRO | Vocк jб pegou uma pizza, entregue-a!");
return 1;
}
if(IsPlayerInRangeOfPoint(playerid, 10.0, 2094.7395,-1817.1388, 13.3828))
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 448)
{
new string[128];
new rand = random(sizeof(CheckPointsP));
Pizza[playerid] = 1;
GanhaGorjeta[playerid] = 1;
timerGorjeta[playerid] = SetTimerEx("GanhaGorjeta1", 60000, false, "i", playerid);
new Float: Distancia = GetPlayerDistanceFromPoint(playerid,CheckPointsP[rand][0],CheckPointsP[rand][1],CheckPointsP[rand][2]);
SetPlayerRaceCheckpoint(playerid, 1, CheckPointsP[rand][0],CheckPointsP[rand][1],CheckPointsP[rand][2], 0, 0, 0, 3.10);
format(string,sizeof(string),"{FFFFFF}Uma pizza para entregar a {30F72D}%0.2f {FFFFFF}metros ,siga o checkpoint para entrega-la",Distancia);
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "{FFA500}Pizzaria", string, "Pegar", "");
return 1;
}
else return SendClientMessage(playerid, Vermelho,"| ERRO | Vocк nгo esta na moto do MotoBoy");
}
else return SendClientMessage(playerid,Vermelho,"| ERRO | Vocк nгo esta no local de pegar a pizza");
}
forward GanhaGorjeta1(playerid);
public GanhaGorjeta1(playerid)
{
GanhaGorjeta[playerid] = 0;
return 1;
}
forward EntregarPizza(playerid);
public EntregarPizza(playerid)
{
if(GanhaGorjeta[playerid] == 1)
{
new string[250];
new GranaPizza = random(30);
new Gorjeta = random(5);
DisablePlayerRaceCheckpoint(playerid);
Pizza[playerid] = 0;
GanhaGorjeta[playerid] = 0;
format(string, sizeof(string), "| PIZZA - ENTREGUE | {FFFFFF}Vocк entregou a pizza com sucesso e ganhou {1CEB00}$%d {FFFFFF}e mais {1CEB00}$%d {FFFFFF}de gorjeta",GranaPizza,Gorjeta);
SendClientMessage(playerid,0xFFA500AA, string);
GivePlayerMoney(playerid, GranaPizza);
GivePlayerMoney(playerid, Gorjeta);
TogglePlayerControllable(playerid,1);
KillTimer(timerGorjeta[playerid]);
KillTimer(EntregandoPizza[playerid]);
return 1;
}
if(GanhaGorjeta[playerid] == 0)
{
new string[250];
new GranaPizza = random(30);
DisablePlayerRaceCheckpoint(playerid);
Pizza[playerid] = 0;
format(string, sizeof(string), "| PIZZA - ENTREGUE | {FFFFFF}Vocк entregou a pizza com sucesso e ganhou {1CEB00}$%d {FFFFFF} e nгo ganhou gorjeta por demorar demais",GranaPizza);
SendClientMessage(playerid,0xFFA500AA, string);
GivePlayerMoney(playerid, GranaPizza);
TogglePlayerControllable(playerid,1);
KillTimer(timerGorjeta[playerid]);
KillTimer(EntregandoPizza[playerid]);
return 1;
}
return 1;
}
mais acho que poderia ter melhorado o codigo em si falto ideitaзгo, e a string nгo precisa ser.string[250]; se o limite do chat e 144 string[144]; mais pelo primeiro FS esta muito bom parabens.
Inovador, gostei.. parabйns!
Muito bacana. Pra servidores RP que usam missхes mini-games, tб aн uma proposta boa. Muito legal.
Simples e inovador. Gostei.
Parabйns. +1