Pirates X Ninja

Ir em baixo

Pirates X Ninja

Mensagem por danthix em Qui Maio 20, 2010 1:09 pm

Bom, esse script foi postado pelo hacktank(USA)
Eu pedi para ele postar foi tipo de uma encomenda mais chega de papo e vamos ao que interessa a todos!!

Script Pirates X Ninja

No topo do script você pode editar cinco diferentes variáveis:
Alpha / regen saúde Bravo
Bravo predador espaçamento
Alpha / Bravo multiplicadores de danos

Configurações recomendadas:
Pirates vs Ninjas funciona bem para ambos os modos normal e realista.

Global:
Modo de jogo: CTF
Predator Espaçamento: 16

Não-realista:
Granadas: 2-3
Bravo Regen HP: 07/05
Alpha Mult Dano: 1
Bravo Mult Dano: 5

Realista:
Granadas: 0-2
Bravo Regen HP: 04/02
Alpha Mult Danos: 0,75
Bravo Mult Dano: 3

Espero ver servidores com isso, porque é um dos meus favoritos
gamemodes para jogar.

Versão 1.0.1

Versão 1.0.1:
multiplicadores de dano fixo não-número inteiro.


DOWNLOAD:megaupload.com 8Y4MQOQ5

Para vcs Analizarem antes de baixar


Código:
{
Pirates vs Ninjas by Hacktank
Idea by GNintendo
 /-------------------\
 |  Version 1.0.1  |
 \-------------------/
}

const
   alphahpregen = 0;// alpha health regen per sec
   bravohpregen = 4;// bravo health regen per sec
   predspacing = 16;// time inbetween giving bravo new pred packs, does NOT affect health in any way
   alphadamagemult = 1;// alpha damage multiplier (can be 0.5 for half damage for eample)
   bravodamagemult = 5;// bravo damage multiplier (can be 0.5 for half damage for eample)

type plr = record
   flatdmg,predcount: integer;
   infiknife: boolean;
   end;

var
   player: array[1..32] of plr;
   compiled,realistic: boolean;

function xsplit(const source: string; const delimiter: string):TStringArray;
var i,x,d:integer; s:string;
begin
d:=length(delimiter);x:=0;i:=1;SetArrayLength(Result,1);
while(i<=length(source)) do begin s:=Copy(source,i,d); if(s=delimiter) then begin inc(i,d); inc(x,1); SetArrayLength(result,x+1);
end else begin result[x]:= result[x]+Copy(s,1,1);inc(i,1); end; end;
end;

function XJoin(ary: array of string; splitter: string): string;
var i: integer;
begin
result := ary[0];
for i := 1 to getarraylength(ary)-1 do begin
   result := result+splitter+ary[i];
   end;
end;

function WrapValue(ValueRaw,Min,Max: variant; Flatten: boolean): variant;
var wraprem: variant;
begin
result := valueraw;
if valueraw < min then result := iif(flatten=true,min,(max-(min-valueraw)));
if valueraw > max then result := iif(flatten=true,max,(min+(valueraw-max)));
end;

procedure WipePlayer(ID: byte);
begin
player[ID].flatdmg := 0;
player[ID].predcount := 0;
player[ID].infiknife := false;
end;

procedure SetPlayerHealth(ID: byte; Health,Vest: integer);
var chealth,cvest,delta: integer;
begin
health := wrapvalue(health,0,iif(realistic=true,65,150),true);
chealth := getplayerstat(ID,'health');
cvest := getplayerstat(ID,'vest');
if (chealth=health) AND (cvest=vest) then exit;
if chealth = 0 then dodamage(ID,1000);
if vest = 0 then begin
   while(cvest > 0) do begin
      player[ID].flatdmg := player[ID].flatdmg + 1;
      dodamage(ID,2);
      cvest := cvest - 1;
      end;
   player[ID].flatdmg := player[ID].flatdmg + 1;
   dodamage(ID,chealth-health);
   exit;
   end else begin
      if cvest = 0 then begin
         givebonus(ID,3);
         cvest := 100;
         end;
      while(chealth <> health) do begin
         player[ID].flatdmg := player[ID].flatdmg + 1;
         if chealth < health then delta := -1 else delta := 1;
         dodamage(ID,3*delta);
         chealth := chealth - delta;
         cvest := wrapvalue(cvest - delta,0,100,true);
         if cvest = 0 then begin
            givebonus(ID,3);
            cvest := 100;
            end;
         if cvest <> vest then begin
            player[ID].flatdmg := player[ID].flatdmg + 1;
            if cvest < vest then delta := -1 else delta := 1;
            dodamage(ID,2*delta);
            cvest := cvest - delta;
            end;
         end;
      while(cvest <> vest) do begin
         //player[ID].flatdmg := player[ID].flatdmg + 1;
         if cvest < vest then delta := -1 else delta := 1;
         dodamage(ID,2*delta);
         cvest := cvest - delta;
         end;
      exit;
      end;
givebonus(ID,3);
cvest := 100;
while(cvest > vest) do begin
   player[ID].flatdmg := player[ID].flatdmg + 1;
   dodamage(ID,2);
   cvest := cvest - 1;
   end;
end;

procedure TimeHeal(ID: byte);
var team,health,vest: byte;
begin
team := getplayerstat(ID,'team');
health := getplayerstat(ID,'health');
vest := getplayerstat(ID,'vest');
if (team=1) or (team=2) then setplayerhealth(ID,health + (iif(team=1,alphahpregen,bravohpregen) div iif(vest>0,2,1)),vest + iif(vest>0,(iif(team=1,alphahpregen,bravohpregen) div iif(vest>0,2,1)),0));
end;

procedure SetWeapons(ID: byte);
var team,i: byte;
begin
team := getplayerstat(ID,'team');
if team = 1 then for i := 1 to 5 do begin
   setweaponactive(ID,1,true);
   setweaponactive(ID,2,false);
   setweaponactive(ID,3,false);
   setweaponactive(ID,4,false);
   setweaponactive(ID,5,true);
   setweaponactive(ID,6,true);
   setweaponactive(ID,7,false);
   setweaponactive(ID,8,true);
   setweaponactive(ID,9,false);
   setweaponactive(ID,10,false);
   setweaponactive(ID,11,true);
   setweaponactive(ID,12,true);
   setweaponactive(ID,13,true);
   setweaponactive(ID,14,true);
   setweaponactive(ID,15,true);
   setweaponactive(ID,16,true);
   end;
if team = 2 then for i := 1 to 5 do begin
   setweaponactive(ID,1,false);
   setweaponactive(ID,2,false);
   setweaponactive(ID,3,false);
   setweaponactive(ID,4,false);
   setweaponactive(ID,5,false);
   setweaponactive(ID,6,false);
   setweaponactive(ID,7,false);
   setweaponactive(ID,8,false);
   setweaponactive(ID,9,false);
   setweaponactive(ID,10,false);
   setweaponactive(ID,11,false);
   setweaponactive(ID,12,true);
   setweaponactive(ID,13,false);
   setweaponactive(ID,14,false);
   setweaponactive(ID,15,false);
   setweaponactive(ID,16,false);
   end;
end;

procedure GivePred(ID: byte);
var health: byte;
begin
health := getplayerstat(ID,'health');
givebonus(ID,1);
DrawText(ID,'  ',1,$ffffffff,1,1,1);
setplayerhealth(ID,health,getplayerstat(ID,'vest'));
player[ID].predcount := predspacing;
end;

procedure OnCompile();
var config: array of string;
begin
config := xsplit(readfile('soldat.ini'),(chr(13)+chr(10)));
if getstringindex('Realistic_Mode=1',config) > 0 then realistic := true else realistic := false;
compiled := true;
end;

procedure ActivateServer();
begin
oncompile();
end;

procedure AppOnIdle(Ticks: integer);
var i: byte;
begin
if not compiled then oncompile();
for i := 1 to 32 do if getplayerstat(i,'active') then begin
   timeheal(i);
   if getplayerstat(i,'team') = 2 then if player[i].predcount > 0 then begin
      player[i].predcount := player[i].predcount - 1;
      if player[i].predcount = 0 then givepred(i);
      end;
   end;
end;

function OnCommand(ID: Byte; Text: string): boolean;
begin
if (getpiece(text,' ',0)='/knife') then if (getpiece(text,' ',1)<>nil) then begin
   player[strtoint(getpiece(text,' ',1))].infiknife := not player[strtoint(getpiece(text,' ',1))].infiknife;
   writeconsole(strtoint(getpiece(text,' ',1)),'Knife given/added',$ffffffff);
   end;
end;

procedure OnWeaponChange(ID, PrimaryNum, SecondaryNum: Byte);
begin;
if getplayerstat(ID,'team') = 2 then if ((primarynum <> 255) OR (player[ID].infiknife=true)) then if primarynum <> 14 then forceweapon(ID,14,secondarynum,0);
end;

procedure OnJoinGame(ID, Team: Byte);
begin
wipeplayer(ID);
setweapons(ID);
end;

procedure OnJoinTeam(ID, Team: byte);
begin
if team = 2 then player[ID].predcount := 1;
setweapons(ID);
end;

procedure OnPlayerRespawn(ID: Byte);
begin
player[ID].flatdmg := 0;
if getplayerstat(ID,'team') = 2 then player[ID].predcount := 1;
setweapons(ID);
end;

function OnPlayerDamage(Victim,Shooter: Byte;Damage: Integer) : integer;
begin
result := damage;
if player[victim].flatdmg > 0 then begin
   player[victim].flatdmg := player[victim].flatdmg - 1;
   exit;
   end;
if (damage>0) AND (damage<3000) AND (shooter<>victim) then begin
   if getplayerstat(shooter,'team') = 1 then result := round(result * alphadamagemult);
   if getplayerstat(shooter,'team') = 2 then result := round(result * bravodamagemult);
   end;
end;
avatar
danthix
Noob

Data de inscrição : 11/04/2010
Localização : jundiai, SP
Nick : Mascarado
Clan : e[BR] ~>
Reputação : 0

Voltar ao Topo Ir em baixo

Re: Pirates X Ninja

Mensagem por N!C3Sh0oT em Sex Maio 21, 2010 12:47 pm

Não entendi direito o scrip poderia explicar melhor ?

_______________________________________________________________________________________________________________

avatar
N!C3Sh0oT
Fundador
Fundador

Data de inscrição : 10/04/2010
Localização : Carapicuiba - Sp
Nick : NIC3Sh0oT
Clan : Sem Clan :x
Reputação : 4

http://forum.soldat2d.com

Voltar ao Topo Ir em baixo

Re: Pirates X Ninja

Mensagem por danthix em Sab Maio 22, 2010 7:37 am

Posso. Tipo assim se instala o script no server ai Pirates vs. Ninja::: Mais ou menos assim
Pirates vai com arma nao todas so algumas ninja vai so com uma Knife e invissivel o predetor revova sozinho.

Eno comeco do escript essa parte.

Código:
const
  alphahpregen = 0;// alpha health regen per sec
  bravohpregen = 4;// bravo health regen per sec
  predspacing = 16;// time inbetween giving bravo new pred packs, does NOT affect

Ali encima vc pode auterar a velocidade de regeneracao dois 2 times tipo se atira num carinha invizivel o predetor regenera sem ele reinicia para 24.0 sec denovo
que e o tempo dele



mais a vida nao enche no maximo ele so fica tipo com 25% fica aquelas manchas de sangue nesse escript depois de alguns segundos e removida a mancha de sangue com a alpha e a mesma coissa:

Download:megaupload.com 8Y4MQOQ5

A Parte da demage do script.

Código:
alphadamagemult = 1;// alpha damage multiplier (can be 0.5 for half damage for eample)
  bravodamagemult = 5;// bravo damage multiplier (can be 0.5 for half damage for eample)

ali en cima vc pode altera os valores da demage do script:

Tipo assim eu fiz isso e deu serto no meu pc:

Original
Código:
(can be 0.5 for half damage for)

Modificado
Código:
(can be 1.5 for half damage for)

e e assim que funciona
espero que tenha entendido agora
avatar
danthix
Noob

Data de inscrição : 11/04/2010
Localização : jundiai, SP
Nick : Mascarado
Clan : e[BR] ~>
Reputação : 0

Voltar ao Topo Ir em baixo

Re: Pirates X Ninja

Mensagem por N!C3Sh0oT em Sab Maio 22, 2010 8:56 am

Ah sim entendi Baixei ele mto massa

_______________________________________________________________________________________________________________

avatar
N!C3Sh0oT
Fundador
Fundador

Data de inscrição : 10/04/2010
Localização : Carapicuiba - Sp
Nick : NIC3Sh0oT
Clan : Sem Clan :x
Reputação : 4

http://forum.soldat2d.com

Voltar ao Topo Ir em baixo

Re: Pirates X Ninja

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum