19.05.2013, 15:27
Criei um Sistema de Guerra para o Game Mode que eu postei a um tempo(BI-RPG),estou criando novos sistemas/atualizaзoes para ele e entre elas й o sistema de guerra.Resolvi adiantar-lo.Para quem nao usa o BI-RPG mas quer utilizar o sistema de guerra,basta configurar o PlayerInfo[playerid][Org] para o sistema verificaзao de organizaзao do seu Game Mode.
Adversarios:
Novo GameMode
Exercito(Org = 2) x Al Qaeda(Org = 6)
Antigo GameMode
Exercito(Org = 4) x Al Qaeda(Org = 10)
Comandos:
/StartWar (Somente Administrador 3+)
/StoptWar (Somente Administrador 3+)
Tempo:
5 minutos para o inicio
10 minutos para finalizar
Local:
Las Venturas (Basta mudar)
Imagens:
Imagem 1
Imagem 2
Imagem 3
Includes:
Topo do Game Mode:
OnGameModeInit()
OnPlayerSpawn(playerid)
OnPlayerDeath(playerid, killerid, reason)
OnPlayerUpdate(playerid)
Fim do Game Mode
Paste Bin
Creditos: ungroup
@OBS: Desculpe se errei a TAG ou o Local de postar.
Adversarios:
Novo GameMode
Exercito(Org = 2) x Al Qaeda(Org = 6)
Antigo GameMode
Exercito(Org = 4) x Al Qaeda(Org = 10)
Comandos:
/StartWar (Somente Administrador 3+)
/StoptWar (Somente Administrador 3+)
Tempo:
5 minutos para o inicio
10 minutos para finalizar
Local:
Las Venturas (Basta mudar)
Imagens:
Imagem 1
Imagem 2
Imagem 3
Includes:
pawn Код:
#include <a_samp>
#include <zcmd>
#include <JFSTempo>
Topo do Game Mode:
pawn Код:
forward TimeWar(playerid);
forward TimeWarFinish(playerid);
new Text:PlacarGuerra;
new LiberarDominio[MAX_PLAYERS];
new KillerEx, KillerAl;
new LocalGuerra,
Float:CoordXMin = 2080.6187,
Float:CoordYMin = 1378.9105,
Float:CoordXMax = 2234.0322,
Float:CoordYMax = 1525.8738,
Float:GetX,Float:GetY,Float:GetZ;
pawn Код:
PlacarGuerra = TextDrawCreate(218.0, 410.6, "~b~(GUERRA)~g~ Exercito: 0 - ~r~Al Qaeda: 0");
TextDrawBackgroundColor(PlacarGuerra,0x000000ff);
TextDrawFont(PlacarGuerra,2);
TextDrawLetterSize(PlacarGuerra,0.2999, 1.4);
TextDrawBoxColor(PlacarGuerra,0x00000050);
TextDrawColor(PlacarGuerra,0xffffffff);
TextDrawSetOutline(PlacarGuerra,1);
TextDrawSetProportional(PlacarGuerra,1);
TextDrawSetShadow(PlacarGuerra,1);
}
OnPlayerSpawn(playerid)
pawn Код:
LocalGuerra = GangZoneCreate(2080.6187,1378.9105, 2234.0322,1525.8738);
GangZoneShowForAll(LocalGuerra,0xFF0000FF);
OnPlayerDeath(playerid, killerid, reason)
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
if(LiberarDominio[playerid] == 1)
{
GetPlayerPos(playerid, Float:GetX, Float:GetY, Float:GetZ);
if(GetX >= CoordXMin && GetX <= CoordXMax && GetY >= CoordYMin && GetY <= CoordYMax){
if(PlayerInfo[playerid][Org] == 6) {KillerEx++;}
else if(PlayerInfo[playerid][Org] == 2) {KillerAl++;}}
}
return 1;
}
OnPlayerUpdate(playerid)
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
if(LiberarDominio[playerid] == 1)
{
GetPlayerPos(playerid, Float:GetX, Float:GetY, Float:GetZ);
if(GetX >= CoordXMin && GetX <= CoordXMax && GetY >= CoordYMin && GetY <= CoordYMax){
if(PlayerInfo[playerid][Org] == 6) {KillerEx++;}
else if(PlayerInfo[playerid][Org] == 2) {KillerAl++;}}
}
return 1;
}
Fim do Game Mode
pawn Код:
public TimeWarFinish(playerid)
{
for(new i;i<MAX_PLAYERS;i++)
{
if(LiberarDominio[i] == 1){
LiberarDominio[i] = 0;}
}
GangZoneStopFlashForAll(LocalGuerra);
TextDrawHideForAll(PlacarGuerra);
if(KillerEx > KillerAl)
{
SendClientMessageToAll(0xFF8000FF,"(GUERRA)A Guerra entre Al Qaeda e Exercito foi finalizada. EXERCITO VENCEU A GUERRA.");
GameTextForAll("~g~EXERCITO VENCEU", 3000, 0 );
for(new getorg;getorg<MAX_PLAYERS;getorg++)
{
if(PlayerInfo[getorg][Org] == 2)
{
SetPlayerScore(getorg,GetPlayerScore(getorg)+10);
GivePlayerMoney(getorg,50000);
SendClientMessage(getorg,GetPlayerColor(getorg),"(RECOMPENSA)Voce recebeu 10 Scores e R$50,000 por ter vencido a guerra.");
}
}
}
else if(KillerAl > KillerEx)
{
SendClientMessageToAll(0xFF8000FF,"(GUERRA)A Guerra entre Al Qaeda e Exercito foi finalizada. AL QAEDA VENCEU A GUERRA.");
GameTextForAll("~r~AL QAEDA VENCEU", 3000, 0);
for(new getorg;getorg<MAX_PLAYERS;getorg++)
{
if(PlayerInfo[getorg][Org] == 6)
{
SetPlayerScore(getorg,GetPlayerScore(getorg)+10);
GivePlayerMoney(getorg,50000);
SendClientMessage(getorg,GetPlayerColor(getorg),"(RECOMPENSA)Voce recebeu 10 Scores e R$50,000 por ter vencido a guerra.");
}
}
}
else
{
SendClientMessageToAll(0xFF8000FF,"(GUERRA)A Guerra entre Al Qaeda e Exercito foi finalizada. HOUVE EMPATE NA GUERRA.");
GameTextForAll("~b~HOUVE EMPATE", 3000, 0);
}
return 1;
}
pawn Код:
public TimeWar(playerid)
{
new String[150];
for(new i;i<MAX_PLAYERS;i++)
{
if(PlayerInfo[i][Org] == 2 || PlayerInfo[i][Org] == 6){
LiberarDominio[i] = 1;
SetTimerEx("TimeWarFinish", TempoMinuto(10), false,"i",i);}
TextDrawShowForAll(PlacarGuerra);
}
format(String, sizeof(String),"(GUERRA)A Guerra entre Al Qaeda e Exercito Iniciou.");
SendClientMessageToAll(0xFF8000FF,String);
return 1;
}
pawn Код:
COMMAND:startwar(playerid, params[])
{
#pragma unused params
new String[150];
if(PlayerInfo[playerid][AdmNivel] >= 3)
format(String, sizeof(String),"(GUERRA)Exercito e Al Qaeda iniciara uma guerra em 5 minutos.");
SetTimerEx("TimeWar", TempoMinuto(5), false,"i",playerid);
SendClientMessageToAll(0xFF8000FF,String);
KillerEx = 0; KillerAl = 0;
return 1;
}
pawn Код:
COMMAND:stopwar(playerid, params[])
{
#pragma unused params
if(PlayerInfo[playerid][AdmNivel] >= 3)
SendClientMessageToAll(0xFF8000FF,"(GUERRA)Um administrador encerrou a guerra.");
for(new i;i<MAX_PLAYERS;i++){
LiberarDominio[i] = 0;
TextDrawHideForAll(PlacarGuerra);
KillerEx = 0; KillerAl = 0;
GangZoneStopFlashForAll(LocalGuerra);}
return 1;
}
Paste Bin
Creditos: ungroup
@OBS: Desculpe se errei a TAG ou o Local de postar.