SHOW:
|
|
- or go back to the newest paste.
| 1 | 'http://gtabkmodding.blogspot.in/ | |
| 2 | 'https://www.facebook.com/GTABKModding | |
| 3 | 'https://www.youtube.com/c/BKModdingForGTA | |
| 4 | ||
| 5 | 'QuickSilver script by GTA BK Modding | |
| 6 | ||
| 7 | 'Scripting, Ideas and Testing By | |
| 8 | 'GTA BK Modding(Me) :) | |
| 9 | ||
| 10 | 'QuickSilver Model By | |
| 11 | 'Sweet3d (http://gtaivpedworkshop.blogspot.in/) | |
| 12 | ||
| 13 | 'QuickSilver Retexture By | |
| 14 | 'Fanta Vy (https://www.youtube.com/channel/UCRTcjRrUodFz93c4QezDN5A) | |
| 15 | ||
| 16 | 'Requested By | |
| 17 | 'GTA Daman and Diu Stories (https://www.facebook.com/GTADDS) | |
| 18 | ||
| 19 | 'Note: I grouped all the declared variables so it may be easy for the reader to understand | |
| 20 | 'This was a complex code and i made it as simple as possible ;) | |
| 21 | ||
| 22 | 'Thanks Rockstar for this amazing game | |
| 23 | ||
| 24 | Imports System | |
| 25 | Imports GTA | |
| 26 | Imports System.Drawing | |
| 27 | Imports System.Windows.Forms | |
| 28 | Imports System.Collections.Generic | |
| 29 | Imports System.IO | |
| 30 | 'Imports SlimDX.XInput | |
| 31 | Imports System.Text | |
| 32 | ||
| 33 | Public Class QuickSilver | |
| 34 | Inherits Script | |
| 35 | 'Booleans | |
| 36 | Public QuickSilverOn As Boolean = False | |
| 37 | Public QuickSilverEnemy As Boolean = False | |
| 38 | Private EffectsEnabled As Boolean = False | |
| 39 | Private EnemyEnableWeapons As Boolean = False | |
| 40 | Public UseQuickSilverModel As Boolean = False | |
| 41 | Public DecisionTaken As Boolean = False | |
| 42 | Public TimeScaleOn As Boolean = False | |
| 43 | Public TimeScaleZero As Boolean = False | |
| 44 | Public EnemyTimeScale As Boolean = False | |
| 45 | 'End Booleans | |
| 46 | 'Generals | |
| 47 | Private iniFile As String | |
| 48 | Private QuickSilver As Int32 | |
| 49 | Private Speed As Int32 | |
| 50 | Private bTimeScale As Int32 | |
| 51 | Private bTimeScaleIncrease As Int32 | |
| 52 | Private bTimeScaleDecrease As Int32 | |
| 53 | Private EnemySpawnKey As Int32 | |
| 54 | Private Group As Group = Player.Group | |
| 55 | Shared TRandom As Random = New Random(System.DateTime.Now.Millisecond) | |
| 56 | Shared TRandom2 As Random = New Random(System.DateTime.Now.Second) | |
| 57 | Public TimeAux As Date | |
| 58 | Private EffectsID As Int32 | |
| 59 | Dim rndAnim As New Random() | |
| 60 | 'End Generals | |
| 61 | 'Peds | |
| 62 | Public PedModel As Model = "m_y_cowboy_01" | |
| 63 | Public allyPed As Ped = Nothing | |
| 64 | Public enemyPed As Ped = Nothing | |
| 65 | 'End Peds | |
| 66 | 'Doubles | |
| 67 | Private TimeScale As Double | |
| 68 | Private PlayerSpeedValue As Double | |
| 69 | Private EnemySpeedValue As Double | |
| 70 | Private timeWaitSearchTargets As Double = 0 | |
| 71 | Private targetAuxRoll As Double = 0 | |
| 72 | Private Decide As Double = 0 | |
| 73 | Private Decide2 As Double = 0 | |
| 74 | 'End Doubles | |
| 75 | 'Vector3s | |
| 76 | Private RunDir As Vector3 | |
| 77 | Private enemyForce As Vector3 | |
| 78 | Private tmpPos As Vector3 | |
| 79 | Private EnemyKickForce As Vector3 | |
| 80 | 'End Vector3s | |
| 81 | ||
| 82 | Public Sub New() | |
| 83 | Me.Interval = 10 | |
| 84 | Native.Function.Call("REQUEST_MODEL", 3721179013)
| |
| 85 | Native.Function.Call("REQUEST_MODEL", 1862763509)
| |
| 86 | If Settings.GetValueString("QuickSilverKey", "Main") = "" Then Settings.SetValue("QuickSilverKey", "Main", Keys.M)
| |
| 87 | If Settings.GetValueString("UseQuickSilverModel", "Main", "") = "" Then Settings.SetValue("UseQuickSilverModel", "Main", "1")
| |
| 88 | If Settings.GetValueString("EnemySpawnKey", "Main", "") = "" Then Settings.SetValue("EnemySpawnKey", "Main", Keys.PageDown)
| |
| 89 | If Settings.GetValueString("Speed", "General", "") = "" Then Settings.SetValue("Speed", "General", 8)
| |
| 90 | If Settings.GetValueString("bTimeScale", "General", "") = "" Then Settings.SetValue("bTimeScale", "General", Keys.R)
| |
| 91 | If Settings.GetValueString("bTimeScaleIncrease", "General", "") = "" Then Settings.SetValue("bTimeScaleIncrease", "General", Keys.E)
| |
| 92 | If Settings.GetValueString("bTimeScaleDecrease", "General", "") = "" Then Settings.SetValue("bTimeScaleDecrease", "General", Keys.Q)
| |
| 93 | If Settings.GetValueString("EffectsEnabled", "General", "") = "" Then Settings.SetValue("EffectsEnabled", "General", "1")
| |
| 94 | If Settings.GetValueString("EnemyEnableWeapons", "General", "") = "" Then Settings.SetValue("EnemyEnableWeapons", "General", "1")
| |
| 95 | Settings.Save() | |
| 96 | QuickSilver = Settings.GetValueKey("QuickSilverKey", "Main", Keys.M)
| |
| 97 | UseQuickSilverModel = Settings.GetValueKey("UseQuickSilverModel", "Main", "1") = "1"
| |
| 98 | EnemySpawnKey = Settings.GetValueKey("EnemySpawnKey", "Main", Keys.PageDown)
| |
| 99 | Speed = Settings.GetValueKey("Speed", "General", 8)
| |
| 100 | bTimeScale = Settings.GetValueKey("bTimeScale", "General", Keys.R)
| |
| 101 | bTimeScaleIncrease = Settings.GetValueKey("bTimeScaleIncrease", "General", Keys.E)
| |
| 102 | bTimeScaleDecrease = Settings.GetValueKey("bTimeScaleDecrease", "General", Keys.Q)
| |
| 103 | EffectsEnabled = Settings.GetValueString("EffectsEnabled", "General", "1") = "1"
| |
| 104 | EnemyEnableWeapons = Settings.GetValueString("EnemyEnableWeapons", "General", "1") = "1"
| |
| 105 | TimeScale = 0.2 | |
| 106 | EnemySpeedValue = 1.75F | |
| 107 | End Sub | |
| 108 | ||
| 109 | Shadows Sub keyDown(ByVal sender As Object, ByVal e As GTA.KeyEventArgs) Handles MyBase.KeyDown | |
| 110 | If e.Key = QuickSilver Then | |
| 111 | QuickSilverOn = Not QuickSilverOn | |
| 112 | If QuickSilverOn Then | |
| 113 | If UseQuickSilverModel Then | |
| 114 | Player.Model = New Model("m_y_cowboy_01")
| |
| 115 | End If | |
| 116 | Player.NeverGetsTired = True | |
| 117 | Native.Function.Call("SET_CHAR_DEFAULT_COMPONENT_VARIATION", Player.Character, True)
| |
| 118 | msg("Quicksilver!!!", 2000)
| |
| 119 | Else | |
| 120 | If UseQuickSilverModel Then | |
| 121 | Player.Model = New Model("m_y_cowboy_01")
| |
| 122 | End If | |
| 123 | Player.Character.Task.ClearAllImmediately() | |
| 124 | Player.NeverGetsTired = False | |
| 125 | Native.Function.Call("SET_CHAR_DEFAULT_COMPONENT_VARIATION", Player.Character, True)
| |
| 126 | Native.Function.Call("SET_CHAR_ALL_ANIMS_SPEED", Player.Character, 1.0)
| |
| 127 | Native.Function.Call("Set_Char_Move_Anim_Speed_Multiplier", Player.Character, 1.0)
| |
| 128 | Native.Function.Call("Set_Char_Climb_Anim_Rate", Player.Character, 1.0)
| |
| 129 | Game.TimeScale = 1.0 | |
| 130 | TimeScale = Nothing | |
| 131 | msg("Niko!!!", 2000)
| |
| 132 | End If | |
| 133 | End If | |
| 134 | If e.Key = EnemySpawnKey Then | |
| 135 | QuickSilverEnemy = Not QuickSilverEnemy | |
| 136 | If QuickSilverEnemy Then | |
| 137 | EnemyEvent() | |
| 138 | End If | |
| 139 | End If | |
| 140 | If QuickSilverOn Then | |
| 141 | If e.Key = bTimeScale Then | |
| 142 | TimeScaleOn = Not TimeScaleOn | |
| 143 | End If | |
| 144 | End If | |
| 145 | End Sub | |
| 146 | ||
| 147 | Private Sub EnemyEvent() | |
| 148 | If QuickSilverEnemy Then | |
| 149 | msg("Creating New enemy", 2000)
| |
| 150 | tmpPos = World.GetNextPositionOnPavement(Player.Character.Position.Around(50)) | |
| 151 | If tmpPos.DistanceTo(Player.Character.Position) > 50 Then tmpPos = Player.Character.Position.Around(50) | |
| 152 | If Exists(enemyPed) Then enemyPed.Delete() | |
| 153 | Wait(100) | |
| 154 | enemyPed = World.CreatePed(PedModel, tmpPos.ToGround) | |
| 155 | If Exists(enemyPed) Then | |
| 156 | enemyPed.AttachBlip() | |
| 157 | enemyPed.AttachBlip.Color = BlipColor.Cyan | |
| 158 | enemyPed.BecomeMissionCharacter() | |
| 159 | enemyPed.CurrentRoom = Player.Character.CurrentRoom | |
| 160 | enemyPed.SetPathfinding(True, True, True) | |
| 161 | enemyPed.AlwaysDiesOnLowHealth = False | |
| 162 | enemyPed.Enemy = True | |
| 163 | enemyPed.WillDoDrivebys = True | |
| 164 | enemyPed.PriorityTargetForEnemies = True | |
| 165 | enemyPed.CanSwitchWeapons = True | |
| 166 | enemyPed.DuckWhenAimedAtByGroupMember = True | |
| 167 | enemyPed.WillFlyThroughWindscreen = True | |
| 168 | enemyPed.Accuracy = 100 | |
| 169 | enemyPed.StartKillingSpree(alsoAttackPlayer:=True) | |
| 170 | enemyPed.Task.FightAgainst(Player.Character) | |
| 171 | enemyPed.MaxHealth = 18000 | |
| 172 | enemyPed.Armor = 18000 | |
| 173 | enemyPed.Health = 18000 | |
| 174 | enemyPed.MakeProofTo(False, True, False, False, False) | |
| 175 | If Not EnemyEnableWeapons Then | |
| 176 | enemyPed.Weapons.RemoveAll() | |
| 177 | Else | |
| 178 | enemyPed.Weapons.MP5.Ammo = 300 | |
| 179 | enemyPed.Weapons.MP5.Select() | |
| 180 | If enemyPed.Weapons.MP5.Ammo = 0 Then | |
| 181 | enemyPed.Weapons.RocketLauncher.Ammo = 50 | |
| 182 | enemyPed.Weapons.Grenades.Ammo = 50 | |
| 183 | enemyPed.Weapons.AssaultRifle_M4.Ammo = 600 | |
| 184 | enemyPed.Weapons.DesertEagle.Ammo = 1500 | |
| 185 | enemyPed.Weapons.BarettaShotgun.Ammo = 80 | |
| 186 | End If | |
| 187 | End If | |
| 188 | End If | |
| 189 | End If | |
| 190 | End Sub | |
| 191 | ||
| 192 | Shadows Sub keyUp(ByVal sender As Object, ByVal e As GTA.KeyEventArgs) Handles MyBase.KeyUp | |
| 193 | End Sub | |
| 194 | ||
| 195 | Public Sub Effects(ByVal EffectsPed As Ped) | |
| 196 | Native.Function.Call("TRIGGER_PTFX_ON_PED_BONE", "qub_sm_explode_blue", EffectsPed, 0, 0, 0, 0, 0, 0, Bone.Spine, 0.25)
| |
| 197 | Native.Function.Call("TRIGGER_PTFX_ON_PED_BONE", "qub_sm_explode_blue", EffectsPed, 0, 0, 0, 0, 0, 0, Bone.LeftArmRoll, 0.25)
| |
| 198 | Native.Function.Call("TRIGGER_PTFX_ON_PED_BONE", "qub_sm_explode_blue", EffectsPed, 0, 0, 0, 0, 0, 0, Bone.RightArmRoll, 0.25)
| |
| 199 | Native.Function.Call("TRIGGER_PTFX_ON_PED_BONE", "qub_sm_explode_blue", EffectsPed, 0, 0, 0, 0, 0, 0, Bone.LeftFoot, 0.25)
| |
| 200 | Native.Function.Call("TRIGGER_PTFX_ON_PED_BONE", "qub_sm_explode_blue", EffectsPed, 0, 0, 0, 0, 0, 0, Bone.RightFoot, 0.25)
| |
| 201 | Native.Function.Call("TRIGGER_PTFX_ON_PED_BONE", "qub_sm_explode_blue", EffectsPed, 0, 0, 0, 0, 0, 0, Bone.RightHand, 0.25)
| |
| 202 | Native.Function.Call("TRIGGER_PTFX_ON_PED_BONE", "qub_sm_explode_blue", EffectsPed, 0, 0, 0, 0, 0, 0, Bone.LeftHand, 0.25)
| |
| 203 | End Sub | |
| 204 | ||
| 205 | Private Sub general_tick(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Tick | |
| 206 | If TimeScaleOn Then | |
| 207 | If TimeScale = 0 Then | |
| 208 | TimeScaleZero = Not TimeScaleZero | |
| 209 | End If | |
| 210 | End If | |
| 211 | If QuickSilverOn Then | |
| 212 | If Player.Character.isInAir = False AndAlso Player.Character.isRagdoll = False Then | |
| 213 | If Game.isGameKeyPressed(GameKey.Sprint) Then | |
| 214 | PlayerSpeedValue = 1.75F | |
| 215 | If (Game.isGameKeyPressed(GameKey.MoveForward) OrElse Game.isGameKeyPressed(GameKey.MoveLeft) OrElse Game.isGameKeyPressed(GameKey.MoveRight)) Then | |
| 216 | RunDir.X = Player.Character.Direction.X * Speed '8 | |
| 217 | RunDir.Y = Player.Character.Direction.Y * Speed '8 | |
| 218 | RunDir.Z = Player.Character.Direction.Z | |
| 219 | ||
| 220 | Player.Character.ApplyForce(RunDir) | |
| 221 | End If | |
| 222 | Native.Function.Call("set_char_all_anims_speed", Player.Character, PlayerSpeedValue)
| |
| 223 | If EffectsEnabled Then | |
| 224 | Effects(Player.Character) | |
| 225 | End If | |
| 226 | Else | |
| 227 | If Player.Character.isInMeleeCombat Then | |
| 228 | PlayerSpeedValue = 2.0F | |
| 229 | Else | |
| 230 | PlayerSpeedValue = 1.1F | |
| 231 | End If | |
| 232 | Speed -= 0.5 | |
| 233 | If Speed < 0 Then Speed = 0 | |
| 234 | End If | |
| 235 | End If | |
| 236 | If TimeScaleOn Then | |
| 237 | Game.TimeScale = TimeScale | |
| 238 | msg("TimeScale: " & TimeScale.ToString, 2000)
| |
| 239 | If TimeScale = 0.2 Then | |
| 240 | Native.Function.Call("SET_CHAR_ALL_ANIMS_SPEED", Player.Character, 5.0F)
| |
| 241 | Native.Function.Call("Set_Char_Move_Anim_Speed_Multiplier", Player.Character, 5.0F)
| |
| 242 | Native.Function.Call("Set_Char_Climb_Anim_Rate", Player.Character, 5.0F)
| |
| 243 | End If | |
| 244 | If Game.isKeyPressed(bTimeScaleIncrease) Then | |
| 245 | TimeScale += 0.1 | |
| 246 | If TimeScale > 1.0 Then TimeScale = 1.0 | |
| 247 | ElseIf Game.isKeyPressed(bTimeScaleDecrease) Then | |
| 248 | TimeScale -= 0.1 | |
| 249 | If TimeScale < 0 Then TimeScale = 0 | |
| 250 | End If | |
| 251 | If TimeScaleZero Then | |
| 252 | Native.Function.Call("SET_CHAR_ALL_ANIMS_SPEED", Player.Character, 10.0F)
| |
| 253 | Native.Function.Call("Set_Char_Move_Anim_Speed_Multiplier", Player.Character, 10.0F)
| |
| 254 | Native.Function.Call("Set_Char_Climb_Anim_Rate", Player.Character, 10.0F)
| |
| 255 | End If | |
| 256 | Else | |
| 257 | Native.Function.Call("SET_CHAR_ALL_ANIMS_SPEED", Player.Character, PlayerSpeedValue)
| |
| 258 | Native.Function.Call("Set_Char_Move_Anim_Speed_Multiplier", Player.Character, PlayerSpeedValue)
| |
| 259 | Native.Function.Call("Set_Char_Climb_Anim_Rate", Player.Character, PlayerSpeedValue)
| |
| 260 | Game.TimeScale = 1.0 | |
| 261 | TimeScale = 0.2 | |
| 262 | End If | |
| 263 | End If | |
| 264 | If QuickSilverOn Then | |
| 265 | Player.MaxHealth = 100 | |
| 266 | Player.Character.MaxHealth = 100 | |
| 267 | Player.Character.Health = 100 | |
| 268 | Player.MaxArmor = 100 | |
| 269 | Player.Character.Armor = 100 | |
| 270 | Dim Armor As Integer = Player.Character.Armor | |
| 271 | Dim Health As Integer = Player.Character.Health | |
| 272 | If (Player.Character.isAlive AndAlso Armor < 100) Then | |
| 273 | Player.Character.Armor += 0.5 | |
| 274 | End If | |
| 275 | If (Player.Character.isAlive AndAlso Armor < Health) Then | |
| 276 | Player.Character.Health += 0.5 | |
| 277 | End If | |
| 278 | End If | |
| 279 | End Sub | |
| 280 | ||
| 281 | Private Sub Enemy_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Tick | |
| 282 | If QuickSilverEnemy Then | |
| 283 | If Exists(enemyPed) Then | |
| 284 | If enemyPed.isIdle Then | |
| 285 | enemyPed.StartKillingSpree(alsoAttackPlayer:=True) | |
| 286 | enemyPed.Task.FightAgainst(Player.Character) | |
| 287 | End If | |
| 288 | End If | |
| 289 | End If | |
| 290 | If TimeScaleOn Then | |
| 291 | If TimeScale = 0 Then | |
| 292 | TimeScaleZero = Not TimeScaleZero | |
| 293 | End If | |
| 294 | End If | |
| 295 | If QuickSilverEnemy Then | |
| 296 | If Exists(enemyPed) Then | |
| 297 | If enemyPed.isDead AndAlso Not enemyPed.isAlive Then | |
| 298 | If enemyPed.AttachBlip.Exists Then | |
| 299 | enemyPed.AttachBlip.Delete() | |
| 300 | End If | |
| 301 | End If | |
| 302 | If EffectsEnabled Then | |
| 303 | If enemyPed.isAlive Then | |
| 304 | Effects(enemyPed) | |
| 305 | End If | |
| 306 | End If | |
| 307 | Decide = TRandom.Next(200, 400) | |
| 308 | If Decide <= 225 Then | |
| 309 | DecisionTaken = True | |
| 310 | Else | |
| 311 | DecisionTaken = False | |
| 312 | End If | |
| 313 | Dim AllPeds As Ped() = Nothing | |
| 314 | AllPeds = World.GetAllPeds | |
| 315 | If Exists(AllPeds) Then | |
| 316 | For Each p As Ped In AllPeds | |
| 317 | If Exists(p) AndAlso (p <> enemyPed) AndAlso (enemyPed.isAlive) AndAlso Not (enemyPed.isDead) AndAlso (p.isAlive) AndAlso Not Exists(p.CurrentVehicle) Then | |
| 318 | If enemyPed.Position.DistanceTo(p.Position) < 2.0 Then | |
| 319 | If DecisionTaken Then | |
| 320 | enemyPed.PreventRagdoll = True | |
| 321 | enemyPed.isRagdoll = False | |
| 322 | Dim MeleeAnimSet As AnimationSet | |
| 323 | Dim MeleeAnimName1 As String = "lowblow_r" | |
| 324 | Dim MeleeAnimName2 As String = "lowblow_l" | |
| 325 | MeleeAnimSet = New AnimationSet("melee_player_unarmed")
| |
| 326 | ||
| 327 | Native.Function.Call("REQUEST_ANIMS", MeleeAnimSet.Name)
| |
| 328 | ||
| 329 | If rndAnim.Next(0, 2) >= 1 Then | |
| 330 | enemyPed.Animation.Play(MeleeAnimSet, MeleeAnimName1, 8.0) | |
| 331 | Else | |
| 332 | enemyPed.Animation.Play(MeleeAnimSet, MeleeAnimName2, 8.0) | |
| 333 | End If | |
| 334 | If enemyPed.Animation.isPlaying(MeleeAnimSet, MeleeAnimName1) OrElse | |
| 335 | enemyPed.Animation.isPlaying(MeleeAnimSet, MeleeAnimName2) Then | |
| 336 | If (p.Position.DistanceTo(enemyPed.GetBonePosition(Bone.RightHand)) OrElse p.Position.DistanceTo(enemyPed.GetBonePosition(Bone.LeftHand))) < 1.0 Then | |
| 337 | enemyPed.Heading = Helper.DirectionToHeading(p.Position - enemyPed.Position) | |
| 338 | enemyPed.ApplyForce(Vector3.Normalize(p.Position - enemyPed.Position) * Speed) | |
| 339 | enemyForce.X = enemyPed.Direction.X * Speed '8 | |
| 340 | enemyForce.Y = enemyPed.Direction.Y * Speed '8 | |
| 341 | enemyForce.Z = enemyPed.Direction.Z | |
| 342 | ||
| 343 | p.ApplyForce(enemyForce) | |
| 344 | p.PreventRagdoll = False | |
| 345 | p.ForceRagdoll(2000, False) | |
| 346 | Native.Function.Call("damage_char", p, 20, 0)
| |
| 347 | End If | |
| 348 | End If | |
| 349 | Wait(100) | |
| 350 | If p.Position.DistanceTo(enemyPed.Position) > 5.0 Then | |
| 351 | enemyPed.PreventRagdoll = False | |
| 352 | End If | |
| 353 | enemyPed.StartKillingSpree(alsoAttackPlayer:=True) | |
| 354 | enemyPed.Task.FightAgainst(Player.Character) | |
| 355 | End If | |
| 356 | End If | |
| 357 | End If | |
| 358 | Next | |
| 359 | End If | |
| 360 | End If | |
| 361 | End If | |
| 362 | If QuickSilverEnemy Then | |
| 363 | If Exists(enemyPed) Then | |
| 364 | If TimeScaleOn Then | |
| 365 | Native.Function.Call("SET_CHAR_ALL_ANIMS_SPEED", enemyPed, 5.0F)
| |
| 366 | Native.Function.Call("Set_Char_Move_Anim_Speed_Multiplier", enemyPed, 5.0F)
| |
| 367 | Native.Function.Call("Set_Char_Climb_Anim_Rate", enemyPed, 5.0F)
| |
| 368 | If TimeScaleZero Then | |
| 369 | Native.Function.Call("SET_CHAR_ALL_ANIMS_SPEED", enemyPed, 10.0F)
| |
| 370 | Native.Function.Call("Set_Char_Move_Anim_Speed_Multiplier", enemyPed, 10.0F)
| |
| 371 | Native.Function.Call("Set_Char_Climb_Anim_Rate", enemyPed, 10.0F)
| |
| 372 | End If | |
| 373 | Else | |
| 374 | Native.Function.Call("SET_CHAR_ALL_ANIMS_SPEED", enemyPed, EnemySpeedValue)
| |
| 375 | Native.Function.Call("Set_Char_Move_Anim_Speed_Multiplier", enemyPed, EnemySpeedValue)
| |
| 376 | Native.Function.Call("Set_Char_Climb_Anim_Rate", enemyPed, EnemySpeedValue)
| |
| 377 | End If | |
| 378 | End If | |
| 379 | End If | |
| 380 | End Sub | |
| 381 | ||
| 382 | Private Sub console_CMD(ByVal sender As Object, ByVal e As ConsoleEventArgs) Handles MyBase.ConsoleCommand | |
| 383 | End Sub | |
| 384 | ||
| 385 | Private Sub GraphicsEventHandler(ByVal sender As Object, ByVal e As GTA.GraphicsEventArgs) Handles MyBase.PerFrameDrawing | |
| 386 | End Sub | |
| 387 | ||
| 388 | Private Sub msg(ByVal sMsg As String, ByVal time As Int32) | |
| 389 | Native.Function.Call("PRINT_STRING_WITH_LITERAL_STRING_NOW", "STRING", sMsg, time, 1)
| |
| 390 | End Sub | |
| 391 | Private Declare Auto Function GetPrivateProfileString Lib "Kernel32" _ | |
| 392 | (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As StringBuilder, ByVal nSize As Integer, ByVal lpFileName As String) As Integer | |
| 393 | ||
| 394 | Private Declare Auto Function WritePrivateProfileString Lib "Kernel32" _ | |
| 395 | (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Integer | |
| 396 | ||
| 397 | Private Function ReadINI(ByVal key_name As String, ByVal section_name As String, ByVal default_value As String) As String | |
| 398 | Const MAX_LENGTH As Integer = 500 | |
| 399 | Dim string_builder As New StringBuilder(MAX_LENGTH) | |
| 400 | ||
| 401 | GetPrivateProfileString(section_name, key_name, default_value, string_builder, MAX_LENGTH, iniFile) | |
| 402 | ||
| 403 | Return string_builder.ToString() | |
| 404 | End Function | |
| 405 | ||
| 406 | Private Sub WriteINI(ByVal key_name As String, ByVal section_name As String, ByVal value As String) | |
| 407 | WritePrivateProfileString(section_name, key_name, value, iniFile) | |
| 408 | End Sub | |
| 409 | ||
| 410 | Private Sub checkIniExists() | |
| 411 | If Not File.Exists(iniFile) Then | |
| 412 | File.CreateText(iniFile).Dispose() | |
| 413 | ||
| 414 | Wait(100) | |
| 415 | End If | |
| 416 | End Sub | |
| 417 | ||
| 418 | Private Function Read_INI_String(opt As String, categoy As String, def As String) As String | |
| 419 | If ReadINI(opt, categoy, "") = "" Then WriteINI(opt, categoy, def) | |
| 420 | ||
| 421 | Return ReadINI(opt, categoy, def) | |
| 422 | End Function | |
| 423 | End Class |