06.11.2011, 01:09
Fiz uma base para vocк, com o cуdigo em portuguкs para facilitar seu entendimento .
Nгo adicionei coisas nгo-essenciais como o TextDraw, pois o cуdigo abaixo serve apenas para ajudб-lo a entender os Timers, o jogo de variбveis que deve ser feito, entre outros :
Tudo isso pode ser feito de outras maneiras tambйm, basta ter criatividade .
Espero ter ajudado .
Nгo adicionei coisas nгo-essenciais como o TextDraw, pois o cуdigo abaixo serve apenas para ajudб-lo a entender os Timers, o jogo de variбveis que deve ser feito, entre outros :
Tudo isso pode ser feito de outras maneiras tambйm, basta ter criatividade .
pawn Код:
#include <a_samp>
#define TempoSegundaParte 30 // Troque 30 pelo tempo mбximo (em minutos) para que o jogador chegue no local da segunda parte do assalto
#define ID_Dialog_Assalto 180
new PickupCassino;
new bool:MissaoOn;
new CaraFazendoMissao = -1;
new MissionTimerID;
new Contador;
new Parte;
new texto[100];
new AssaltanteNome[MAX_PLAYER_NAME];
public OnGameModeInit()
{
PickupCassino = CreatePickup(/*ID da Pickup*/, 23, /*Encaixe aqui as coordenadas da pickup do cassino*/, -1);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == ID_Dialog_Assalto)
{
if(response)
{
if(MissaoOn) return SendClientMessage(playerid, 0xFFFFFFAA, "Alguйm jб estб realizando um assalto !");
new Float:aX, Float:aY, Float:aZ;
GetPlayerPos(playerid, aX, aY, aZ);
GetPlayerName(playerid, AssaltanteNome, MAX_PLAYER_NAME);
format(texto, sizeof(texto), "%s(%d) iniciou um assalto ao cassino", AssaltanteNome, playerid);
SendClientMessageToAll(0x33CCFFAA, texto);
MissaoOn = true;
CaraFazendoMissao = playerid;
Parte = 1;
MissionTimerID = SetTimerEx("Assaltando", 1000, true, "nfff", playerid, aX, aY, aZ);
}
}
return 1;
}
forward Assaltando(playerid, X, Y, Z);
public Assaltando(playerid, X, Y, Z)
{
if(Parte == 1)
{
Contador++;
if(!IsPlayerInRangeOfPoint(playerid, 8.0, X, Y, Z))
{
MissaoOn = false;
Parte = 0;
CaraFazendoMissao = -1;
Contador = 0;
SendClientMessage(playerid, 0x33CCFFAA, "Mission Failed !");
KillTimer(MissionTimerID);
}
if(Contador == 300)
{
Parte = 2;
Contador = 0;
format(texto, sizeof(texto), "Vocк tem %d minutos para chegar no local no mapa !", TempoSegundaParte);
SendClientMessage(playerid, 0x33CCFFAA, texto);
}
}
else if(Parte == 2)
{
Contador++;
if(Contador == TempoSegundaParte && !IsPlayerInRangeOfPoint(playerid, 3.0, /*Coloque aqui as coordenadas do local onde o jogador deve ir na segunda parte da missao*/))
{
MissaoOn = false;
Parte = 0;
CaraFazendoMissao = -1;
Contador = 0;
SendClientMessage(playerid, 0x33CCFFAA, "Mission Failed !");
KillTimer(MissionTimerID);
}
}
return true;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == PickupCassino)
{
ShowPlayerDialog(playerid, ID_Dialog_Assalto, DIALOG_STYLE_MSGBOX, "Deseja realizar este assalto?", "\n", "Aceitar", "Recusar");
}
return 1;
}
Espero ter ajudado .