Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit HitBox;
- interface
- implementation
- var Decl: byte; PrecentTable: array [1..3] of double; ini: TIniFile; WeapDmg: array [1..17] of integer;
- procedure LoadDamage();
- begin
- if (Game.Realistic=false) then begin
- ini := File.CreateINI('/weapons.ini');
- WeapDmg[1]:=ini.ReadInteger('USSOCOM','Damage',149); WeapDmg[2]:=ini.ReadInteger('Desert Eagles','Damage',181); WeapDmg[3]:=ini.ReadInteger('HK MP5','Damage',101);
- WeapDmg[4]:=ini.ReadInteger('Ak-74','Damage',111); WeapDmg[5]:=ini.ReadInteger('Steyr AUG','Damage',71); WeapDmg[6]:=ini.ReadInteger('Spas-12','Damage',122);
- WeapDmg[7]:=ini.ReadInteger('Ruger 77','Damage',249); WeapDmg[8]:=ini.ReadInteger('M79','Damage',155000); WeapDmg[9]:=ini.ReadInteger('Barret M82A1','Damage',445);
- WeapDmg[10]:=ini.ReadInteger('FN Minimi','Damage',85); WeapDmg[11]:=ini.ReadInteger('XM214 Minigun','Damage',49); WeapDmg[12]:=ini.ReadInteger('Combat Knife','Damage',215000);
- WeapDmg[13]:=ini.ReadInteger('Chainsaw','Damage',5000); WeapDmg[14]:=ini.ReadInteger('M72 LAW','Damage',155000); WeapDmg[15]:=ini.ReadInteger('Punch','Damage',33000);
- WeapDmg[16]:=ini.ReadInteger('Rambo Bow','Damage',1200); WeapDmg[17]:=ini.ReadInteger('Flamed Arrows','Damage',800);
- ini.free;
- end else
- begin
- ini := File.CreateINI('/weapons_realistic.ini');
- WeapDmg[1]:=ini.ReadInteger('USSOCOM','Damage',130); WeapDmg[2]:=ini.ReadInteger('Desert Eagles','Damage',166); WeapDmg[3]:=ini.ReadInteger('HK MP5','Damage',94);
- WeapDmg[4]:=ini.ReadInteger('Ak-74','Damage',108); WeapDmg[5]:=ini.ReadInteger('Steyr AUG','Damage',68); WeapDmg[6]:=ini.ReadInteger('Spas-12','Damage',120);
- WeapDmg[7]:=ini.ReadInteger('Ruger 77','Damage',222); WeapDmg[8]:=ini.ReadInteger('M79','Damage',160000); WeapDmg[9]:=ini.ReadInteger('Barret M82A1','Damage',495);
- WeapDmg[10]:=ini.ReadInteger('FN Minimi','Damage',81); WeapDmg[11]:=ini.ReadInteger('XM214 Minigun','Damage',43); WeapDmg[12]:=ini.ReadInteger('Combat Knife','Damage',225000);
- WeapDmg[13]:=ini.ReadInteger('Chainsaw','Damage',2100); WeapDmg[14]:=ini.ReadInteger('M72 LAW','Damage',150000); WeapDmg[15]:=ini.ReadInteger('Punch','Damage',33000);
- WeapDmg[16]:=ini.ReadInteger('Rambo Bow','Damage',1200); WeapDmg[17]:=ini.ReadInteger('Flamed Arrows','Damage',800);
- ini.free;
- end;
- end;
- function GetDmg(ID:byte):integer;
- begin
- case (ID) of
- 0: Result:=WeapDmg[1];
- 1: Result:=WeapDmg[2];
- 2: Result:=WeapDmg[3];
- 3: Result:=WeapDmg[4];
- 4: Result:=WeapDmg[5];
- 5: Result:=WeapDmg[6];
- 6: Result:=WeapDmg[7];
- 7: Result:=WeapDmg[8];
- 8: Result:=WeapDmg[9];
- 9: Result:=WeapDmg[10];
- 10: Result:=WeapDmg[11];
- 11: Result:=WeapDmg[12];
- 12: Result:=WeapDmg[13];
- 13: Result:=WeapDmg[14];
- 14: Result:=WeapDmg[15];
- 15: Result:=WeapDmg[16];
- 16: Result:=WeapDmg[17];
- end;
- end;
- function HitBox(Shooter, Victim: TActivePlayer; Damage: Integer; Bullet: byte): Integer;
- var c, c2: integer; ShootSpeed: double;
- begin
- ShootSpeed:=sqrt((Map.Bullets[Bullet].VelX*Map.Bullets[Bullet].VelX)+(Map.Bullets[Bullet].VelY*Map.Bullets[Bullet].VelY));
- c := Trunc(GetDmg(Map.Bullets[Bullet].GetOwnerWeaponId)*(ShootSpeed/100)*iif(Game.Realistic,1.1,1.15));
- c2 := Trunc(GetDmg(Map.Bullets[Bullet].GetOwnerWeaponId)*(ShootSpeed/100)*iif(Game.Realistic,0.6,0.9));
- if (iif(Victim.Vest>0,Trunc(0.25*c),c)=Damage) then begin
- Result := (Damage+Trunc((PrecentTable[1]/100.0)*Damage));
- exit;
- end;
- if (iif(Victim.Vest>0,Trunc(0.25*c2),c2)=Damage) then begin
- Result := (Damage+Trunc((PrecentTable[2]/100.0)*Damage));
- exit;
- end;
- Result := (Damage+Trunc((PrecentTable[3]/100.0)*Damage));
- end;
- function Commands(Player: TActivePlayer; Text: string): Boolean;
- begin
- if (Text='/loadwep') then if (Player.IsAdmin) then LoadDamage();
- Result:=false;
- end;
- initialization
- begin
- ini := File.CreateINI(Script.Dir+'config.ini');
- PrecentTable[1] := ini.ReadFloat('Modifier','Head',0); PrecentTable[2] := ini.ReadFloat('Modifier','Legs',0); PrecentTable[3] := ini.ReadFloat('Modifier','Torso',0);
- ini.free;
- LoadDamage();
- for Decl := 1 to 32 do begin
- Players[Decl].OnDamage := @HitBox;
- Players[Decl].OnCommand := @Commands;
- end;
- Players.WriteConsole('HitBox 1.0.0 By Dominik - Recompiled!',$FFFFAA00);
- end;
- finalization;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement