Advertisement
Guest User

Untitled

a guest
Jun 2nd, 2016
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 4.20 KB | None | 0 0
  1. unit HitBox;
  2.  
  3. interface
  4.  
  5. implementation
  6. var Decl: byte; PrecentTable: array [1..3] of double; ini: TIniFile; WeapDmg: array [1..17] of integer;
  7.  
  8. procedure LoadDamage();
  9. begin
  10.     if (Game.Realistic=false) then begin
  11.         ini := File.CreateINI('/weapons.ini');
  12.         WeapDmg[1]:=ini.ReadInteger('USSOCOM','Damage',149); WeapDmg[2]:=ini.ReadInteger('Desert Eagles','Damage',181); WeapDmg[3]:=ini.ReadInteger('HK MP5','Damage',101);
  13.         WeapDmg[4]:=ini.ReadInteger('Ak-74','Damage',111); WeapDmg[5]:=ini.ReadInteger('Steyr AUG','Damage',71); WeapDmg[6]:=ini.ReadInteger('Spas-12','Damage',122);
  14.         WeapDmg[7]:=ini.ReadInteger('Ruger 77','Damage',249); WeapDmg[8]:=ini.ReadInteger('M79','Damage',155000); WeapDmg[9]:=ini.ReadInteger('Barret M82A1','Damage',445);
  15.         WeapDmg[10]:=ini.ReadInteger('FN Minimi','Damage',85); WeapDmg[11]:=ini.ReadInteger('XM214 Minigun','Damage',49); WeapDmg[12]:=ini.ReadInteger('Combat Knife','Damage',215000);
  16.         WeapDmg[13]:=ini.ReadInteger('Chainsaw','Damage',5000); WeapDmg[14]:=ini.ReadInteger('M72 LAW','Damage',155000); WeapDmg[15]:=ini.ReadInteger('Punch','Damage',33000);
  17.         WeapDmg[16]:=ini.ReadInteger('Rambo Bow','Damage',1200); WeapDmg[17]:=ini.ReadInteger('Flamed Arrows','Damage',800);
  18.         ini.free;
  19.     end else
  20.     begin
  21.         ini := File.CreateINI('/weapons_realistic.ini');
  22.         WeapDmg[1]:=ini.ReadInteger('USSOCOM','Damage',130); WeapDmg[2]:=ini.ReadInteger('Desert Eagles','Damage',166); WeapDmg[3]:=ini.ReadInteger('HK MP5','Damage',94);
  23.         WeapDmg[4]:=ini.ReadInteger('Ak-74','Damage',108); WeapDmg[5]:=ini.ReadInteger('Steyr AUG','Damage',68); WeapDmg[6]:=ini.ReadInteger('Spas-12','Damage',120);
  24.         WeapDmg[7]:=ini.ReadInteger('Ruger 77','Damage',222); WeapDmg[8]:=ini.ReadInteger('M79','Damage',160000); WeapDmg[9]:=ini.ReadInteger('Barret M82A1','Damage',495);
  25.         WeapDmg[10]:=ini.ReadInteger('FN Minimi','Damage',81); WeapDmg[11]:=ini.ReadInteger('XM214 Minigun','Damage',43); WeapDmg[12]:=ini.ReadInteger('Combat Knife','Damage',225000);
  26.         WeapDmg[13]:=ini.ReadInteger('Chainsaw','Damage',2100); WeapDmg[14]:=ini.ReadInteger('M72 LAW','Damage',150000); WeapDmg[15]:=ini.ReadInteger('Punch','Damage',33000);
  27.         WeapDmg[16]:=ini.ReadInteger('Rambo Bow','Damage',1200); WeapDmg[17]:=ini.ReadInteger('Flamed Arrows','Damage',800);
  28.         ini.free;
  29.     end;
  30. end;
  31.  
  32. function GetDmg(ID:byte):integer;
  33. begin
  34.     case (ID) of
  35.         0: Result:=WeapDmg[1];
  36.         1: Result:=WeapDmg[2];
  37.         2: Result:=WeapDmg[3];
  38.         3: Result:=WeapDmg[4];
  39.         4: Result:=WeapDmg[5];
  40.         5: Result:=WeapDmg[6];
  41.         6: Result:=WeapDmg[7];
  42.         7: Result:=WeapDmg[8];
  43.         8: Result:=WeapDmg[9];
  44.         9: Result:=WeapDmg[10];
  45.         10: Result:=WeapDmg[11];
  46.         11: Result:=WeapDmg[12];
  47.         12: Result:=WeapDmg[13];
  48.         13: Result:=WeapDmg[14];
  49.         14: Result:=WeapDmg[15];
  50.         15: Result:=WeapDmg[16];
  51.         16: Result:=WeapDmg[17];
  52.     end;
  53. end;
  54.  
  55. function HitBox(Shooter, Victim: TActivePlayer; Damage: Integer; Bullet: byte): Integer;
  56. var c, c2: integer; ShootSpeed: double;
  57. begin
  58.     ShootSpeed:=sqrt((Map.Bullets[Bullet].VelX*Map.Bullets[Bullet].VelX)+(Map.Bullets[Bullet].VelY*Map.Bullets[Bullet].VelY));
  59.     c := Trunc(GetDmg(Map.Bullets[Bullet].GetOwnerWeaponId)*(ShootSpeed/100)*iif(Game.Realistic,1.1,1.15));
  60.     c2 := Trunc(GetDmg(Map.Bullets[Bullet].GetOwnerWeaponId)*(ShootSpeed/100)*iif(Game.Realistic,0.6,0.9));
  61.     if (iif(Victim.Vest>0,Trunc(0.25*c),c)=Damage) then begin
  62.         Result := (Damage+Trunc((PrecentTable[1]/100.0)*Damage));
  63.         exit;
  64.     end;
  65.     if (iif(Victim.Vest>0,Trunc(0.25*c2),c2)=Damage) then begin
  66.         Result := (Damage+Trunc((PrecentTable[2]/100.0)*Damage));
  67.         exit;
  68.     end;
  69.     Result := (Damage+Trunc((PrecentTable[3]/100.0)*Damage));
  70. end;
  71.  
  72. function Commands(Player: TActivePlayer; Text: string): Boolean;
  73. begin
  74.     if (Text='/loadwep') then if (Player.IsAdmin) then LoadDamage();
  75.     Result:=false;
  76. end;
  77.  
  78. initialization
  79. begin
  80.     ini := File.CreateINI(Script.Dir+'config.ini');
  81.     PrecentTable[1] := ini.ReadFloat('Modifier','Head',0);  PrecentTable[2] := ini.ReadFloat('Modifier','Legs',0);  PrecentTable[3] := ini.ReadFloat('Modifier','Torso',0);
  82.     ini.free;
  83.     LoadDamage();
  84.     for Decl := 1 to 32 do begin
  85.         Players[Decl].OnDamage := @HitBox;
  86.         Players[Decl].OnCommand := @Commands;
  87.     end;
  88.     Players.WriteConsole('HitBox 1.0.0 By Dominik - Recompiled!',$FFFFAA00);
  89. end;
  90.  
  91. finalization;
  92. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement