├── .github └── FUNDING.yml ├── CLEO Redux ├── Essential files │ └── GTA SA │ │ ├── .config │ │ ├── cleo.ini │ │ ├── enums.js │ │ ├── events.d.ts │ │ ├── ide_loader.d.ts │ │ ├── sa.d.ts │ │ ├── sa.enums.js │ │ ├── sa.json │ │ ├── txt_loader.d.ts │ │ ├── u.cache │ │ ├── unknown.d.ts │ │ ├── unknown_x86.enums.js │ │ └── unknown_x86.json │ │ ├── .vscode │ │ └── settings.json │ │ └── CLEO_PLUGINS │ │ ├── Events.cleo │ │ ├── Frontend.cleo │ │ ├── IdeLoader.cleo │ │ ├── ImGuiReduxWin32.cleo │ │ ├── IniFiles.cleo │ │ ├── Input.cleo │ │ ├── MemoryOperations.cleo │ │ ├── TextLoader.cleo │ │ └── dylib.cleo ├── GTA IV │ └── Ragdoll mod │ │ ├── index.ts │ │ └── readMe.md ├── GTA SA │ ├── Assassin │ │ ├── Assassin[mem] │ │ │ ├── Missions │ │ │ │ ├── mis01[mem].ts │ │ │ │ ├── mis02[mem].ts │ │ │ │ └── template.ts │ │ │ ├── index.ts │ │ │ └── missions.ts │ │ ├── missionHelper.ts │ │ ├── readMe.md │ │ └── sa_enums.ts │ ├── Classes │ │ ├── CCamera.ts │ │ ├── CEntity.ts │ │ ├── CFire.ts │ │ ├── CGame.ts │ │ ├── CPad.ts │ │ ├── CPed.ts │ │ ├── CPhysical.ts │ │ ├── CPickups.ts │ │ ├── CPlaceable.ts │ │ ├── CPlayerPed.ts │ │ ├── CRenderer.ts │ │ ├── CSprite.ts │ │ ├── CVector.ts │ │ ├── CVehicle.ts │ │ ├── CWeapon.ts │ │ ├── CWorld.ts │ │ ├── Functions.ts │ │ ├── ePedBones.ts │ │ ├── examples │ │ │ ├── dynamicFov[mem].ts │ │ │ ├── headRotation[mem].ts │ │ │ ├── manualReload[mem].ts │ │ │ ├── pedsCatchFire[mem].ts │ │ │ ├── readMe.html │ │ │ └── readMe.md │ │ ├── readMe.html │ │ └── readMe.md │ ├── Console │ │ ├── Console[mem] │ │ │ ├── ForDevelopers.txt │ │ │ ├── configs.ts │ │ │ └── index.ts │ │ ├── readMe.md │ │ └── sa_enums.ts │ ├── Quick Body │ │ ├── quickBody.ts │ │ ├── readMe.md │ │ └── simpleMenu.ts │ ├── Quick Teleporter │ │ ├── quickTeleporter[mem].ts │ │ ├── readMe.md │ │ └── simpleMenu.ts │ ├── ReHUD[fs][mem] │ │ ├── index.js │ │ ├── readMe.md │ │ ├── rehud.fxt │ │ ├── rehud.ini │ │ └── texts.json │ ├── VTrainer[fs][mem] │ │ ├── index.ts │ │ ├── old.js │ │ ├── readMe.md │ │ ├── settings.ini │ │ └── texts.ts │ └── readMe.md ├── cleo_redux_1.3.3.x64.zip ├── cleo_redux_1.3.3.x86.zip └── cleo_redux_setup.exe ├── GTA3script ├── Editor settings │ ├── ReadMe.md │ ├── config │ │ ├── gta3 │ │ │ └── constants.xml │ │ └── gtavc │ │ │ └── commands.xml │ ├── gta3script.json │ └── settings.json ├── GTA III [1.1] │ ├── Grenade to car bomb │ │ ├── CarGrenade_III.cs │ │ ├── CarGrenade_III.sc │ │ └── ReadMe.md │ └── Walking │ │ ├── ReadMe.md │ │ ├── Walking_III.cs │ │ └── Walking_III.sc ├── GTA SA │ ├── Game speed changer │ │ ├── GameSpeed_SA.cs │ │ ├── GameSpeed_SA.sc │ │ └── ReadMe.md │ └── Mouse steering fix │ │ ├── MouseSteeringFix_SA.cs │ │ ├── MouseSteeringFix_SA.sc │ │ └── ReadMe.md └── GTA VC │ ├── Climb (High jump) │ ├── Climb_VC.cs │ ├── Climb_VC.sc │ └── ReadMe.md │ ├── Fiery explosions │ ├── FireExplosion_VC.cs │ ├── FireExplosion_VC.sc │ └── ReadMe.md │ ├── Fire propagation │ ├── FirePropagation_VC.cs │ ├── FirePropagation_VC.sc │ └── ReadMe.md │ └── Mouse steering │ ├── MouseControl_VC.cs │ ├── MouseControl_VC.sc │ └── ReadMe.md ├── LICENSE ├── README.md └── Sanny Builder ├── 2nd player bot ├── Player2.cs ├── Player2.txt └── ReadMe.md ├── Air & Land ├── Builds (Year - Month - Day) │ ├── 2018 - 09 - 08 │ │ └── MPACK │ │ │ └── MPACK6 │ │ │ ├── mpack.dat │ │ │ ├── scr.scm │ │ │ ├── scr.txt │ │ │ └── text.gxt │ ├── 2019 - 06 - 30 │ │ └── MPACK │ │ │ └── MPACK6 │ │ │ ├── mpack.dat │ │ │ ├── scr.scm │ │ │ ├── scr.txt │ │ │ └── text.gxt │ ├── 2020 - 07 - 10 │ │ └── MPACK │ │ │ └── MPACK6 │ │ │ ├── mpack.dat │ │ │ ├── scr.scm │ │ │ ├── scr.txt │ │ │ └── text.gxt │ ├── TEST BUILD │ │ └── MPACK │ │ │ └── MPACK6 │ │ │ ├── mpack.dat │ │ │ ├── scr.scm │ │ │ ├── scr.txt │ │ │ └── text.gxt │ ├── changelog EN.md │ └── changelog RU.md ├── ReadMe(ENG).md ├── ReadMe(RUS).md └── saloc-slt-0-56-install_actual_ver_sanltd_ru.exe ├── AntiGlitch ├── AntiGlitch.cs ├── AntiGlitch.txt └── ReadMe.md ├── Bombing ├── Bombing.cs └── ReadMe.md ├── Bullet tracers ├── ReadMe.md ├── Tracers.cs └── Tracers.txt ├── Car bomb ├── Explos.cs └── ReadMe.md ├── Car shootout ├── ReadMe.md ├── TurrEx.cs └── TurrEx.txt ├── Gravity mod ├── GravMod.cs ├── GravMod.txt └── ReadMe.md ├── Height meter ├── GxtHook.cleo ├── Height.cs ├── Height.txt ├── ReadMe.md └── height.fxt ├── Light HUD ├── LightHUD.cs ├── LightHUD.txt └── ReadMe.md ├── Melee autoaim ├── ContrChange.cs ├── ContrChange.txt └── ReadMe.md ├── Mouse travel ├── MouseTravel.cs ├── MouseTravel.txt └── ReadMe.md ├── RC helicopter ├── RCHeli.cs ├── RCHeli.txt └── ReadMe.md ├── Random fighting styles ├── RandFS.cs ├── RandFS.txt └── ReadMe.md ├── Random race ├── Racing.cs ├── Racing.txt └── ReadMe.md ├── Simple HUD ├── ReadMe.md ├── SimpleHUD.cs └── SimpleHUD.txt ├── Sniper bullet trace ├── ReadMe.md ├── SnBulTrace.cs └── SnBulTrace.txt ├── Snow on Screen ├── ReadMe.md ├── Snow.cs └── Snow.txt ├── Speed effects ├── ReadMe.md ├── SpeedEffect.cs └── SpeedEffect.txt ├── Speedometer ├── ReadMe.md ├── Speedometer.cs └── Speedometer.txt ├── SuperAbilities ├── SupAb_by_Vital.cs ├── SupAb_by_Vital.txt └── SuperAbilities by Vital Readme.md ├── SuperJump ├── ReadMe.md ├── SJ.cs ├── SJ.ini └── SJ.txt ├── Walk toggle ├── ReadMe.html ├── ReadMe.md ├── WalkToggle.cs └── WalkToggle.txt ├── Wanted Timer ├── ReadMe.md ├── WantedTimer.cs └── WantedTimer.txt └── Weapon spheres ├── ReadMe.md ├── WeapSph.cs ├── WeapSph.txt └── weapl.ini /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: [paypal.com/paypalme/vitalrus, yoomoney.ru/to/4100117837152403] 13 | -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/.config/cleo.ini: -------------------------------------------------------------------------------- 1 | [General] 2 | AllowCs=1 3 | AllowJs=1 4 | AllowFxt=1 5 | LogOpcodes=0 6 | PermissionLevel=Lax 7 | 8 | [Host] 9 | EnableSelfHost=1 10 | SelfHostFps=30 11 | 12 | [Permissions] 13 | mem=1 14 | dll=1 15 | fs=0 16 | net=0 17 | -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/.config/enums.js: -------------------------------------------------------------------------------- 1 | // this file is autogenerated. do not modify. 2 | export * from "./sa.enums.js" 3 | -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/.config/events.d.ts: -------------------------------------------------------------------------------- 1 | declare function addEventListener( 2 | event: "OnVehicleCreate", 3 | callback: (event: CleoEvent<{ address: number }>) => void 4 | ): () => void; 5 | 6 | declare function addEventListener( 7 | event: "OnPedCreate", 8 | callback: (event: CleoEvent<{ address: number }>) => void 9 | ): () => void; 10 | 11 | declare function addEventListener( 12 | event: "OnObjectCreate", 13 | callback: (event: CleoEvent<{ address: number }>) => void 14 | ): () => void; 15 | 16 | declare function addEventListener( 17 | event: "OnVehicleDelete", 18 | callback: (event: CleoEvent<{ address: number }>) => void 19 | ): () => void; 20 | 21 | declare function addEventListener( 22 | event: "OnPedDelete", 23 | callback: (event: CleoEvent<{ address: number }>) => void 24 | ): () => void; 25 | 26 | declare function addEventListener( 27 | event: "OnObjectDelete", 28 | callback: (event: CleoEvent<{ address: number }>) => void 29 | ): () => void; 30 | -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/.config/ide_loader.d.ts: -------------------------------------------------------------------------------- 1 | // Ide Loader (IdeLoader.cleo, IdeLoader64.cleo) 2 | declare module "*.ide" { 3 | enum IdeKey { 4 | _2dfx = "2dfx", 5 | amat = "amat", 6 | anim = "anim", 7 | cars = "cars", 8 | hier = "hier", 9 | hand = "hand", 10 | mlo = "mlo", 11 | objs = "objs", 12 | path = "path", 13 | peds = "peds", 14 | tanm = "tanm", 15 | tobj = "tobj", 16 | tree = "tree", 17 | txdp = "txdp", 18 | weap = "weap", 19 | } 20 | const value: Record; 21 | export default value; 22 | } 23 | -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/.config/txt_loader.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.txt" { 2 | const value: string[]; 3 | export default value; 4 | } 5 | 6 | declare module "*.text" { 7 | const value: string[]; 8 | export default value; 9 | } 10 | -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/.config/u.cache: -------------------------------------------------------------------------------- 1 | 1742665524 -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/.config/unknown_x86.enums.js: -------------------------------------------------------------------------------- 1 | export const ImGuiCond = { 2 | "None": 0, 3 | "Always": 1, 4 | "Once": 2, 5 | "FirstUseEver": 4, 6 | "Appearing": 8 7 | }; 8 | export const KeyCode = { 9 | "LeftButton": 1, 10 | "RightButton": 2, 11 | "Cancel": 3, 12 | "MiddleButton": 4, 13 | "CustomButton1": 5, 14 | "CustomButton2": 6, 15 | "Back": 8, 16 | "Tab": 9, 17 | "Clear": 12, 18 | "Return": 13, 19 | "Shift": 16, 20 | "Ctrl": 17, 21 | "Pause": 19, 22 | "Capital": 20, 23 | "Kana": 21, 24 | "Junja": 23, 25 | "Final": 24, 26 | "Kanji": 25, 27 | "Escape": 27, 28 | "Convert": 28, 29 | "NonConvert": 29, 30 | "Accept": 30, 31 | "ModeChange": 31, 32 | "Space": 32, 33 | "Prior": 33, 34 | "Next": 34, 35 | "End": 35, 36 | "Home": 36, 37 | "Left": 37, 38 | "Up": 38, 39 | "Right": 39, 40 | "Down": 40, 41 | "Select": 41, 42 | "Print": 42, 43 | "Execute": 43, 44 | "Snapshot": 44, 45 | "Insert": 45, 46 | "Delete": 46, 47 | "Help": 47, 48 | "Num0": 48, 49 | "Num1": 49, 50 | "Num2": 50, 51 | "Num3": 51, 52 | "Num4": 52, 53 | "Num5": 53, 54 | "Num6": 54, 55 | "Num7": 55, 56 | "Num8": 56, 57 | "Num9": 57, 58 | "A": 65, 59 | "B": 66, 60 | "C": 67, 61 | "D": 68, 62 | "E": 69, 63 | "F": 70, 64 | "G": 71, 65 | "H": 72, 66 | "I": 73, 67 | "J": 74, 68 | "K": 75, 69 | "L": 76, 70 | "M": 77, 71 | "N": 78, 72 | "O": 79, 73 | "P": 80, 74 | "Q": 81, 75 | "R": 82, 76 | "S": 83, 77 | "T": 84, 78 | "U": 85, 79 | "V": 86, 80 | "W": 87, 81 | "X": 88, 82 | "Y": 89, 83 | "Z": 90, 84 | "LeftWin": 91, 85 | "RightWin": 92, 86 | "Apps": 93, 87 | "Sleep": 95, 88 | "NumPad0": 96, 89 | "NumPad1": 97, 90 | "NumPad2": 98, 91 | "NumPad3": 99, 92 | "NumPad4": 100, 93 | "NumPad5": 101, 94 | "NumPad6": 102, 95 | "NumPad7": 103, 96 | "NumPad8": 104, 97 | "NumPad9": 105, 98 | "Multiply": 106, 99 | "Add": 107, 100 | "Separator": 108, 101 | "Subtract": 109, 102 | "Decimal": 110, 103 | "Divide": 111, 104 | "F1": 112, 105 | "F2": 113, 106 | "F3": 114, 107 | "F4": 115, 108 | "F5": 116, 109 | "F6": 117, 110 | "F7": 118, 111 | "F8": 119, 112 | "F9": 120, 113 | "F10": 121, 114 | "F11": 122, 115 | "F12": 123, 116 | "F13": 124, 117 | "F14": 125, 118 | "F15": 126, 119 | "F16": 127, 120 | "F17": 128, 121 | "F18": 129, 122 | "F19": 130, 123 | "F20": 131, 124 | "F21": 132, 125 | "F22": 133, 126 | "F23": 134, 127 | "F24": 135, 128 | "NumLock": 144, 129 | "Scroll": 145, 130 | "OemFjjisho": 146, 131 | "OemFjmasshou": 147, 132 | "OemFjtouroku": 148, 133 | "OemFjloya": 149, 134 | "OemFjroya": 150, 135 | "LeftShift": 160, 136 | "RightShift": 161, 137 | "LeftControl": 162, 138 | "RightControl": 163, 139 | "LeftMenu": 164, 140 | "RightMenu": 165, 141 | "BrowserBack": 166, 142 | "BrowserForward": 167, 143 | "BrowserRefresh": 168, 144 | "BrowserStop": 169, 145 | "BrowserSearch": 170, 146 | "BrowserFavorites": 171, 147 | "BrowserHome": 172, 148 | "VolumeMute": 173, 149 | "VolumeDown": 174, 150 | "VolumeUp": 175, 151 | "MediaNextTrack": 176, 152 | "MediaPrevTrack": 177, 153 | "MediaStop": 178, 154 | "MediaPlaypause": 179, 155 | "LaunchMail": 180, 156 | "LaunchMediaselect": 181, 157 | "LaunchApp1": 182, 158 | "LaunchApp2": 183, 159 | "Oem1": 186, 160 | "OemPlus": 187, 161 | "OemComma": 188, 162 | "OemMinus": 189, 163 | "OemPeriod": 190, 164 | "Oem2": 191, 165 | "Oem3": 192, 166 | "Abntc1": 193, 167 | "Abntc2": 194, 168 | "Oem4": 219, 169 | "Oem5": 220, 170 | "Oem6": 221, 171 | "Oem7": 222, 172 | "Oem8": 223, 173 | "OemAx": 225, 174 | "Oem102": 226, 175 | "IcoHelp": 227, 176 | "Ico00": 228, 177 | "Processkey": 229, 178 | "Icoclear": 230, 179 | "Packet": 231, 180 | "OemReset": 233, 181 | "OemJump": 234, 182 | "OemPa1": 235, 183 | "OemPa2": 236, 184 | "OemPa3": 237, 185 | "OemWsctrl": 238, 186 | "OemCusel": 239, 187 | "OemAttn": 240, 188 | "OemFinish": 241, 189 | "OemCopy": 242, 190 | "OemAuto": 243, 191 | "OemEnlw": 244, 192 | "OemBackTab": 245, 193 | "Attn": 246, 194 | "Crsel": 247, 195 | "Exsel": 248, 196 | "Ereof": 249, 197 | "Play": 250, 198 | "Zoom": 251, 199 | "Noname": 252, 200 | "Pa1": 253, 201 | "OemClear": 254 202 | }; 203 | export const ImGuiCol = { 204 | "Text": 0, 205 | "TextDisabled": 1, 206 | "WindowBg": 2, 207 | "ChildBg": 3, 208 | "PopupBg": 4, 209 | "Border": 5, 210 | "BorderShadow": 6, 211 | "FrameBg": 7, 212 | "FrameBgHovered": 8, 213 | "FrameBgActive": 9, 214 | "TitleBg": 10, 215 | "TitleBgActive": 11, 216 | "TitleBgCollapsed": 12, 217 | "MenuBarBg": 13, 218 | "ScrollbarBg": 14, 219 | "ScrollbarGrab": 15, 220 | "ScrollbarGrabHovered": 16, 221 | "ScrollbarGrabActive": 17, 222 | "CheckMark": 18, 223 | "SliderGrab": 19, 224 | "SliderGrabActive": 20, 225 | "Button": 21, 226 | "ButtonHovered": 22, 227 | "ButtonActive": 23, 228 | "Header": 24, 229 | "HeaderHovered": 25, 230 | "HeaderActive": 26, 231 | "Separator": 27, 232 | "SeparatorHovered": 28, 233 | "SeparatorActive": 29, 234 | "ResizeGrip": 30, 235 | "ResizeGripHovered": 31, 236 | "ResizeGripActive": 32, 237 | "Tab": 33, 238 | "TabHovered": 34, 239 | "TabActive": 35, 240 | "TabUnfocused": 36, 241 | "TabUnfocusedActive": 37, 242 | "PlotLines": 38, 243 | "PlotLinesHovered": 39, 244 | "PlotHistogram": 40, 245 | "PlotHistogramHovered": 41, 246 | "TableHeaderBg": 42, 247 | "TableBorderStrong": 43, 248 | "TableBorderLight": 44, 249 | "TableRowBg": 45, 250 | "TableRowBgAlt": 46, 251 | "TextSelectedBg": 47, 252 | "DragDropTarget": 48, 253 | "NavHighlight": 49, 254 | "NavWindowingHighlight": 50, 255 | "NavWindowingDimBg": 51, 256 | "ModalWindowDimBg": 52 257 | }; 258 | export const ImGuiStyleVar = { 259 | "Alpha": 0, 260 | "DisabledAlpha": 1, 261 | "WindowPadding": 2, 262 | "WindowRounding": 3, 263 | "WindowBorderSize": 4, 264 | "WindowMinSize": 5, 265 | "WindowTitleAlign": 6, 266 | "ChildRounding": 7, 267 | "ChildBorderSize": 8, 268 | "PopupRounding": 9, 269 | "PopupBorderSize": 10, 270 | "FramePadding": 11, 271 | "FrameRounding": 12, 272 | "FrameBorderSize": 13, 273 | "ItemSpacing": 14, 274 | "ItemInnerSpacing": 15, 275 | "IndentSpacing": 16, 276 | "CellPadding": 17, 277 | "ScrollbarSize": 18, 278 | "ScrollbarRounding": 19, 279 | "GrabMinSize": 20, 280 | "GrabRounding": 21, 281 | "TabRounding": 22, 282 | "ButtonTextAlign": 23, 283 | "SelectableTextAlign": 24 284 | }; -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.cursorStyle": "block", 3 | "editor.wordWrap": "off", 4 | "files.exclude": { 5 | "*.cleo": true, 6 | "*.cs": true, 7 | "*.s": true, 8 | "*.txt": true, 9 | "*.zip": true 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/Events.cleo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/Events.cleo -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/Frontend.cleo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/Frontend.cleo -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/IdeLoader.cleo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/IdeLoader.cleo -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/ImGuiReduxWin32.cleo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/ImGuiReduxWin32.cleo -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/IniFiles.cleo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/IniFiles.cleo -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/Input.cleo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/Input.cleo -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/MemoryOperations.cleo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/MemoryOperations.cleo -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/TextLoader.cleo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/TextLoader.cleo -------------------------------------------------------------------------------- /CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/dylib.cleo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/CLEO Redux/Essential files/GTA SA/CLEO_PLUGINS/dylib.cleo -------------------------------------------------------------------------------- /CLEO Redux/GTA IV/Ragdoll mod/index.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov). Thanks for help to Seemann and wmysterio! 2 | 3 | type ragdollStatus = 'none' | 'switch' | 'enable' | 'disable'; 4 | 5 | const buttonReload = 29; 6 | const buttonAim = 87; 7 | 8 | const plr: Player = new Player(0); 9 | const plc: Char = plr.getChar(); 10 | let isRagdoll: boolean = false; 11 | 12 | while (true) { 13 | wait(0); 14 | 15 | if (!plr.isPlaying()) continue; 16 | 17 | switch (getRagdollStatus()) { 18 | case 'enable': 19 | plc.switchToRagdoll(-1, -1, false, false, false, false); 20 | break; 21 | case 'switch': 22 | case 'disable': 23 | isRagdoll = !isRagdoll; 24 | if (!isRagdoll) plc.switchToAnimated(false); 25 | default: 26 | break; 27 | } 28 | } 29 | 30 | function getRagdollStatus(): ragdollStatus { 31 | if ( 32 | !plc.isInAnyCar() 33 | && plc.getCurrentWeapon() < 6 // Allowed: unarmed, baseball bat, knife, grenade, Molotov 34 | && !Pad.IsControlPressed(0, buttonAim) 35 | && Pad.IsControlJustPressed(0, buttonReload) 36 | ) return 'switch'; 37 | 38 | if (isRagdoll) { 39 | if ( 40 | plc.isInAnyCar() 41 | || plc.getCurrentWeapon() === undefined // When switching weapons 42 | ) return 'disable'; 43 | 44 | if ( 45 | !plc.isRagdoll() 46 | ) return 'enable'; 47 | } 48 | 49 | return 'none'; 50 | } -------------------------------------------------------------------------------- /CLEO Redux/GTA IV/Ragdoll mod/readMe.md: -------------------------------------------------------------------------------- 1 | # Ragdoll mod (GTA IV) 2 | ## ENGLISH 3 | * Author: Vital (Vitaly Pavlovich Ulyanov). Thanks for help to Seemann and wmysterio! 4 | * Description: A simple ragdoll mod for GTA IV. To switch ragdoll on or off press ‘Reload’ button while on foot and either unarmed or armed with a melee or throwable weapon. 5 | * Requirements: CLEO Redux 1.0.7 or newer. 6 | * Installation: Copy ‘Ragdoll mod’ folder to CLEO folder in GTA IV directory. 7 | 8 | ## RUSSIAN 9 | * Автор: Vital (Виталий Павлович Ульянов). За помощь спасибо Seemann и wmysterio! 10 | * Описание: Простой скрипт на рэгдолл для GTA IV. Переключается кнопкой «Перезарядить», когда игрок не в транспорте и либо безоружен, либо держит рукопашное или метательное оружие. 11 | * Требования: CLEO Redux 1.0.7 или новее. 12 | * Установка: Поместите папку ‘Ragdoll mod’ в папку CLEO внутри каталога GTA IV. -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Assassin/Assassin[mem]/Missions/template.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | import { MissionHelper } from "../../missionHelper"; 3 | import { } from "../../sa_enums"; 4 | 5 | // Mission texts 6 | enum Texts { 7 | HELP01 = '', 8 | } 9 | 10 | // Constants 11 | const plr: Player = new Player(0); 12 | const plc: Char = plr.getChar(); 13 | const plg: Group = plr.getGroup(); 14 | 15 | // Variables 16 | 17 | 18 | MissionHelper.Launch(main, finish); 19 | 20 | function main() { 21 | // Spawn characters, vehicles, pickups, etc. 22 | MissionHelper.Loader( 23 | [], 24 | function() {} 25 | ); 26 | 27 | // Define all mission entities 28 | MissionHelper.AddEntities({ 29 | target: [], 30 | vital: [], 31 | other: [] 32 | }); 33 | 34 | // Main loop 35 | while (MissionHelper.targetEntities.length > 0 && MissionHelper.stage !== 'FINISH') { 36 | // Manage mission stages 37 | switch (MissionHelper.stage) { 38 | case 'SETUP': 39 | MissionHelper.SetCamera([], false); 40 | MissionHelper.stage = ''; 41 | case '': 42 | default: 43 | break; 44 | } 45 | wait(0); 46 | } 47 | } 48 | 49 | function finish() { 50 | // Determine if the mission is passed or failed 51 | if (!plr.isPlaying() || MissionHelper.targetEntities.length > 0) { 52 | MissionHelper.MissionFailed(); 53 | } else { 54 | MissionHelper.MissionPassed(); 55 | } 56 | } -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Assassin/Assassin[mem]/index.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | import { ScriptSound, TextStyle } from '../sa_enums'; 3 | import { missions } from "./missions"; 4 | 5 | const help: string = '~y~~<~/~>~~s~ - select mission.~n~~y~~k~~PED_SPRINT~~s~ - launch selected.~n~~y~~k~~VEHICLE_ENTER_EXIT~~s~ - exit.'; 6 | const plr: Player = new Player(0); 7 | const plc: Char = plr.getChar(); 8 | 9 | let index: int = 0; 10 | let phones: { x: float, y: float, z: float, heading: float }[] = [ 11 | { x: 1806.73, y: -1599.95, z: 13.55, heading: 42.53 }, 12 | { x: 2166.39, y: -1155.77, z: 24.86, heading: 90.63}, 13 | { x: 2259.22, y: -1211.68, z: 23.97, heading: 359.20 }, 14 | { x: 2069.47, y: -1766.63, z: 13.56, heading: 91.20 }, 15 | { x: 1711.31, y: -1605.57, z: 13.55, heading: 177.84 }, 16 | { x: 1723.08, y: -1720.38, z: 13.54, heading: 88.48 }, 17 | { x: 378.60, y: -1717.95, z: 23.20, heading: 269.64 }, 18 | { x: 278.09, y: -1630.62, z: 33.31, heading: 259.08 }, 19 | { x: 296.70, y: -1573.77, z: 33.46, heading: 350.05 }, 20 | { x: 303.08, y: -1592.84, z: 32.85, heading: 169.93 }, 21 | { x: 356.79, y: -1364.44, z: 14.48, heading: 116.09 }, 22 | { x: 637.99, y: -1227.55, z: 18.14, heading: 177.93 }, 23 | { x: 2278.79, y: 2524.95, z: 10.82, heading: 268.49 }, 24 | { x: -1661.24, y: 1397.78, z: 7.17, heading: 45.01 }, 25 | { x: -2419.32, y: 717.74, z: 35.17, heading: 358.39 }, 26 | { x: -1965.18, y: 162.39, z: 27.69, heading: 359.79 } 27 | ]; 28 | 29 | // plc.setCoordinates(1806.73, -1599.95, 13.55); // Teleport for quick testing 30 | 31 | while (true) { 32 | wait(0); 33 | 34 | if (!plr.isPlaying() || ONMISSION) continue; 35 | 36 | phones.forEach(p => { 37 | if (!plc.locateAnyMeans3D(p.x, p.y, p.z, 25, 25, 25, false)) { 38 | return; 39 | } 40 | if (plc.locateStoppedOnFoot3D(p.x, p.y, p.z, 1, 1, 1, true)) { 41 | plc.hideWeaponForScriptedCutscene(true); 42 | plc.setCoordinatesNoOffset(p.x, p.y, p.z); 43 | plc.setHeading(p.heading); 44 | Camera.AttachToChar(plc, -2, -2, 0, 0, 0, 0, 0, 2); 45 | Pad.SetPlayerEnterCarButton(plr, false); 46 | Text.PrintHelpString(help); 47 | Hud.SwitchWidescreen(true); 48 | plr.setControl(false); 49 | 50 | while (true) { 51 | wait(0); 52 | 53 | Text.PrintBigString(missions[index].title, 0, TextStyle.MiddleSmaller); 54 | Text.PrintNow(missions[index].location, 0, 1); 55 | 56 | if (!plr.isPlaying() || Pad.IsButtonPressed(0, 15)) { 57 | break; 58 | } else if (Pad.GetPositionOfAnalogueSticks(0).leftStickX < 0 && TIMERA > 300) { 59 | TIMERA = 0; 60 | Sound.AddOneOffSound(0, 0, 0, ScriptSound.SoundAmmunationGunCollision); 61 | index = ringClamp(0, index - 1, missions.length - 1); 62 | } else if (Pad.GetPositionOfAnalogueSticks(0).leftStickX > 0 && TIMERA > 300) { 63 | TIMERA = 0; 64 | Sound.AddOneOffSound(0, 0, 0, ScriptSound.SoundAmmunationGunCollision); 65 | index = ringClamp(0, index + 1, missions.length - 1); 66 | } else if (Pad.IsButtonPressed(0, 16)) { 67 | Sound.AddOneOffSound(0, 0, 0, ScriptSound.SoundShopBuy); 68 | Text.PrintBigString(missions[index].title, 3000, TextStyle.BottomRight); 69 | CLEO.runScript(missions[index].path); 70 | break; 71 | } 72 | 73 | if (Streaming.HasAnimationLoaded('PED') && !plc.isPlayingAnim('phone_talk')) { 74 | Task.PlayAnim(plc, 'phone_talk', 'PED', 4, true, false, false, false, 5000); 75 | } 76 | } 77 | 78 | Camera.Restore(); 79 | Hud.SwitchWidescreen(false); 80 | plr.setControl(true); 81 | plc.hideWeaponForScriptedCutscene(false); 82 | plc.clearTasks(); 83 | 84 | while (Pad.IsButtonPressed(0, 15)) { 85 | wait(0); 86 | } 87 | Pad.SetPlayerEnterCarButton(plr, true); 88 | 89 | while (plc.locateOnFoot3D(p.x, p.y, p.z, 1.5, 1.5, 1.5, false)) { 90 | wait(0); 91 | } 92 | } 93 | }); 94 | } 95 | 96 | function ringClamp(min: int|float, value: int|float, max: int|float) { 97 | return (value > max) ? 0 : (value < min) ? max : value; 98 | } -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Assassin/Assassin[mem]/missions.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | export let missions: { 3 | title: string, 4 | location: string, 5 | path: string 6 | }[] = [ 7 | { 8 | title: '~y~I ain\'t got no sun tan', 9 | location: 'VERO', 10 | path: './Missions/mis01[mem].ts' 11 | }, 12 | { 13 | title: '~b~~h~Thou shalt not steal', 14 | location: 'MULINT', 15 | path: './Missions/mis02[mem].ts' 16 | } 17 | ]; -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Assassin/readMe.md: -------------------------------------------------------------------------------- 1 | # Assassin (GTA: San Andreas; CLEO Redux) 2 | ## ENGLISH 3 | * **Author**: Vital (Vitaly Pavlovich Ulyanov). 4 | * **Thanks for help to**: Seemann. 5 | * **Description**: Assassination missions given near payphones like in GTA: Vice City and GTA IV. The mod comes with `Mission Helper`, a set of tools to simplify mission development in CLEO Redux. 6 | * **Requirements**: CLEO Redux v1.3.1 + CLEO 5.0.2 or newer. 7 | * **Installation**: Put `Assassin[mem]` folder and `sa_enums.ts` & `missionHelper.ts` files in your `GTA San Andreas\CLEO` directory. 8 | 9 | --- 10 | 11 | ## РУССКИЙ 12 | * **Автор**: Vital (Виталий Павлович Ульянов). 13 | * **Благодарю за помощь**: Seemann. 14 | * **Описание**: Миссии заказного убийцы, даваемые у телефонов-автоматов как в GTA: Vice City и GTA IV. С модом идёт `Mission Helper` — инструментарий, упрощающий создание миссий на CLEO Redux. 15 | * **Требования**: CLEO Redux v1.3.1 + CLEO 5.0.2 или новее. 16 | * **Установка**: Поместите папку `Assassin[mem]` и файлы `sa_enums.ts` и `missionHelper.ts` в каталог `GTA San Andreas\CLEO`. -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CCamera.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | import { CVector } from "./CVector"; 9 | 10 | export class CCamera { 11 | private static thirdPersonOutCamera: CVector = new CVector( 12 | Memory.Allocate(12) 13 | ); 14 | private static thirdPersonOutPoint: CVector = new CVector( 15 | Memory.Allocate(12) 16 | ); 17 | static pointer: int = 0xb6f028; 18 | static fixedModeVector = new CVector(this.pointer + 0x860); 19 | static fixedModeSource = new CVector(this.pointer + 0x86c); 20 | static matrixPointer = Memory.ReadI32(this.pointer + 0x14, false); 21 | static right = new CVector(this.matrixPointer); 22 | static forward = new CVector(this.matrixPointer + 0x10); 23 | static up = new CVector(this.matrixPointer + 0x20); 24 | static pos = new CVector(this.matrixPointer + 0x30); 25 | 26 | static get fov(): float { 27 | return Memory.ReadFloat(CCamera.pointer + 0xcb8, false); 28 | } 29 | static set fov(value: float) { 30 | Memory.WriteFloat(CCamera.pointer + 0xcb8, value, false); 31 | } 32 | 33 | static GetFadingDirection(): int { 34 | return Memory.CallMethodReturn(0x50adf0, this.pointer, 0, 0); 35 | } 36 | static Find3rdPersonCamTargetVector(distance: float, source: CVector) { 37 | // Big thanks to Seemann for reminding about `Memory.FromFloat`. 38 | Memory.CallMethod( 39 | 0x514970, 40 | this.pointer, 41 | 6, 42 | 0, 43 | Memory.FromFloat(distance), 44 | Memory.FromFloat(source.x), 45 | Memory.FromFloat(source.y), 46 | Memory.FromFloat(source.z), 47 | this.thirdPersonOutCamera.pointer, 48 | this.thirdPersonOutPoint.pointer 49 | ); 50 | return { 51 | camera: this.thirdPersonOutCamera, 52 | pos: this.thirdPersonOutPoint, 53 | }; 54 | } 55 | /** Seems to get a cutscene's duration, as the value doesn't update every frame. */ 56 | static GetCutsceneFinishTime(): int { 57 | return Memory.CallMethodReturn(0x50ad90, this.pointer, 0, 0); 58 | } 59 | static GetFading(): boolean { 60 | return Memory.Fn.ThiscallU8(0x50ade0, this.pointer)() !== 0; 61 | } 62 | static Using1stPersonWeaponMode(): boolean { 63 | return Memory.Fn.ThiscallU8(0x50bff0, this.pointer)() !== 0; 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CEntity.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | import { CPlaceable } from "./CPlaceable"; 9 | 10 | export class CEntity extends CPlaceable { 11 | constructor(pointer: int) { 12 | super(pointer); 13 | } 14 | get modelIndex(): int { 15 | return Memory.ReadI16(this.pointer + 0x22, false); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CFire.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | import { CEntity } from "./CEntity"; 9 | import { CVector } from "./CVector"; 10 | 11 | export class CFire { 12 | static gFireManager: int = 0xb71f80; 13 | static start: int = 0xb71f80; 14 | static size: int = 0x28; 15 | static max: int = 0x3c; 16 | pointer: int; 17 | pos: CVector; 18 | 19 | constructor(pointer: int) { 20 | this.pointer = pointer; 21 | this.pos = new CVector(this.pointer + 0x4); 22 | } 23 | 24 | static GetNumOfNonScriptFires(): int { 25 | return Memory.Fn.ThiscallU32(0x538f10, this.gFireManager)(); 26 | } 27 | static FindNearestFire( 28 | position: CVector, 29 | notBeingExtinguished: boolean, 30 | notScript: boolean 31 | ): CFire { 32 | let firePointer: int = Memory.Fn.ThiscallI32( 33 | 0x538f40, 34 | this.gFireManager 35 | )(position.pointer, +notBeingExtinguished, +notScript); 36 | return firePointer ? new CFire(firePointer) : undefined; 37 | } 38 | /** Starts returning `false` at 55 fires out of 60 maximum. */ 39 | static PlentyFiresAvailable(): boolean { 40 | return Memory.Fn.ThiscallU8(0x539340, this.gFireManager)() !== 0; 41 | } 42 | static ExtinguishPointWithWater( 43 | point: CVector, 44 | range: float, 45 | strength: float 46 | ): boolean { 47 | return ( 48 | Memory.Fn.ThiscallU8(0x5394c0, this.gFireManager)( 49 | point.pointer, 50 | Memory.FromFloat(range), 51 | Memory.FromFloat(strength) 52 | ) !== 0 53 | ); 54 | } 55 | static GetNextFreeFire(allowDeletingOldFire: boolean): CFire { 56 | let firePointer: int = Memory.Fn.ThiscallI32( 57 | 0x539e50, 58 | this.gFireManager 59 | )(+allowDeletingOldFire); 60 | return firePointer ? new CFire(firePointer) : undefined; 61 | } 62 | static CreateInPoint( 63 | point: CVector, 64 | creator: CEntity, 65 | burnTime: int, 66 | numGenerations: int 67 | ): CFire { 68 | return new CFire( 69 | Memory.Fn.ThiscallI32(0x539f00, this.gFireManager)( 70 | Memory.FromFloat(point.x), 71 | Memory.FromFloat(point.y), 72 | Memory.FromFloat(point.z), 73 | Memory.FromFloat(1), 74 | 1, 75 | creator?.pointer, 76 | burnTime, 77 | numGenerations, 78 | 1 79 | ) 80 | ); 81 | } 82 | static CreateOnEntity( 83 | target: CEntity, 84 | creator: CEntity, 85 | burnTime: int, 86 | numGenerations: int 87 | ) { 88 | return new CFire( 89 | Memory.Fn.ThiscallI32(0x53a050, this.gFireManager)( 90 | target.pointer, 91 | creator?.pointer, 92 | Memory.FromFloat(1), 93 | 1, 94 | burnTime, 95 | numGenerations 96 | ) 97 | ); 98 | } 99 | 100 | get entityOnFire(): CEntity { 101 | let pointer: int = Memory.ReadI32(this.pointer + 0x10, false); 102 | if (pointer !== 0) return new CEntity(pointer); 103 | } 104 | set entityOnFire(entity: CEntity) { 105 | Memory.WriteI32(this.pointer + 0x10, entity.pointer, false); 106 | } 107 | 108 | get scriptReferenceIndex(): int { 109 | return Memory.ReadI16(this.pointer + 0x2, false); 110 | } 111 | set scriptReferenceIndex(value: int) { 112 | Memory.WriteI16(this.pointer + 0x2, value, false); 113 | } 114 | 115 | get entityStartedFire(): CEntity { 116 | let pointer: int = Memory.ReadI32(this.pointer + 0x14, false); 117 | if (pointer !== 0) return new CEntity(pointer); 118 | } 119 | set entityStartedFire(entity: CEntity) { 120 | Memory.WriteI32(this.pointer + 0x14, entity.pointer, false); 121 | } 122 | 123 | get timeToBurn(): int { 124 | return Memory.ReadU32(this.pointer + 0x18, false); 125 | } 126 | set timeToBurn(value: int) { 127 | Memory.WriteU32(this.pointer + 0x18, value, false); 128 | } 129 | 130 | get strength(): float { 131 | return Memory.ReadFloat(this.pointer + 0x1c, false); 132 | } 133 | set strength(value: float) { 134 | Memory.WriteFloat(this.pointer + 0x1c, value, false); 135 | } 136 | 137 | get numGenerationsAllowed(): int { 138 | return Memory.ReadU8(this.pointer + 0x20, false); 139 | } 140 | set numGenerationsAllowed(value: int) { 141 | Memory.WriteU8(this.pointer + 0x20, value, false); 142 | } 143 | 144 | get removalDist(): int { 145 | return Memory.ReadU8(this.pointer + 0x21, false); 146 | } 147 | set removalDist(value: int) { 148 | Memory.WriteU8(this.pointer + 0x21, value, false); 149 | } 150 | 151 | doesExist(): boolean { 152 | return (Memory.ReadU8(this.pointer, false) & 0b00000001) !== 0; 153 | } 154 | isCreatedByScript(): boolean { 155 | return (Memory.ReadU8(this.pointer, false) & 0b00000010) !== 0; 156 | } 157 | isBeingExtinguished(): boolean { 158 | return (Memory.ReadU8(this.pointer, false) & 0b00001000) !== 0; 159 | } 160 | } 161 | 162 | export let fires: CFire[] = new Array(60) 163 | .fill(undefined) 164 | .map((v, i) => new CFire(CFire.start + CFire.size * i)); 165 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CGame.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | export class CGame { 9 | static GetMissionPackId(): int { 10 | return Memory.ReadU8(0xb72910, false); 11 | } 12 | static CanSeeOutsideFromCurrArea(): boolean { 13 | return Memory.Fn.StdcallU8(0x53c4a0)() !== 0; 14 | } 15 | static CanSeeWaterFromCurrArea(): boolean { 16 | return Memory.Fn.StdcallU8(0x53c4b0)() !== 0; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CPad.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | export class CPad { 9 | static thisPad: int = Memory.CallFunctionReturn(0x53fb70, 1, 1, 0); 10 | static playerPointer: int = Memory.GetPedPointer(new Player(0).getChar()); 11 | 12 | static AccelerateJustDown(): boolean { 13 | return Memory.Fn.ThiscallU8(0x540440, this.thisPad)() !== 0; 14 | } 15 | static CarGunJustDown(): boolean { 16 | return Memory.Fn.ThiscallU8(0x53ffe0, this.thisPad)() !== 0; 17 | } 18 | static CircleJustDown(): boolean { 19 | return Memory.Fn.ThiscallU8(0x53ef60, this.thisPad)() !== 0; 20 | } 21 | static CollectPickupJustDown(): boolean { 22 | return Memory.Fn.ThiscallU8(0x540a70, this.thisPad)() !== 0; 23 | } 24 | static ConversationNoJustDown(): boolean { 25 | return Memory.Fn.ThiscallU8(0x541200, this.thisPad)() !== 0; 26 | } 27 | static ConversationYesJustDown(): boolean { 28 | return Memory.Fn.ThiscallU8(0x5411d0, this.thisPad)() !== 0; 29 | } 30 | static CrossJustDown(): boolean { 31 | return Memory.Fn.ThiscallU8(0x4d59e0, this.thisPad)() !== 0; 32 | } 33 | static CycleCameraModeJustDown(): boolean { 34 | return Memory.Fn.ThiscallU8(0x540530, this.thisPad)() !== 0; 35 | } 36 | static CycleWeaponLeftJustDown(): boolean { 37 | return Memory.Fn.ThiscallU8(0x540610, this.thisPad)() !== 0; 38 | } 39 | static CycleWeaponRightJustDown(): boolean { 40 | return Memory.Fn.ThiscallU8(0x540640, this.thisPad)() !== 0; 41 | } 42 | static DuckJustDown(): boolean { 43 | return Memory.Fn.ThiscallU8(0x540720, this.thisPad)() !== 0; 44 | } 45 | static ExitVehicleJustDown(): boolean { 46 | return Memory.Fn.ThiscallU8(0x540120, this.thisPad)() !== 0; 47 | } 48 | static GroupControlBackJustDown(): boolean { 49 | return Memory.Fn.ThiscallU8(0x541260, this.thisPad)() !== 0; 50 | } 51 | static GroupControlForwardJustDown(): boolean { 52 | return Memory.Fn.ThiscallU8(0x541230, this.thisPad)() !== 0; 53 | } 54 | static HornJustDown(): boolean { 55 | return Memory.Fn.ThiscallU8(0x53ff30, this.thisPad)() !== 0; 56 | } 57 | static JumpJustDown(): boolean { 58 | return Memory.Fn.ThiscallU8(0x540770, this.thisPad)() !== 0; 59 | } 60 | static LeftShoulder1JustDown(): boolean { 61 | return Memory.Fn.ThiscallU8(0x53edc0, this.thisPad)() !== 0; 62 | } 63 | static LeftShoulder2JustDown(): boolean { 64 | return Memory.Fn.ThiscallU8(0x53ede0, this.thisPad)() !== 0; 65 | } 66 | static NextStationJustUp(): boolean { 67 | return Memory.Fn.ThiscallU8(0x5405b0, this.thisPad)() !== 0; 68 | } 69 | static PreviousStationJustUp(): boolean { 70 | return Memory.Fn.ThiscallU8(0x5405e0, this.thisPad)() !== 0; 71 | } 72 | static RightShoulder1JustDown(): boolean { 73 | return Memory.Fn.ThiscallU8(0x53ee20, this.thisPad)() !== 0; 74 | } 75 | static SetDrunkInputDelay(delay: int) { 76 | Memory.CallMethod(0x53f910, this.thisPad, 1, 0, delay); 77 | } 78 | static ShiftTargetLeftJustDown(): boolean { 79 | return Memory.Fn.ThiscallU8(0x540850, this.thisPad)() !== 0; 80 | } 81 | static ShiftTargetRightJustDown(): boolean { 82 | return Memory.Fn.ThiscallU8(0x540880, this.thisPad)() !== 0; 83 | } 84 | static SprintJustDown(): boolean { 85 | return Memory.Fn.ThiscallU8(0x5407f0, this.thisPad)() !== 0; 86 | } 87 | static SquareJustDown(): boolean { 88 | return Memory.Fn.ThiscallU8(0x53ef20, this.thisPad)() !== 0; 89 | } 90 | static TargetJustDown(): boolean { 91 | // also works with brake in cars 92 | return Memory.Fn.ThiscallU8(0x5406b0, this.thisPad)() !== 0; 93 | } 94 | static TriangleJustDown(): boolean { 95 | return Memory.Fn.ThiscallU8(0x53ef40, this.thisPad)() !== 0; 96 | } 97 | static WeaponJustDown(): boolean { 98 | return ( 99 | Memory.Fn.ThiscallU8(0x540250, this.thisPad)(this.playerPointer) !== 100 | 0 101 | ); 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CPed.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | import { CEntity } from "./CEntity"; 9 | import { CFire } from "./CFire"; 10 | import { CPhysical } from "./CPhysical"; 11 | import { CVector } from "./CVector"; 12 | import { CVehicle } from "./CVehicle"; 13 | import { CWeapon } from "./CWeapon"; 14 | import { PedBones } from "./ePedBones"; 15 | 16 | export class CPed extends CPhysical { 17 | protected static bonePos: CVector = new CVector(Memory.Allocate(12)); 18 | handle: Char; 19 | 20 | constructor(pedOrPointer: Char | int) { 21 | if (pedOrPointer instanceof Char) { 22 | super(Memory.GetPedPointer(pedOrPointer)); 23 | this.handle = pedOrPointer; 24 | this.pointer = Memory.GetPedPointer(pedOrPointer); 25 | } else { 26 | super(pedOrPointer); 27 | this.handle = Memory.GetPedRef(pedOrPointer); 28 | this.pointer = pedOrPointer; 29 | } 30 | } 31 | static GetAllPeds(): CPed[] { 32 | // Thanks to Seemann and his scm module: https://github.com/x87/scm.ts/blob/main/scm.ts 33 | let peds: CPed[] = []; 34 | let base: int = Memory.ReadI32(0xb74490, false); 35 | let entities: int = Memory.ReadU32(base + 0, false); 36 | let byteMap: int = Memory.ReadU32(base + 4, false); 37 | let poolSize: int = Memory.ReadI32(base + 8, false); 38 | 39 | for (let i = 0; i < poolSize; i++) { 40 | let isFree = Memory.ReadU8(byteMap + i, false) & 0x80; 41 | if (!isFree) { 42 | peds.push(new CPed(entities + i * 0x7c4)); 43 | } 44 | } 45 | return peds; 46 | } 47 | 48 | //#region Properties' getters and setters 49 | get currentWeapon(): int { 50 | return this.handle.getCurrentWeapon(); 51 | } 52 | set currentWeapon(value: int) { 53 | this.handle.setCurrentWeapon(value); 54 | } 55 | 56 | get currentWeaponModel(): int { 57 | return Memory.ReadI32(this.pointer + 0x740, false); 58 | } 59 | set currentWeaponModel(value: int) { 60 | Memory.CallMethod(0x5e5ed0, this.pointer, 1, 0, value); 61 | } 62 | 63 | /** Slot range `[0;12]`. */ 64 | get currentWeaponSlot(): int { 65 | return Memory.ReadU8(this.pointer + 0x718, false); 66 | } 67 | set currentWeaponSlot(value: int) { 68 | Memory.CallMethod(0x5e61f0, this.pointer, 1, 0, value); 69 | } 70 | 71 | /** Headings range `[-3.14;3.14]`. */ 72 | get targetHeading(): float { 73 | return Memory.ReadFloat(this.pointer + 0x55c, false); 74 | } 75 | set targetHeading(value: float) { 76 | Memory.WriteFloat(this.pointer + 0x55c, value, false); 77 | } 78 | 79 | get currentHeading(): float { 80 | return Memory.ReadFloat(this.pointer + 0x558, false); 81 | } 82 | set currentHeading(value: float) { 83 | Memory.WriteFloat(this.pointer + 0x558, value, false); 84 | } 85 | 86 | get health(): float { 87 | return Memory.ReadFloat(this.pointer + 0x540, false); 88 | } 89 | set health(value: float) { 90 | Memory.WriteFloat(this.pointer + 0x540, value, false); 91 | } 92 | 93 | get maxHealth(): float { 94 | return Memory.ReadFloat(this.pointer + 0x544, false); 95 | } 96 | set maxHealth(value: float) { 97 | Memory.WriteFloat(this.pointer + 0x544, value, false); 98 | } 99 | 100 | get rotationSpeed(): float { 101 | return Memory.ReadFloat(this.pointer + 0x560, false); 102 | } 103 | set rotationSpeed(value: float) { 104 | Memory.WriteFloat(this.pointer + 0x560, value, false); 105 | } 106 | 107 | get fire(): CFire { 108 | let firePointer: int = Memory.ReadI32(this.pointer + 0x730, false); 109 | return firePointer ? new CFire(firePointer) : undefined; 110 | } 111 | set fire(fire: CFire) { 112 | Memory.WriteI32(this.pointer + 0x730, fire.pointer, false); 113 | } 114 | 115 | get targetedPed(): CPed { 116 | let pedPointer: int = Memory.ReadI32(this.pointer + 0x79c, false); 117 | return pedPointer ? new CPed(pedPointer) : undefined; 118 | } 119 | /** 1 - game, 2 - script */ 120 | get createdBy(): int { 121 | return Memory.ReadU8(this.pointer + 0x484, false); 122 | } 123 | get contactEntity(): CEntity { 124 | let entityPointer: int = Memory.ReadI32(this.pointer + 0x584, false); 125 | return entityPointer ? new CEntity(entityPointer) : undefined; 126 | } 127 | get vehicle(): CVehicle { 128 | let vehiclePointer: int = Memory.ReadI32(this.pointer + 0x58c, false); 129 | return vehiclePointer ? new CVehicle(vehiclePointer) : undefined; 130 | } 131 | 132 | set modelIndex(value: int) { 133 | Memory.CallMethod(0x5e4880, this.pointer, 1, 0, value); 134 | } 135 | 136 | get weapons(): CWeapon[] { 137 | let weapons: CWeapon[] = []; 138 | for (let i = 0x5a0; i < 0x70c; i += 0x1c) { 139 | weapons.push(new CWeapon(this.pointer + i)); 140 | } 141 | return weapons; 142 | } 143 | //#endregion 144 | 145 | pedCanPickUpPickup(): boolean { 146 | return Memory.Fn.ThiscallU8(0x455560, this.pointer)() !== 0; 147 | } 148 | createDeadPedMoney() { 149 | Memory.CallMethod(0x4590f0, this.pointer, 0, 0); 150 | return this; 151 | } 152 | createDeadPedWeaponPickups() { 153 | Memory.CallMethod(0x4591d0, this.pointer, 0, 0); 154 | return this; 155 | } 156 | isPlayer(): boolean { 157 | return Memory.Fn.ThiscallU8(0x5df8f0, this.pointer)() !== 0; 158 | } 159 | setPedState(state: int) { 160 | Memory.CallMethod(0x5e4500, this.pointer, 1, 0, state); 161 | return this; 162 | } 163 | canRunAndFireWithWeapon(): boolean { 164 | return Memory.Fn.ThiscallU8(0x5e88e0, this.pointer)() !== 0; 165 | } 166 | giveDelayedWeapon(weaponType: int, ammo: int) { 167 | Memory.CallMethod(0x5e89b0, this.pointer, 2, 0, weaponType, ammo); 168 | return this; 169 | } 170 | /** The only working ped node (bone) seems to be 2 (head). */ 171 | removeBodyPart(pedNode: int, direction: int) { 172 | Memory.CallMethod(0x5f0140, this.pointer, 2, 0, pedNode, direction); 173 | return this; 174 | } 175 | isAlive(): boolean { 176 | return Memory.Fn.ThiscallU8(0x5e0170, this.pointer)() !== 0; 177 | } 178 | getWalkAnimSpeed(): float { 179 | return Memory.CallMethodReturnFloat(0x5e04b0, this.pointer, 0, 0); 180 | } 181 | getBonePosition(boneId: int | PedBones, isDynamic: boolean): CVector { 182 | Memory.Fn.Thiscall(0x5e4280, this.pointer)( 183 | CPed.bonePos.pointer, 184 | boneId, 185 | +isDynamic 186 | ); 187 | return CPed.bonePos; 188 | } 189 | getWeaponSkill(): int { 190 | return Memory.Fn.ThiscallU8(0x5e6580, this.pointer)(); 191 | } 192 | toString() { 193 | return `Pointer: ${this.pointer}. Handle: ${+this.handle}.`; 194 | } 195 | } 196 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CPhysical.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | import { CEntity } from "./CEntity"; 9 | import { CVector } from "./CVector"; 10 | 11 | export class CPhysical extends CEntity { 12 | moveSpeed: CVector; 13 | turnSpeed: CVector; 14 | frictionMoveSpeed: CVector; 15 | frictionTurnSpeed: CVector; 16 | force: CVector; 17 | torque: CVector; 18 | centreOfMass: CVector; 19 | lastCollisionDirection: CVector; 20 | lastCollisionPosition: CVector; 21 | 22 | constructor(pointer: int) { 23 | super(pointer); 24 | this.moveSpeed = new CVector(this.pointer + 0x44); 25 | this.turnSpeed = new CVector(this.pointer + 0x50); 26 | this.frictionMoveSpeed = new CVector(this.pointer + 0x5c); 27 | this.frictionTurnSpeed = new CVector(this.pointer + 0x68); 28 | this.force = new CVector(this.pointer + 0x74); 29 | this.torque = new CVector(this.pointer + 0x80); 30 | this.centreOfMass = new CVector(this.pointer + 0xa4); 31 | this.lastCollisionDirection = new CVector(this.pointer + 0xe0); 32 | this.lastCollisionPosition = new CVector(this.pointer + 0xec); 33 | } 34 | get damageIntensity(): float { 35 | return Memory.ReadFloat(this.pointer + 0xd8, false); 36 | } 37 | set damageIntensity(value: float) { 38 | Memory.WriteFloat(this.pointer + 0xd8, value, false); 39 | } 40 | 41 | get movingSpeed(): float { 42 | return Memory.ReadFloat(this.pointer + 0xd4, false); 43 | } 44 | get contactSurfaceBrightness(): float { 45 | return Memory.ReadFloat(this.pointer + 0x12c, false); 46 | } 47 | get dynamicLighting(): float { 48 | return Memory.ReadFloat(this.pointer + 0x130, false); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CPickups.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | import { CEntity } from "./CEntity"; 9 | 10 | export class CPickups { 11 | static DoCollectableEffects(entity: CEntity) { 12 | Memory.CallFunction(0x455e20, 1, 1, entity.pointer); 13 | } 14 | static DoMineEffects(entity: CEntity) { 15 | Memory.CallFunction(0x4560e0, 1, 1, entity.pointer); 16 | } 17 | static DoMoneyEffects(entity: CEntity) { 18 | Memory.CallFunction(0x454e80, 1, 1, entity.pointer); 19 | } 20 | static DoPickUpEffects(entity: CEntity) { 21 | Memory.CallFunction(0x455720, 1, 1, entity.pointer); 22 | } 23 | static ModelForWeapon(weaponType: int): int { 24 | return Memory.CallFunctionReturn(0x454ac0, 1, 1, weaponType); 25 | } 26 | static WeaponForModel(modelIndex: int) { 27 | return Memory.CallFunctionReturn(0x454ae0, 1, 1, modelIndex); 28 | } 29 | static PickedUpHorseShoe() { 30 | Memory.CallFunction(0x455390, 0, 0); 31 | } 32 | static PickedUpOyster() { 33 | Memory.CallFunction(0x4552d0, 0, 0); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CPlaceable.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | import { CVector } from "./CVector"; 9 | 10 | export class CPlaceable { 11 | protected matrixPointer: int; 12 | pointer: int; 13 | right: CVector; 14 | forward: CVector; 15 | up: CVector; 16 | pos: CVector; 17 | 18 | constructor(pointer: int) { 19 | this.pointer = pointer; 20 | this.matrixPointer = Memory.ReadI32(this.pointer + 0x14, false); 21 | this.right = new CVector(this.matrixPointer); 22 | this.forward = new CVector(this.matrixPointer + 0x10); 23 | this.up = new CVector(this.matrixPointer + 0x20); 24 | this.pos = new CVector(this.matrixPointer + 0x30); 25 | } 26 | toString() { 27 | return `${this.pointer}`; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CPlayerPed.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | import { CPed } from "./CPed"; 9 | 10 | export class CPlayerPed extends CPed { 11 | protected playerData: int; 12 | protected playerInfo: int; 13 | 14 | constructor(playerId: int) { 15 | super(new Player(playerId).getChar()); 16 | this.pointer = Memory.GetPedPointer(this.handle); 17 | this.playerData = Memory.ReadI32(this.pointer + 0x480, false); 18 | this.playerInfo = Memory.CallMethodReturn(0x609ff0, this.pointer, 0, 0); 19 | } 20 | 21 | //#region Properties' getters and setters 22 | get sprintDuration(): float { 23 | return Memory.ReadFloat(this.playerData + 0x18, false); 24 | } 25 | set sprintDuration(value: float) { 26 | Memory.WriteFloat(this.playerData + 0x18, value, false); 27 | } 28 | 29 | get sprintEnergy(): float { 30 | return Memory.ReadFloat(this.playerData + 0x1c, false); 31 | } 32 | set sprintEnergy(value: float) { 33 | Memory.WriteFloat(this.playerData + 0x1c, value, false); 34 | } 35 | 36 | get breath(): float { 37 | return Memory.ReadFloat(this.playerData + 0x44, false); 38 | } 39 | set breath(value: float) { 40 | Memory.WriteFloat(this.playerData + 0x44, value, false); 41 | } 42 | 43 | get sprintDisabled(): boolean { 44 | return Memory.ReadU8(this.playerData + 0x84, false) !== 0; 45 | } 46 | set sprintDisabled(value: boolean) { 47 | Memory.WriteU8(this.playerData + 0x84, +value, false); 48 | } 49 | 50 | get wetnessPercent(): int { 51 | return Memory.ReadU8(this.playerData + 0x8c, false); 52 | } 53 | set wetnessPercent(value: int) { 54 | Memory.WriteU8(this.playerData + 0x8c, +value, false); 55 | } 56 | 57 | get waterCoverPercent(): int { 58 | return Memory.ReadU8(this.playerData + 0x8e, false); 59 | } 60 | get waterHeight(): float { 61 | return Memory.ReadFloat(this.playerData + 0x90, false); 62 | } 63 | 64 | get money(): int { 65 | return Memory.ReadI32(this.playerInfo + 0xb8, false); 66 | } 67 | set money(value: int) { 68 | Memory.WriteI32(this.playerInfo + 0xb8, value, false); 69 | } 70 | 71 | get displayedMoney(): int { 72 | return Memory.ReadI32(this.playerInfo + 0xbc, false); 73 | } 74 | set displayedMoney(value: int) { 75 | Memory.WriteI32(this.playerInfo + 0xbc, value, false); 76 | } 77 | 78 | get maxHealth(): int { 79 | return Memory.ReadU8(this.playerInfo + 0x14f, true); 80 | } 81 | //#endregion 82 | 83 | getCrosshairRadiusOnScreen(): float { 84 | return Memory.CallMethodReturnFloat(0x609cd0, this.pointer, 0, 0); 85 | } 86 | doesWeaponLockOnTargetExist(): boolean { 87 | return Memory.Fn.ThiscallU8(0x60dc50, this.pointer)() !== 0; 88 | } 89 | findPedToAttack(): CPed { 90 | let pedPointer: int = Memory.Fn.ThiscallI32(0x60c5f0, this.pointer)(); 91 | return pedPointer ? new CPed(pedPointer) : undefined; 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CRenderer.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | import { CVector } from "./CVector"; 9 | 10 | export class CRenderer { 11 | /** Heading range `±3.14`. */ 12 | static cameraPosition: CVector = new CVector(0xb76870); 13 | static GetCameraHeading(): float { 14 | return Memory.ReadFloat(0xb7684c, false); 15 | } 16 | static GetInTheSky(): boolean { 17 | return Memory.ReadU8(0xb76851, false) !== 0; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CSprite.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | import { CVector } from "./CVector"; 9 | 10 | export class CSprite { 11 | protected static screenPos: CVector = new CVector(Memory.Allocate(12)); 12 | protected static allocatedMemory: int = Memory.Allocate(8); 13 | protected static widthPointer: int = this.allocatedMemory; 14 | protected static heightPointer: int = this.allocatedMemory + 4; 15 | 16 | static CalcScreenCoors( 17 | pos: CVector, 18 | checkMaxVisible: boolean, 19 | checkMinVisible: boolean 20 | ) { 21 | CVector.AssignPointers([pos]); 22 | Memory.CallFunctionReturn( 23 | 0x70ce30, 24 | 6, 25 | 6, 26 | pos.pointer, 27 | this.screenPos.pointer, 28 | this.widthPointer, 29 | this.heightPointer, 30 | +checkMaxVisible, 31 | +checkMinVisible 32 | ); 33 | return { 34 | x: this.screenPos.x, 35 | y: this.screenPos.y, 36 | width: Memory.ReadFloat(this.widthPointer, false), 37 | height: Memory.ReadFloat(this.heightPointer, false), 38 | }; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CVector.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | export class CVector { 9 | protected static pointers: int[] = []; 10 | protected _x: float; 11 | protected _y: float; 12 | protected _z: float; 13 | type: "static" | "dynamic"; 14 | pointer: int; 15 | 16 | constructor(coordsOrPointer: [float, float, float] | int = [0, 0, 0]) { 17 | if (typeof coordsOrPointer === "number") { 18 | this.type = "static"; 19 | this.pointer = coordsOrPointer; 20 | } else { 21 | this.type = "dynamic"; 22 | this.pointer = undefined; 23 | } 24 | this.set(coordsOrPointer); 25 | } 26 | 27 | static AssignPointers(vectors: CVector[]) { 28 | let dynVecs: CVector[] = vectors.filter((v) => v.type === "dynamic"); 29 | for (let i = 0; i < dynVecs.length; i++) { 30 | CVector.pointers[i] ??= Memory.Allocate(12); 31 | dynVecs[i].pointer = CVector.pointers[i]; 32 | Memory.WriteFloat(dynVecs[i].pointer, dynVecs[i].x, false); 33 | Memory.WriteFloat(dynVecs[i].pointer + 4, dynVecs[i].y, false); 34 | Memory.WriteFloat(dynVecs[i].pointer + 8, dynVecs[i].z, false); 35 | } 36 | } 37 | static GetNumOfPointers(): int { 38 | return CVector.pointers.length; 39 | } 40 | 41 | get x(): float { 42 | if (this.type === "static") 43 | this._x = Memory.ReadFloat(this.pointer, false); 44 | return this._x; 45 | } 46 | get y(): float { 47 | if (this.type === "static") 48 | this._y = Memory.ReadFloat(this.pointer + 4, false); 49 | return this._y; 50 | } 51 | get z(): float { 52 | if (this.type === "static") 53 | this._z = Memory.ReadFloat(this.pointer + 8, false); 54 | return this._z; 55 | } 56 | set x(value: float) { 57 | if (this.type === "static") 58 | Memory.WriteFloat(this.pointer, value, false); 59 | this._x = value; 60 | } 61 | set y(value: float) { 62 | if (this.type === "static") 63 | Memory.WriteFloat(this.pointer + 4, value, false); 64 | this._y = value; 65 | } 66 | set z(value: float) { 67 | if (this.type === "static") 68 | Memory.WriteFloat(this.pointer + 8, value, false); 69 | this._z = value; 70 | } 71 | get magnitude(): float { 72 | return Memory.CallMethodReturnFloat(0x4082c0, this.pointer, 0, 0); 73 | } 74 | get magnitude2D(): float { 75 | return Memory.CallMethodReturnFloat(0x406d50, this.pointer, 0, 0); 76 | } 77 | 78 | get(): [float, float, float] { 79 | return [this.x, this.y, this.z]; 80 | } 81 | set(newPos: [float, float, float] | CVector | int) { 82 | if (newPos instanceof CVector) { 83 | this.x = newPos.x; 84 | this.y = newPos.y; 85 | this.z = newPos.z; 86 | } else if (typeof newPos === "number") { 87 | this.x = Memory.ReadFloat(newPos, false); 88 | this.y = Memory.ReadFloat(newPos + 4, false); 89 | this.z = Memory.ReadFloat(newPos + 8, false); 90 | } else { 91 | this.x = newPos[0]; 92 | this.y = newPos[1]; 93 | this.z = newPos[2]; 94 | } 95 | } 96 | normalise() { 97 | Memory.CallMethod(0x59c910, this.pointer, 0, 0); 98 | return this; 99 | } 100 | normaliseAndGetMagnitude(): float { 101 | return Memory.CallMethodReturnFloat(0x59c970, this.pointer, 0, 0); 102 | } 103 | copy(): CVector { 104 | return new CVector([this.x, this.y, this.z]); 105 | } 106 | /** += */ add(other: CVector) { 107 | CVector.AssignPointers([other]); 108 | Memory.CallMethod(0x411a00, this.pointer, 1, 0, other.pointer); 109 | return this; 110 | } 111 | /** -= */ sub(other: CVector) { 112 | CVector.AssignPointers([other]); 113 | Memory.CallMethod(0x406d70, this.pointer, 1, 0, other.pointer); 114 | return this; 115 | } 116 | /** *= */ mul(multiplier: float) { 117 | this.x *= multiplier; 118 | this.y *= multiplier; 119 | this.z *= multiplier; 120 | return this; 121 | } 122 | /** /= */ div(divisor: float) { 123 | this.x /= divisor; 124 | this.y /= divisor; 125 | this.z /= divisor; 126 | return this; 127 | } 128 | toString() { 129 | return `${this.x.toFixed(2)} ${this.y.toFixed(2)} ${this.z.toFixed(2)}`; 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CVehicle.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | import { CPhysical } from "./CPhysical"; 9 | 10 | export class CVehicle extends CPhysical { 11 | handle: Car; 12 | 13 | constructor(carOrPointer: Car | int) { 14 | if (carOrPointer instanceof Car) { 15 | super(Memory.GetVehiclePointer(carOrPointer)); 16 | this.handle = carOrPointer; 17 | this.pointer = Memory.GetVehiclePointer(carOrPointer); 18 | } else { 19 | super(carOrPointer); 20 | this.handle = Memory.GetVehicleRef(carOrPointer); 21 | this.pointer = carOrPointer; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CWeapon.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | export enum eWeaponState { 9 | READY, 10 | FIRING, 11 | RELOADING, 12 | OUT_OF_AMMO, 13 | MELEE_MADECONTACT, 14 | } 15 | 16 | export class CWeapon { 17 | pointer: int; 18 | 19 | constructor(pointer) { 20 | this.pointer = pointer; 21 | } 22 | 23 | get type(): int { 24 | return Memory.ReadI32(this.pointer, false); 25 | } 26 | 27 | get state(): int { 28 | return Memory.ReadI32(this.pointer + 4, false); 29 | } 30 | set state(value: int) { 31 | Memory.WriteI32(this.pointer + 4, value, false); 32 | } 33 | 34 | get ammoInClip(): int { 35 | return Memory.ReadI32(this.pointer + 8, false); 36 | } 37 | set ammoInClip(value: int) { 38 | Memory.WriteI32(this.pointer + 8, value, false); 39 | } 40 | 41 | get totalAmmo(): int { 42 | return Memory.ReadI32(this.pointer + 0x0c, false); 43 | } 44 | set totalAmmo(value: int) { 45 | Memory.WriteI32(this.pointer + 0x0c, value, false); 46 | } 47 | 48 | get shotTimer(): int { 49 | return Memory.ReadI32(this.pointer + 0x10, false); 50 | } 51 | set shotTimer(value: int) { 52 | Memory.WriteI32(this.pointer + 0x10, value, false); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/CWorld.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | import { CEntity } from "./CEntity"; 9 | import { CVector } from "./CVector"; 10 | 11 | export class CWorld { 12 | static SetPedsOnFire(position: CVector, radius: float, culprit?: CEntity) { 13 | Memory.CallFunction( 14 | 0x565610, 15 | 5, 16 | 5, 17 | Memory.FromFloat(position.x), 18 | Memory.FromFloat(position.y), 19 | Memory.FromFloat(position.z), 20 | Memory.FromFloat(radius), 21 | culprit?.pointer ?? 0 22 | ); 23 | } 24 | 25 | static SetCarsOnFire(position: CVector, radius: float, culprit?: CEntity) { 26 | Memory.CallFunction( 27 | 0x5659f0, 28 | 5, 29 | 5, 30 | Memory.FromFloat(position.x), 31 | Memory.FromFloat(position.y), 32 | Memory.FromFloat(position.z), 33 | Memory.FromFloat(radius), 34 | culprit?.pointer ?? 0 35 | ); 36 | } 37 | 38 | static SetPedsChoking(position: CVector, radius: float, culprit?: CEntity) { 39 | Memory.CallFunction( 40 | 0x565800, 41 | 5, 42 | 5, 43 | Memory.FromFloat(position.x), 44 | Memory.FromFloat(position.y), 45 | Memory.FromFloat(position.z), 46 | Memory.FromFloat(radius), 47 | culprit?.pointer ?? 0 48 | ); 49 | } 50 | 51 | static SetWorldOnFire(position: CVector, radius: float, culprit?: CEntity) { 52 | Memory.CallFunction( 53 | 0x56b910, 54 | 5, 55 | 5, 56 | Memory.FromFloat(position.x), 57 | Memory.FromFloat(position.y), 58 | Memory.FromFloat(position.z), 59 | Memory.FromFloat(radius), 60 | culprit?.pointer ?? 0 61 | ); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/Functions.ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | /* Some Plugin SDK classes for GTA: San Andreas. Thanks to: 3 | - GTA community for research; 4 | - DK22Pac for Plugin SDK [https://github.com/DK22Pac/plugin-sdk]; 5 | - Seemann and wmysterio for help. 6 | */ 7 | 8 | export function isNumInRange(value: number, min: number, max: number) { 9 | return value >= min && value <= max; 10 | } 11 | 12 | export function clamp(value: number, min: number, max: number) { 13 | return value > max ? max : value < min ? min : value; 14 | } 15 | 16 | export function getWindowResolution() { 17 | return { 18 | width: Memory.ReadI32(0xc17040 + 4, false), 19 | height: Memory.ReadI32(0xc17040 + 8, false), 20 | }; 21 | } 22 | 23 | export function convertToGameScreenPos(x: float, y: float) { 24 | let res = getWindowResolution(); 25 | return { 26 | x: (x / res.width) * 640, 27 | y: (y / res.height) * 448, 28 | }; 29 | } 30 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/ePedBones.ts: -------------------------------------------------------------------------------- 1 | export enum PedBones { 2 | PELVIS1 = 1, 3 | PELVIS = 2, 4 | SPINE1 = 3, 5 | UPPERTORSO = 4, 6 | NECK = 5, 7 | HEAD2 = 6, 8 | HEAD1 = 7, 9 | HEAD = 8, 10 | RIGHTUPPERTORSO = 21, 11 | RIGHTSHOULDER = 22, 12 | RIGHTELBOW = 23, 13 | RIGHTWRIST = 24, 14 | RIGHTHAND = 25, 15 | RIGHTTHUMB = 26, 16 | LEFTUPPERTORSO = 31, 17 | LEFTSHOULDER = 32, 18 | LEFTELBOW = 33, 19 | LEFTWRIST = 34, 20 | LEFTHAND = 35, 21 | LEFTTHUMB = 36, 22 | LEFTHIP = 41, 23 | LEFTKNEE = 42, 24 | LEFTANKLE = 43, 25 | LEFTFOOT = 44, 26 | RIGHTHIP = 51, 27 | RIGHTKNEE = 52, 28 | RIGHTANKLE = 53, 29 | RIGHTFOOT = 54, 30 | } 31 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/examples/dynamicFov[mem].ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | 3 | import { CCamera } from "./Classes/CCamera"; 4 | import { clamp } from "./Classes/Functions"; 5 | 6 | const plr: Player = new Player(0); 7 | 8 | while (true) { 9 | wait(0); 10 | 11 | if (!plr.isPlaying()) continue; 12 | if (!CCamera.Using1stPersonWeaponMode() && CCamera.forward.z > 0) { 13 | CCamera.fov = clamp(70 + CCamera.forward.z * 45, 70, 100); 14 | Camera.PersistFov(true); 15 | } else Camera.PersistFov(false); 16 | } 17 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/examples/headRotation[mem].ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | 3 | import { CCamera } from "./Classes/CCamera"; 4 | import { CPlayerPed } from "./Classes/CPlayerPed"; 5 | 6 | const plr: Player = new Player(0); 7 | const CPlayer: CPlayerPed = new CPlayerPed(0); 8 | const plc: Char = plr.getChar(); 9 | 10 | while (true) { 11 | wait(0); 12 | 13 | if (!plr.isPlaying() || !plr.canStartMission() || plr.isTargetingAnything()) 14 | continue; 15 | 16 | let pos = CCamera.Find3rdPersonCamTargetVector(10, CPlayer.pos).pos; 17 | Task.LookAtCoord(plc, pos.x, pos.y, pos.z, 1000); 18 | } 19 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/examples/manualReload[mem].ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | 3 | import { CPad } from "./Classes/CPad"; 4 | import { CPlayerPed } from "./Classes/CPlayerPed"; 5 | import { eWeaponState } from "./Classes/CWeapon"; 6 | 7 | const plr: Player = new Player(0); 8 | const CPlayer: CPlayerPed = new CPlayerPed(0); 9 | 10 | Memory.Write(0x60b4fa, 6, 0x90, false); // Disable automatic reloading on weapon switch 11 | 12 | while (true) { 13 | wait(0); 14 | 15 | if (!plr.isPlaying()) continue; 16 | 17 | let currentWeapon = CPlayer.weapons[CPlayer.currentWeaponSlot]; 18 | if ( 19 | CPad.CollectPickupJustDown() && // Action button 20 | CPlayer.currentWeaponSlot > 1 && // Pistols 21 | CPlayer.currentWeaponSlot < 6 && // Automatic rifles 22 | currentWeapon.state !== eWeaponState.RELOADING 23 | ) { 24 | currentWeapon.state = eWeaponState.RELOADING; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/examples/pedsCatchFire[mem].ts: -------------------------------------------------------------------------------- 1 | // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | 3 | import { fires } from "./Classes/CFire"; 4 | import { CWorld } from "./Classes/CWorld"; 5 | 6 | const plr: Player = new Player(0); 7 | 8 | while (true) { 9 | wait(100); 10 | 11 | if (!plr.isPlaying()) continue; 12 | fires.forEach((f) => { 13 | if ( 14 | f.doesExist() && 15 | !f.isCreatedByScript() && 16 | Math.RandomIntInRange(0, 10) === 0 17 | ) { 18 | CWorld.SetPedsOnFire(f.pos, 0.5); 19 | } 20 | }); 21 | } 22 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/examples/readMe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Classes example scripts (GTA: San Andreas, CLEO Redux) 6 | 19 | 20 | 21 | 22 | 29 | 40 | 41 | 42 | 43 |

Classes example scripts (GTA: San Andreas, CLEO Redux)

44 |

ENGLISH

45 | 58 |

RUSSIAN

59 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/examples/readMe.md: -------------------------------------------------------------------------------- 1 | # Classes example scripts (GTA: San Andreas, CLEO Redux) 2 | ## ENGLISH 3 | * Author: Vital (Vitaly Pavlovich Ulyanov) 4 | * Description: 5 | * `dynamicFov`: Adds dynamic field of view like in GTA IV, where it increases as you lower the camera. 6 | * `headRotation`: The player now looks where the camera is looking. 7 | * `manualReload`: Weapons need to be reloaded manually by pressing Action button. 8 | * `pedsCatchFire`: Pedestrians can now catch fire just like the player. 9 | * Requirements: CLEO Redux (v.1.2.1 or newer), Classes module. 10 | * Installation: Put the scripts you like in `GTA SA/CLEO` folder. 11 | 12 | ## RUSSIAN 13 | * Автор: Vital (Виталий Павлович Ульянов) 14 | * Описание: 15 | * `dynamicFov`: Добавляет изменение поля зрения как в GTA IV, увеличивая его, если опускать камеру. 16 | * `headRotation`: Теперь игрок смотрит туда же, куда и камера. 17 | * `manualReload`: Оружие нужно перезаряжать вручную, нажимая кнопку действия. 18 | * `pedsCatchFire`: Теперь пешеходы могут загораться от огней, как и игрок. 19 | * Требования: CLEO Redux (v.1.2.1 или новее) и модуль Classes. 20 | * Установка: Поместите понравившиеся скрипты в папку `GTA SA/CLEO`. -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/readMe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Classes (GTA: San Andreas, CLEO Redux) 6 | 19 | 20 | 21 | 22 | 29 | 40 | 41 | 42 | 43 |

Classes (GTA: San Andreas, CLEO Redux)

44 |

ENGLISH

45 | 51 |

RUSSIAN

52 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Classes/readMe.md: -------------------------------------------------------------------------------- 1 | # Classes (GTA: San Andreas, CLEO Redux) 2 | ## ENGLISH 3 | * Author: Vital (Vitaly Pavlovich Ulyanov) 4 | * Description: A module providing support for *some* classes from [Plugin SDK](https://github.com/DK22Pac/plugin-sdk) for GTA: San Andreas. 5 | * Requirements: CLEO Redux (v.1.3.1 or newer) + CLEO 5.0.2 or newer. 6 | * Installation: Put `Classes` folder into your `GTA San Andreas` folder. When creating scripts, import the necessary classes and do not forget to put `[mem]` in the end of the script name. 7 | 8 | ## RUSSIAN 9 | * Автор: Vital (Виталий Павлович Ульянов) 10 | * Описание: Модуль, добавляющий *некоторые* классы из [Plugin SDK](https://github.com/DK22Pac/plugin-sdk) для игры GTA: San Andreas. 11 | * Требования: CLEO Redux (v.1.3.1 или новее) + CLEO 5.0.2 или новее. 12 | * Установка: Поместите папку `Classes` в каталог `GTA San Andreas`. Для создания скриптов импортируйте нужные классы и/или функции и не забудьте добавить `[mem]` в конце имени скрипта. -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Console/Console[mem]/ForDevelopers.txt: -------------------------------------------------------------------------------- 1 | --- Commands --- 2 | 01. HELP 3 | 02. SEARCH ~y~string 4 | 03. CONFIGURATIONS 5 | 04. HEALTH ~y~int 6 | 05. ARMOUR ~y~int [0;100] 7 | 06. BULLETPROOF ~y~bool 8 | 07. FIREPROOF ~y~bool 9 | 08. EXPLOSIONPROOF ~y~bool 10 | 09. COLLISIONPROOF ~y~bool 11 | 10. MELEEPROOF ~y~bool 12 | 11. NEVER TIRED ~y~bool 13 | 12. POS ~y~float[3] 14 | 13. TO MAP TARGET 15 | 14. HEADING ~y~float [0;360] 16 | 15. INTERIOR ~y~int [0;18] 17 | 16. WANTED ~y~int [0;6] 18 | 17. MAX WANTED ~y~int [0;6] 19 | 18. SENSITIVITY TO CRIME ~y~float 20 | 19. IGNORED BY POLICE ~y~bool 21 | 20. IGNORED BY PEDESTRIANS ~y~bool 22 | 21. ADD MONEY ~y~int 23 | 22. SET MONEY ~y~int 24 | 23. WEAPON ~y~~n~weapon: int [1;18]+[22;46]~n~ammo: int 25 | 24. AMMO ~y~int [0;] 26 | 25. JETPACK 27 | 26. TIME ~y~~n~hours: int [0;23]~n~minutes: int [0;59] 28 | 27. WEATHER ~y~int [1;22] 29 | 28. SPEED ~y~float 30 | 29. CAR SPAWN 31 | 30. FIX ~y~current vehicle 32 | 31. UNFLIP ~y~current vehicle 33 | 32. CAR HEALTH ~y~int 34 | 33. CAR BULLETPROOF ~y~bool 35 | 34. CAR FIREPROOF ~y~bool 36 | 35. CAR EXPLOSIONPROOF ~y~bool 37 | 36. CAR COLLISIONPROOF ~y~bool 38 | 37. CAR MELEEPROOF ~y~bool 39 | 38. TYRES BULLETPROOF ~y~bool 40 | 39. PETROL TANK BULLETPROOF ~y~bool 41 | 40. CAR HEAVY ~y~bool 42 | 41. CAR HYDRAULICS ~y~bool 43 | 42. HELI WINCH ~y~bool 44 | 43. CLEAR AREA ~y~radius: float 45 | 44. PED DENSITY ~y~float 46 | 45. CAR DENSITY ~y~float 47 | 46. BURLGARY HOUSES ~y~bool 48 | 47. AIRCRAFT CARRIER DEFENCE ~y~bool 49 | 48. MILITARY BASE DEFENCE ~y~bool 50 | 49. DISABLE MILITARY ZONES WANTED LEVEL ~y~bool 51 | 50. GANG WAR ~y~bool 52 | 51. DEATH PENALTIES ~y~bool 53 | 52. ARREST PENALTIES ~y~bool 54 | 53. FREE RESPRAY ~y~bool 55 | 54. DISABLE RESPRAY ~y~bool 56 | 55. OVERLAY ~r~~n~red ~g~green ~b~blue~y~: int[3] [0;255]~n~alpha: int [0;240] (0 - disable) 57 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Console/Console[mem]/configs.ts: -------------------------------------------------------------------------------- 1 | // Until I figure out how to load configs from separate files, they are all here. 2 | export let configsInfo: { 3 | name: string, 4 | description: string, 5 | commands: string[] 6 | }[] = [ 7 | { 8 | name: 'Terminator', 9 | description: 'Invulnerability and heavy cars', 10 | commands: [ 11 | 'BULLETPROOF 1', 12 | 'FIREPROOF 1', 13 | 'EXPLOSIONPROOF 1', 14 | 'COLLISIONPROOF 1', 15 | 'MELEEPROOF 1', 16 | 'CAR BULLETPROOF 1', 17 | 'CAR FIREPROOF 1', 18 | 'CAR EXPLOSIONPROOF 1', 19 | 'CAR COLLISIONPROOF 1', 20 | 'CAR MELEEPROOF 1', 21 | 'TYRES BULLETPROOF 1', 22 | 'PETROL TANK BULLETPROOF 1', 23 | 'CAR HEAVY 1' 24 | ] 25 | }, 26 | { 27 | name: 'Parkour master', 28 | description: 'Infinite stamina, no fall damage', 29 | commands: [ 30 | 'COLLISIONPROOF 1', 31 | 'NEVER TIRED 1' 32 | ] 33 | }, 34 | { 35 | name: 'Mere mortal', 36 | description: 'Clears all proofs and other cheats', 37 | commands: [ 38 | 'BULLETPROOF 0', 39 | 'FIREPROOF 0', 40 | 'EXPLOSIONPROOF 0', 41 | 'COLLISIONPROOF 0', 42 | 'MELEEPROOF 0', 43 | 'NEVER TIRED 0', 44 | 'CAR BULLETPROOF 0', 45 | 'CAR FIREPROOF 0', 46 | 'CAR EXPLOSIONPROOF 0', 47 | 'CAR COLLISIONPROOF 0', 48 | 'CAR MELEEPROOF 0', 49 | 'TYRES BULLETPROOF 0', 50 | 'PETROL TANK BULLETPROOF 0', 51 | 'CAR HEAVY 0', 52 | 'DEATH PENALTIES 1', 53 | 'ARREST PENALTIES 1', 54 | 'AIRCRAFT CARRIER DEFENCE 1', 55 | 'MILITARY BASE DEFENCE 1', 56 | 'DISABLE MILITARY ZONES WANTED LEVEL 0', 57 | 'FREE RESPRAY 0' 58 | ] 59 | }, 60 | { 61 | name: 'Leave me alone', 62 | description: 'Clears wanted level and disables it', 63 | commands: [ 64 | 'WANTED 0', 65 | 'MAX WANTED 0' 66 | ] 67 | }, 68 | { 69 | name: 'Riot weapons', 70 | description: 'Weapons pack to start a riot', 71 | commands: [ 72 | 'WEAPON 5 1', 73 | 'WEAPON 18 8', 74 | 'WEAPON 22 102', 75 | 'WEAPON 30 120', 76 | 'WEAPON 33 40', 77 | 'WEAPON 41 200' 78 | ] 79 | }, 80 | { 81 | name: 'Psycho weapons', 82 | description: 'Weapons for the crazy ones', 83 | commands: [ 84 | 'WEAPON 9 1', 85 | 'WEAPON 16 8', 86 | 'WEAPON 26 50', 87 | 'WEAPON 31 120', 88 | 'WEAPON 38 300', 89 | 'WEAPON 45 1' 90 | ] 91 | }, 92 | { 93 | name: 'Secret agent weapons', 94 | description: 'Weapons for a stealthy operation', 95 | commands: [ 96 | 'WEAPON 4 1', 97 | 'WEAPON 17 7', 98 | 'WEAPON 23 119', 99 | 'WEAPON 29 90', 100 | 'WEAPON 34 30', 101 | 'WEAPON 44 1' 102 | ] 103 | }, 104 | { 105 | name: 'Empty streets', 106 | description: 'No pedestrians and traffic', 107 | commands: [ 108 | 'CLEAR AREA 100', 109 | 'PED DENSITY 0', 110 | 'CAR DENSITY 0' 111 | ] 112 | }, 113 | { 114 | name: 'Living city', 115 | description: 'Reset pedestrians and traffic', 116 | commands: [ 117 | 'PED DENSITY 1', 118 | 'CAR DENSITY 1' 119 | ] 120 | }, 121 | { 122 | name: 'Lose nothing', 123 | description: 'You keep your money and weapons after death and arrest', 124 | commands: [ 125 | 'DEATH PENALTIES 0', 126 | 'ARREST PENALTIES 0' 127 | ] 128 | }, 129 | { 130 | name: 'Hospitable military', 131 | description: 'Walk freely in restricted areas', 132 | commands: [ 133 | 'DISABLE MILITARY ZONES WANTED LEVEL 1', 134 | 'AIRCRAFT CARRIER DEFENCE 0', 135 | 'MILITARY BASE DEFENCE 0' 136 | ] 137 | }, 138 | { 139 | name: 'Hostile military', 140 | description: 'Restricted areas are protected again', 141 | commands: [ 142 | 'DISABLE MILITARY ZONES WANTED LEVEL 0', 143 | 'AIRCRAFT CARRIER DEFENCE 1', 144 | 'MILITARY BASE DEFENCE 1' 145 | ] 146 | } 147 | ]; -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Console/readMe.md: -------------------------------------------------------------------------------- 1 | # Console (GTA: San Andreas; CLEO Redux) 2 | ## ENGLISH 3 | * **Author**: Vital (Vitaly Pavlovich Ulyanov) 4 | * **Thanks for help to**: Seemann, wmysterio 5 | * **Description**: A command line for GTA: San Andreas with a full-fledged list of commands, hints, autocompletion, and search. Turn on and off with ~. 6 | * **Requirements**: CLEO Redux v1.3.1 + CLEO 5.0.2 or newer with IDE loader plugins (should be installed with CLEO). 7 | * **Installation**: Put `Console[mem]` folder and `sa_enums.ts` file in your `GTA San Andreas\CLEO` directory. 8 | 9 |
10 | Version history 11 | 12 | ```diff 13 | v0.75 [31.03.2025] 14 | + `IGNORED BY POLICE`, `IGNORED BY PEDESTRIANS`, `DEATH PENALTIES`, `ARREST PENALTIES` commands 15 | + `Lose nothing` config 16 | 17 | v0.731 [30.03.2025] 18 | + Improved randomness for `OVERLAY` command examples (generated when launched without user values) 19 | + Disabled camera change button during input 20 | 21 | v0.73 [28.03.2025] 22 | + `OVERLAY` command 23 | + Autocompletion starts search if the command is not found 24 | 25 | v0.72 [24.03.2025] 26 | + `DISABLE MILITARY ZONES WANTED LEVEL`, `HELI WINCH`, `SENSITIVITY TO CRIME` commands 27 | + `Hospitable military` and `Hostile military` configs 28 | 29 | v0.7 [23.03.2025] 30 | + `JETPACK`, `BURLGARY HOUSES`, `AIRCRAFT CARRIER DEFENCE`, `MILITARY BASE DEFENCE`, `GANG WAR`, `FREE RESPRAY`, `DISABLE RESPRAY` commands 31 | + `Empty streets` and `Living city` configs 32 | 33 | v0.61 [22.03.2025] 34 | + NumPad support (0-9, `.`, `-`) 35 | + `CLEAR AREA`, `PED DENSITY`, `CAR DENSITY` commands 36 | 37 | v0.6 [21.03.2025] 38 | + Command line is now shown in the upper-left corner. 39 | + Search and autocompletion improvements. 40 | + `Never tired` command. 41 | + `Mere mortal` and `Parkour master` configs. 42 | 43 | v0.5 [17.03.2025] 44 | + Initial release with basic functions and configs. 45 | ``` 46 |
47 | 48 | --- 49 | 50 | ## РУССКИЙ 51 | * **Автор**: Vital (Виталий Павлович Ульянов) 52 | * **Благодарю за помощь**: Seemann, wmysterio 53 | * **Описание**: Командная строка для GTA: San Andreas с полноценным списком команд, подсказками, автозавершением и поиском. Включить/выключить: ~. 54 | * **Требования**: CLEO Redux v1.3.1 + CLEO 5.0.2 или новее и плагин IDE loader (установите с CLEO). 55 | * **Установка**: Поместите папку `Console[mem]` и файл `sa_enums.ts` в каталог `GTA San Andreas\CLEO`. 56 | 57 |
58 | История изменений 59 | 60 | ```diff 61 | v0.75 [31.03.2025] 62 | + Команды `IGNORED BY POLICE`, `IGNORED BY PEDESTRIANS`, `DEATH PENALTIES`, `ARREST PENALTIES` 63 | + Конфигурация `Lose nothing` (не терять деньги и оружие после смерти и ареста) 64 | 65 | v0.731 [30.03.2025] 66 | + Улучшена случайность в примерах команды `OVERLAY` (при запуске её без ввода своих значений) 67 | + Смена камеры отключается на время ввода 68 | 69 | v0.73 [28.03.2025] 70 | + Команда `OVERLAY` (цветовое наложение на экране) 71 | + Автозавершение включает поиск, если команда не найдена 72 | 73 | v0.72 [24.03.2025] 74 | + Команды `DISABLE MILITARY ZONES WANTED LEVEL`, `HELI WINCH`, `SENSITIVITY TO CRIME` 75 | + Конфигурации `Hospitable military` (отключение запретных зон) и `Hostile military` (включение запретных зон) 76 | 77 | v0.7 [23.03.2025] 78 | + Команды `JETPACK`, `BURLGARY HOUSES`, `AIRCRAFT CARRIER DEFENCE`, `MILITARY BASE DEFENCE`, `GANG WAR`, `FREE RESPRAY`, `DISABLE RESPRAY` 79 | + Конфигурации `Empty streets` (убрать пешеходов и машины) и `Living city` (вернуть пешеходов и машины) 80 | 81 | v0.61 [22.03.2025] 82 | + Поддержка NumPad (0-9, `.`, `-`) 83 | + Команды `CLEAR AREA`, `PED DENSITY`, `CAR DENSITY` 84 | 85 | v0.6 [21.03.2025] 86 | + Командная строка перемещена в левый верхний угол. 87 | + Улучшени поиска и автозавершения. 88 | + Команда `Never tired` (бесконечный бег). 89 | + Конфигурации `Mere mortal` (сброс преимуществ) и `Parkour master` (бесконечный бег + нет урона от падения). 90 | 91 | v0.5 [17.03.2025] 92 | + Первая версия: базовые функции и конфигурации. 93 | ``` 94 |
-------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Quick Body/readMe.md: -------------------------------------------------------------------------------- 1 | # Quick Body (GTA: San Andreas; CLEO Redux) 2 | ## ENGLISH 3 | * **Author**: Vital (Vitaly Pavlovich Ulyanov). 4 | * **Description**: A quick way to change CJ's appearance: clothes, haircut, tattoos. Type `BODY` to open the menu. 5 | * **Requirements**: CLEO Redux v1.3.3 + CLEO 5.0.2 or newer. 6 | * **Installation**: Put `quickBody.ts` and `simpleMenu.ts` in your `GTA San Andreas\CLEO` directory. 7 | 8 | --- 9 | 10 | ## РУССКИЙ 11 | * **Автор**: Vital (Виталий Павлович Ульянов). 12 | * **Описание**: Быстрый способ изменить внешность CJ’я: одежду, причёску, татуировки. Для открытия меню введите `BODY`. 13 | * **Требования**: CLEO Redux v1.3.3 + CLEO 5.0.2 или новее. 14 | * **Установка**: Поместите `quickBody.ts` и `simpleMenu.ts` в каталог `GTA San Andreas\CLEO`. -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/Quick Teleporter/readMe.md: -------------------------------------------------------------------------------- 1 | # Quick Teleporter (GTA: San Andreas; CLEO Redux) 2 | ## ENGLISH 3 | * **Author**: Vital (Vitaly Pavlovich Ulyanov). 4 | * **Thanks for help to**: Seemann. 5 | * **Description**: A simple teleporter to all main locations on the map, including interiors. Type `TELEP` to open the menu. 6 | * **Requirements**: CLEO Redux v1.3.3 + CLEO 5.0.2 or newer. 7 | * **Installation**: Put `quickTeleporter[mem].ts` and `simpleMenu.ts` in your `GTA San Andreas\CLEO` directory. 8 | 9 | --- 10 | 11 | ## РУССКИЙ 12 | * **Автор**: Vital (Виталий Павлович Ульянов). 13 | * **Благодарю за помощь**: Seemann. 14 | * **Описание**: Простой телепорт ко всем основным местам на карте. Для открытия меню введите `TELEP`. 15 | * **Требования**: CLEO Redux v1.3.3 + CLEO 5.0.2 или новее. 16 | * **Установка**: Поместите `quickTeleporter[mem].ts` и `simpleMenu.ts` в каталог `GTA San Andreas\CLEO`. -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/ReHUD[fs][mem]/readMe.md: -------------------------------------------------------------------------------- 1 | # ReHUD (GTA: San Andreas) 2 | ## ENGLISH 3 | * Author: Vital (Vitaly Pavlovich Ulyanov) 4 | * Description: Alternative HUD for GTA: SA. To activate it, turn off the original HUD in the display settings or just type 'HUD' to show the mod menu where you can not only switch between the two HUDs but also configure quite a lot of the script's parameters, such as font, HUD size, clock variations and much more. 5 | * Requirements: CLEO Redux v1.3.1 + CLEO 5.0.2 or newer, full installation is preferrable. 6 | * Installation: put ReHUD[fs][mem] folder into GTA SA\CLEO folder. 7 | * Thanks for help to: Seemann, Grinch, Alexander Lukhnovich, Bloodriver. 8 | * Thanks for ideas to: Seemann, Bloodriver. 9 | 10 | ### Version history 11 | #### 1.1 12 | ```diff 13 | + minor fixes 14 | + radar width fix 15 | 16 | ! Do not replace rehud.ini if you want to keep the old mod settings when updating. 17 | ``` 18 | #### 1.2 19 | ```diff 20 | + fixed plane heading overlay on the radar 21 | ``` 22 | #### 1.3 23 | ```diff 24 | + Russian translation added! The mod defaults to English, other languages can be found in Localisation folder, just copy the texts.js from the desired language subfolder into the main directory. 25 | ``` 26 | #### 1.4 27 | ```diff 28 | + minor optimisation 29 | + fixed showing oxygen level when in a boat 30 | ``` 31 | #### 1.5 32 | ```diff 33 | + added radar and map colour choice (thanks to Bloodriver!) 34 | + added crosshair colour choice (thanks to Bloodriver!) 35 | ``` 36 | #### 1.6 37 | ```diff 38 | + added Turkish translation (thanks to Bloodriver!) 39 | + added Ukrainian translation (thanks to wmysterio!) 40 | ``` 41 | 42 | ## РУССКИЙ 43 | * Автор: Vital (Виталий Павлович Ульянов) 44 | * Описание: Альтернативный HUD (интерфейс) для GTA: SA. Для его включения отключите стандартную игровую панель в настройках дисплея в меню игры или введите чит-код 'HUD' для показа меню мода, где Вы сможете не только переключаться между разными HUD’ами, но и настроить параметры скрипта, такие как шрифт, размер HUD’а, разновидности часов и многое другое. 45 | * Требования: CLEO Redux v1.3.1 + CLEO 5.0.2 или новее, желательна полная установка. 46 | * Установка: папку ReHUD[fs][mem] поместить в папку GTA SA\CLEO. 47 | * Помогали: Seemann, Grinch, Александр Лухнович, Bloodriver. 48 | * Предлагали идеи: Seemann, Bloodriver. 49 | 50 | ### История версий 51 | #### 1.1 52 | ```diff 53 | + небольшие правки 54 | + исправлено соотношение сторон радара 55 | 56 | ! Если при обновлении скрипта Вы хотите сохранить прежние настройки, не заменяйте файл rehud.ini. 57 | ``` 58 | #### 1.2 59 | ```diff 60 | + исправлено наложение угла самолёта на радаре 61 | ``` 62 | #### 1.3 63 | ```diff 64 | + Добавлен русский перевод! По умолчанию используется английский язык, переводы лежат в папке Localisation: выбрав подпапку с нужным языком, скопируйте из неё файл texts.js в основной каталог скрипта. 65 | ``` 66 | #### 1.4 67 | ```diff 68 | + небольшая оптимизация 69 | + уровень кислорода больше не показывается в лодках 70 | ``` 71 | 72 | #### 1.5 73 | ```diff 74 | + добавлен выбор цвета карты и радара (спасибо Bloodriver!) 75 | + добавлен выбор цвета прицела (спасибо Bloodriver!) 76 | ``` 77 | #### 1.6 78 | ```diff 79 | + добавлен турецкий перевод (спасибо Bloodriver!) 80 | + добавлен украинский перевод (спасибо wmysterio!) 81 | ``` -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/ReHUD[fs][mem]/rehud.fxt: -------------------------------------------------------------------------------- 1 | REHWL1 ] 2 | REHWL2 ]] 3 | REHWL3 ]]] 4 | REHWL4 ]]]] 5 | REHWL5 ]]]]] 6 | REHWL6 ]]]]]] 7 | REHAMM @@@ -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/ReHUD[fs][mem]/rehud.ini: -------------------------------------------------------------------------------- 1 | [SETTINGS] 2 | Font =3 3 | OutlineWidth =1 4 | Shadow =0 5 | Size =10 6 | Clock=1 7 | HrsCentre=1 8 | WantedStars=1 9 | UseBars=1 10 | BarFgAlpha=190 11 | BarBgAlpha=155 12 | BarMdAlpha=155 13 | BarSeparator=1 14 | BarSepR=255 15 | BarSepG=255 16 | BarSepB=255 17 | BarSepA=175 18 | RadarR=196 19 | RadarG=255 20 | RadarB=177 21 | CrosshairR=246 22 | CrosshairG=9 23 | CrosshairB=9 24 | CrosshairA=255 25 | Language=English 26 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/ReHUD[fs][mem]/texts.json: -------------------------------------------------------------------------------- 1 | { 2 | "English": { 3 | "Translation": "English [Vital]", 4 | "Save": "Save settings", 5 | "TurnON": "Enable new HUD", 6 | "UseBars": "Use bars", 7 | "UseSeparator": "Use separator", 8 | "BarSettings": "Bars settings", 9 | "BgAlpha": "Background transparency", 10 | "MdAlpha": "Middle colour transparency", 11 | "FgAlpha": "Foreground transparency", 12 | "SepColour": "Separator colour", 13 | "Shadow": "Shadow instead of outline", 14 | "DefClock": "Standard clock", 15 | "HrsCentre": "Hours in centre", 16 | "WantedStars": "Wanted level stars", 17 | "Font": "Font:", 18 | "Gothic": "Gothic", 19 | "Subtitles": "Subtitles", 20 | "Menu": "Menu", 21 | "Pricedown": "Pricedown", 22 | "Scale": "HUD size", 23 | "ShadowSize": "Shadow size", 24 | "OutlineSize": "Outline size", 25 | "RadarMapColour": "Radar & map colour", 26 | "CrosshairColour": "Crosshair colour", 27 | "About": "About", 28 | "Authors": "Authors:\n- Mod by Vital (Vitaly Ulyanov)\n- CLEO Redux by Seemann\n- ImGui support by Grinch", 29 | "Help": "Thanks for help to: Seemann, Grinch, Alexander Lukhnovich, Bloodriver", 30 | "Ideas": "Thanks for ideas to: Seemann, Bloodriver" 31 | }, 32 | "Русский": { 33 | "Translation": "Русский [Vital]", 34 | "Save": "Сохранить настройки", 35 | "TurnON": "Включить новый HUD", 36 | "UseBars": "Шкалы", 37 | "UseSeparator": "Разделитель", 38 | "BarSettings": "Настройки шкал", 39 | "BgAlpha": "Прозрачность фонового цвета", 40 | "MdAlpha": "Прозрачность среднего цвета", 41 | "FgAlpha": "Прозрачность переднего цвета", 42 | "SepColour": "Цвет разделителя", 43 | "Shadow": "Тень вместо обводки", 44 | "DefClock": "Обычные часы", 45 | "HrsCentre": "Показатель часа в центре", 46 | "WantedStars": "Звёздочки розыска", 47 | "Font": "Шрифт:", 48 | "Gothic": "Готический", 49 | "Subtitles": "Субтитры", 50 | "Menu": "Меню", 51 | "Pricedown": "Pricedown", 52 | "Scale": "Размер HUD’а", 53 | "ShadowSize": "Размер тени", 54 | "OutlineSize": "Размер обводки", 55 | "RadarMapColour": "Цвет карты и радара", 56 | "CrosshairColour": "Цвет прицела", 57 | "About": "О модификации", 58 | "Authors": "Авторы:\n- Мод — Vital (Виталий Ульянов)\n- CLEO Redux — Seemann\n- Поддержка ImGui — Grinch", 59 | "Help": "Помогали: Seemann, Grinch, Александр Лухнович, Bloodriver", 60 | "Ideas": "Предлагали идеи: Seemann, Bloodriver" 61 | }, 62 | "Українська": { 63 | "Translation": "Українська [wmysterio]", 64 | "Save": "Зберегти налаштування", 65 | "TurnON": "Увімкнути новий HUD", 66 | "UseBars": "Індикатори", 67 | "UseSeparator": "Розділювач", 68 | "BarSettings": "Налаштування індикаторів", 69 | "BgAlpha": "Прозорість фонового кольору", 70 | "MdAlpha": "Прозорість середнього кольору", 71 | "FgAlpha": "Прозорість переднього кольору", 72 | "SepColour": "Колір розділювача", 73 | "Shadow": "Тінь замість обведення", 74 | "DefClock": "Звичайний годинник", 75 | "HrsCentre": "Індикатор годин по центру", 76 | "WantedStars": "Зірки розшуку", 77 | "Font": "Шрифт:", 78 | "Gothic": "Готичний", 79 | "Subtitles": "Субтитри", 80 | "Menu": "Меню", 81 | "Pricedown": "Pricedown", 82 | "Scale": "Розмір HUD’а", 83 | "ShadowSize": "Розмір тіні", 84 | "OutlineSize": "Розмір обведення", 85 | "RadarMapColour": "Колір карти і радара", 86 | "CrosshairColour": "Колір прицілу", 87 | "About": "Про модифікацію", 88 | "Authors": "Автори:\n- Мод — Vital (Виталий Ульянов)\n- CLEO Redux — Seemann\n- Підтримка ImGui — Grinch", 89 | "Help": "Допомагали: Seemann, Grinch, Александр Лухнович, Bloodriver", 90 | "Ideas": "Пропонували ідеї: Seemann, Bloodriver" 91 | }, 92 | "Türkçe": { 93 | "Translation":"Türkçe [Bloodriver]", 94 | "Save": "Ayarları Kaydet", 95 | "TurnON": "Yeni Hudu Etkinleştir", 96 | "UseBars": "Çubukları Kullan", 97 | "UseSeparator": "Ayırıcı kullanın", 98 | "BarSettings": "Çubukların Ayarları", 99 | "BgAlpha": "Arka plan saydamlığı", 100 | "MdAlpha": "Orta renk şeffaflığı", 101 | "FgAlpha": "Ön planda şeffaflık", 102 | "SepColour": "Ayırıcı renk", 103 | "Shadow": "Anahat yerine gölge", 104 | "DefClock": "Standart saat", 105 | "HrsCentre": "Merkezdeki saatler", 106 | "WantedStars": "Aranan seviye yıldızlar", 107 | "Font": "Yazı Tipi:", 108 | "Gothic": "Gotik", 109 | "Subtitles": "Altyazılar", 110 | "Menu": "Menü", 111 | "Pricedown": "Pricedown", 112 | "Scale": "Hud Boyutu", 113 | "ShadowSize": "Gölge Boyutu", 114 | "OutlineSize": "Anahat Boyutu", 115 | "RadarMapColour": "Radar ve harita rengi", 116 | "CrosshairColour": "Crosshair rengi", 117 | "About": "Hakkında", 118 | "Authors": "Yazarlar:n- Vital tarafından Mod (Vitaly Ulyanov)n- CLEO Redux Seemann tarafındann- Grinch'ten ImGui desteği", 119 | "Help": "Yardım için teşekkürler: Seemann, Grinch, Alexander Lukhnovich, Bloodriver", 120 | "Ideas": "Fikirleriniz için teşekkürler: Seemann, Bloodriver" 121 | } 122 | } -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/VTrainer[fs][mem]/readMe.md: -------------------------------------------------------------------------------- 1 | # Vital Trainer (GTA: San Andreas; CLEO Redux) 2 | ## ENGLISH 3 | * **Author**: Vital (Vitaly Pavlovich Ulyanov) 4 | * **Thanks for help to**: Seemann, Bloodriver 5 | * **Description**: A new multi-functional trainer for GTA: SA. Work in progress… To open the script menu, press `~`. The trainer features dynamic-speed sliders, three modes of precision in adjusting some values, tri-state switches (game's choice, always enabled, and always disabled), and more. 6 | * **Requirements**: CLEO Redux v1.1.3 + CLEO 5.0.2 or newer with ImGui Redux and IDE loader plugins (should be installed with CLEO). 7 | * **Installation**: Put `VTrainer[fs][mem]` folder in your `GTA San Andreas\CLEO` directory. 8 | 9 |
10 | Version history 11 | 12 | ```diff 13 | v2023-04-17 14 | + Initial version: some basic functions for Player, Vehicle, World, and Position categories. 15 | 16 | v2023-04-18 17 | - The code was significantly optimised thanks to Seemann's advice 18 | + Added wind speed sliders [World > Weather] 19 | 20 | v2023-04-19 21 | + Added gravity editing [World > General] 22 | + Added player movement and camera lock [Player > General] 23 | + Added infinite sprint and ignored state [Player > Proofs] 24 | 25 | v2023-05-04 26 | - Replaced some checkboxes with tri-state switches (-1: let the game choose the state, 0: always OFF, 1: always ON) 27 | + Added hydraulics control [Car > General] 28 | + Added checkboxes for pedestrian and car density sliders [World > Population] 29 | + Added sound feedback for buttons 30 | 31 | v2023-05-06 32 | + Added state information for tri-state switches 33 | + Enabled window resizing and moving 34 | + Added dynamic resizing of the window's content 35 | 36 | v2023-05-16 37 | + Added trainer window control: hold ~ and press Home, End, or arrow buttons to reset the window, maximise it, or snap to a side of the screen (combine arrow buttons to snap to corners) 38 | ``` 39 |
40 | 41 | --- 42 | 43 | ## RUSSIAN 44 | * **Автор**: Vital (Виталий Павлович Ульянов) 45 | * **Благодарю за помощь**: Seemann, Bloodriver 46 | * **Описание**: Новый многофунцкиональный трейнер для GTA: SA. В разработке… Для открытия меню скрипта используйте `~`. Трейнер имеет ползунки с динамической скоростью, три режима точности изменения некоторых параметров, переключатели с тремя состояниями (на выбор игры, всегда включено, всегда выключено) и многое другое. 47 | * **Требования**: CLEO Redux v1.1.3 + CLEO 5.0.2 или новее и плагины ImGui Redux и IDE loader (должны установиться с CLEO). 48 | * **Установка**: Поместите папку `VTrainer[fs][mem]` в каталог `GTA San Andreas\CLEO`. 49 | 50 |
51 | История изменений 52 | 53 | ```diff 54 | v2023-04-17 55 | + Первая версия: самые базовые функции в категориях «Игрок», «Транспорт», «Мир» и «Позиция». 56 | 57 | v2023-04-18 58 | - Благодаря совету Seemann’а код стал заметно оптимизированнее 59 | + Добавлены ползунки скорости ветра 60 | 61 | v2023-04-19 62 | + Добавлено изменение гравитации [Мир > Общее] 63 | + Добавлена блокировка движения и камеры [Игрок > Общее] 64 | + Добавлен бесконечный бег и игнорирование игрока [Игрок > Защита] 65 | 66 | v2023-05-04 67 | - Некоторые флажки заменены переключателями с тремя состояниями (-1: на усмотрение игры, 0: всегда ВЫКЛ, 1: всегда ВКЛ) 68 | + Добавлено управление гидравликой [Транспорт > Общее] 69 | + Добавлены флажки к ползункам числа пешеходов и машин [Мир > Население] 70 | + Добавлен звук при нажатии кнопок 71 | 72 | v2023-05-06 73 | + Переключателям с тремя состояниями добавлено отображение их статуса 74 | + Включено перетаскивание окна и изменение его размера 75 | + При изменении размера окна размер его содержимого меняется автоматически 76 | 77 | v2023-05-16 78 | + Добавлены команды окна трейнера: удерживая ~, нажмите Home, End или кнопки со стрелками для сброса окна, его разворачивания или его прикрепления к краям экрана (сочетайте кнопки со стрелками для прикрепления к углам) 79 | ``` 80 |
-------------------------------------------------------------------------------- /CLEO Redux/GTA SA/VTrainer[fs][mem]/settings.ini: -------------------------------------------------------------------------------- 1 | [SETTINGS] 2 | language=English 3 | opacity=0.5 4 | colsPerRow=24 5 | -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/VTrainer[fs][mem]/texts.ts: -------------------------------------------------------------------------------- 1 | export const Texts = { 2 | 'English': { 3 | 'Opacity': 'Opacity', 4 | 'Tabs': 'Player, Vehicle, World, Position, Display, About', 5 | 'Player': 'Player', 6 | 'Vehicle': 'Vehicle', 7 | 'World': 'World', 8 | 'Position': 'Position', 9 | 'About': 'About', 10 | 'Mode': 'Mode', 11 | 'Reset': 'Reset', 12 | 'GameChoice': 'GAME\'S CHOICE', 13 | 'AlwaysOFF': 'ALWAYS OFF', 14 | 'AlwaysON': 'ALWAYS ON', 15 | 16 | 'General': 'General', 17 | 'Health': 'Health', 18 | 'Armour': 'Armour', 19 | 'Money': 'Money', 20 | 'Wanted': 'Wanted level', 21 | 'MaxWL': 'Max wanted level', 22 | 'LockPlr': 'Lock movement and camera', 23 | 'FreezePlr': 'Lock movement', 24 | 'StayOnBike': 'Stay on bike', 25 | 'InfiniteSprint': 'Infinite sprint', 26 | 'IgnoredByCops': 'Ignored by police', 27 | 'IgnoredByAll': 'Ignored by everyone', 28 | 29 | 'Immunities': 'Proofs', 30 | 'ImmBullet': 'Bullet', 31 | 'ImmFire': 'Fire', 32 | 'ImmExplosion': 'Explosion', 33 | 'ImmCollision': 'Collision', 34 | 'ImmMelee': 'Melee', 35 | 36 | 'TyresProof': 'Bulletproof tyres', 37 | 'HeavyCar': 'Make vehicle heavy', 38 | 'Fix': 'Fix', 39 | 'DirtLevel': 'Dirt level', 40 | 'Spawner': 'Spawn a vehicle', 41 | 'Vehicles': 'Vehicle', 42 | 'Colours': 'Colours', 43 | 'Colour': 'Colour', 44 | 'Paintjob': 'Paintjob', 45 | 'Categories': 'Primary, Secondary, Extra 1, Extra 2', 46 | 'ColsPerRow': 'Colours per row', 47 | 'HydraulicsAdd': 'Add hydraulics', 48 | 'HydraulicsRemove': 'Remove hydraulics', 49 | 50 | 'Population': 'Population', 51 | 'Gravity': 'Gravity', 52 | 'Time': 'Time', 53 | 'Hours': 'Hours', 54 | 'Minutes': 'Minutes', 55 | 'GameSpeed': 'Game speed (%)', 56 | 'LockTime': 'Lock time', 57 | 'Weather': 'Weather', 58 | 'CurrentWeather': 'Current weather', 59 | 'NextWeather': 'Next weather', 60 | 'ResetWeather': 'Reset weather', 61 | 'PedDensChange': 'Change pedestrian density', 62 | 'PedDensity': 'Pedestrian density', 63 | 'CarDensChange': 'Change car density', 64 | 'CarDensity': 'Car density', 65 | 'ClearArea': 'Clear area', 66 | 'Radius': 'Radius', 67 | 'Wind': 'Custom wind speed', 68 | 'WindX': 'Wind speed (X)', 69 | 'WindY': 'Wind speed (Y)', 70 | 'WindZ': 'Wind speed (Z)', 71 | 72 | 'CurPosition': 'Current position', 73 | 'Teleport': 'Teleport', 74 | 'InstantTeleport': 'Instant teleport', 75 | 'InstTpReset': 'Disable on closing the menu', 76 | 'Modes': 'Fast, Precise, Text input', 77 | 'CoordX': 'X', 78 | 'CoordY': 'Y', 79 | 'CoordZ': 'Z', 80 | 'Heading': 'Heading', 81 | 'Interior': 'Interior', 82 | 'Coords': 'Teleport to coordinates', 83 | 'Waypoint': 'Teleport to waypoint', 84 | 85 | 'Hud': 'HUD', 86 | 'Radar': 'Radar', 87 | 'Widescreen': 'Widescreen', 88 | 'NightVision': 'Night vision', 89 | 'ThermalVision': 'Infrared vision', 90 | 91 | 'HowTo': 'Choose the necessary category and subcategory, then adjust settings sliders\' grab or just press it to apply changes.', 92 | 'About0': 'Authors', 93 | 'About1': '\t\tMod by Vital (Vitaly Ulyanov)', 94 | 'About2': '\t\tCLEO Redux by Seemann', 95 | 'About3': '\t\tImGui support by Grinch', 96 | 'Help': 'Thanks for help to:', 97 | 'Help1': '\t\tSeemann, Bloodriver', 98 | 'WindowControl': 'Window control', 99 | 'WinCtrl1': 'Hold ~ and press:', 100 | 'WinCtrl2': '\t\tHome - reset window', 101 | 'WinCtrl3': '\t\tEnd - fill screen', 102 | 'WinCtrl4': '\t\tArrow buttons - snap to sides/corners' 103 | } 104 | }; -------------------------------------------------------------------------------- /CLEO Redux/GTA SA/readMe.md: -------------------------------------------------------------------------------- 1 | # Script (GTA: San Andreas; CLEO Redux) 2 | ## ENGLISH 3 | * **Author**: Vital (Vitaly Pavlovich Ulyanov). 4 | * **Thanks for help to**: . 5 | * **Description**: . 6 | * **Requirements**: CLEO Redux v1.3.3 + CLEO 5.0.2 or newer. 7 | * **Installation**: Put `mod` in your `GTA San Andreas\CLEO` directory. 8 | 9 | --- 10 | 11 | ## РУССКИЙ 12 | * **Автор**: Vital (Виталий Павлович Ульянов). 13 | * **Благодарю за помощь**: . 14 | * **Описание**: . 15 | * **Требования**: CLEO Redux v1.3.3 + CLEO 5.0.2 или новее. 16 | * **Установка**: Поместите `mod` в каталог `GTA San Andreas\CLEO`. -------------------------------------------------------------------------------- /CLEO Redux/cleo_redux_1.3.3.x64.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/CLEO Redux/cleo_redux_1.3.3.x64.zip -------------------------------------------------------------------------------- /CLEO Redux/cleo_redux_1.3.3.x86.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/CLEO Redux/cleo_redux_1.3.3.x86.zip -------------------------------------------------------------------------------- /CLEO Redux/cleo_redux_setup.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/CLEO Redux/cleo_redux_setup.exe -------------------------------------------------------------------------------- /GTA3script/Editor settings/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Improvements for GTA3script extension (Visual Studio Code) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: some fixes for GTA3script extension 5 | * Installation: copy (file -> folder) 6 | 1. __settings.json__ -> C:\Users\[User name]\AppData\Roaming\Code\User 7 | 2. __gta3script.json__ -> C:\Users\[User name]\AppData\Roaming\Code\User\snippets 8 | 3. __config\…__ -> GTA3script compiler folder 9 | 10 | ## РУССКИЙ 11 | * Автор: Vital 12 | * Описание: некоторые правки для расширения GTA3script для Visual Studio Code 13 | * Установка: скопируйте (файл -> папка) 14 | 1. __settings.json__ -> C:\Users\[User name]\AppData\Roaming\Code\User 15 | 2. __gta3script.json__ -> C:\Users\[User name]\AppData\Roaming\Code\User\snippets 16 | 3. __config\…__ -> GTA3script compiler folder -------------------------------------------------------------------------------- /GTA3script/Editor settings/gta3script.json: -------------------------------------------------------------------------------- 1 | { 2 | // Place your snippets for gta3script here. Each snippet is defined under a snippet name and has a prefix, body and 3 | // description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are: 4 | // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the 5 | // same ids are connected. 6 | // Example: 7 | // "Print to console": { 8 | // "prefix": "log", 9 | // "body": [ 10 | // "console.log('$1');", 11 | // "$2" 12 | // ], 13 | // "description": "Log output to console" 14 | // } 15 | 16 | "CLEO Script Start": { 17 | "prefix": "cleostart", 18 | "body": "SCRIPT_START", 19 | "description": "CLEO script start command" 20 | }, 21 | 22 | "CLEO Script End": { 23 | "prefix": "cleoend", 24 | "body": "SCRIPT_END", 25 | "description": "CLEO script end command" 26 | }, 27 | 28 | "Mission Start": { 29 | "prefix": "missionstart", 30 | "body": "MISSION_START", 31 | "description": "Mission start command" 32 | }, 33 | 34 | "Mission End": { 35 | "prefix": "missionend", 36 | "body": "MISSION_END", 37 | "description": "Mission end command" 38 | }, 39 | 40 | "AND": { 41 | "prefix": "and", 42 | "body": "AND ", 43 | "description": "'And' for conditions" 44 | }, 45 | 46 | "NOT": { 47 | "prefix": "not", 48 | "body": "NOT ", 49 | "description": "'Not' for conditions" 50 | }, 51 | 52 | "OR": { 53 | "prefix": "or", 54 | "body": "OR ", 55 | "description": "'Or' for conditions" 56 | }, 57 | 58 | "Local Text Label Type": { 59 | "prefix": "lvartextlabel", 60 | "body": "LVAR_TEXT_LABEL ", 61 | "description": "Local Text Label declaration" 62 | }, 63 | 64 | "TimerA": { 65 | "prefix": "timera", 66 | "body": "TIMERA ", 67 | "description": "Automatic timer A" 68 | }, 69 | 70 | "TimerB": { 71 | "prefix": "timerb", 72 | "body": "TIMERB ", 73 | "description": "Automatic timer B" 74 | }, 75 | 76 | "ConstantINT": { 77 | "prefix": "constint", 78 | "body": "CONST_INT ", 79 | "description": "Integer type constant" 80 | }, 81 | 82 | "ConstantFLOAT": { 83 | "prefix": "constfloat", 84 | "body": "CONST_FLOAT ", 85 | "description": "Float type constant" 86 | }, 87 | 88 | "IfThenElseEnd": { 89 | "prefix": "fullif", 90 | "body": ["IF ", 91 | "", 92 | "ELSE", 93 | "", 94 | "ENDIF"], 95 | "description": "If…then…else…end construction" 96 | }, 97 | 98 | "CLEO Template": { 99 | "prefix": "cleotemplate", 100 | "body": ["//Made by Vital", 101 | "SCRIPT_START", 102 | "SCRIPT_NAME $1", 103 | "", 104 | "{", 105 | " LVAR_INT player_actor", 106 | " GET_PLAYER_CHAR 0 player_actor", 107 | "", 108 | " main_loop:", 109 | " WAIT 0", 110 | "", 111 | " IF IS_PLAYER_PLAYING 0", 112 | " $2", 113 | " ENDIF", 114 | "", 115 | " GOTO main_loop", 116 | "}", 117 | "", 118 | "SCRIPT_END" 119 | ], 120 | "description": "A template of CLEO script" 121 | } 122 | } -------------------------------------------------------------------------------- /GTA3script/Editor settings/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "window.zoomLevel": 2, 3 | "files.autoSave": "afterDelay", 4 | "files.autoSaveDelay": 120000, 5 | "editor.cursorStyle": "line", 6 | "telemetry.enableTelemetry": false, 7 | 8 | "gta3script.compiler": "D:/Games/gta3sc compiler/gta3sc.exe", 9 | "gta3script.gamebin": { 10 | "gta3": ["D:/Games/GTA III/gta3.exe"], 11 | "gtavc": ["D:/Games/GTA VC/gta-vc.exe"], 12 | "gtasa": ["D:/Games/GTA SA/gta_sa.exe"] 13 | }, 14 | "gta3script.buildflags": { 15 | "gta3": [ 16 | "-fcleo", 17 | "-fconst", 18 | "--guesser", 19 | "--cs" 20 | ], 21 | "gtavc": [ 22 | "-fconst", 23 | "--guesser", 24 | "--cs" 25 | ], 26 | "gtasa": [ 27 | "--guesser", 28 | "--cs", 29 | "-fno-entity-tracking" 30 | ] 31 | }, 32 | "gta3script.config": "gtasa", 33 | "breadcrumbs.enabled": true, 34 | "editor.renderControlCharacters": false, 35 | "editor.renderWhitespace": "none", 36 | "editor.minimap.enabled": true, 37 | "[gta3script]": {}, 38 | "workbench.colorTheme": "Monokai Dimmed", 39 | 40 | "editor.tokenColorCustomizations": { 41 | "[Monokai Dimmed]": { 42 | "textMateRules": [ 43 | { 44 | "scope": "source.gta3script", 45 | "settings": { 46 | "foreground": "#7dc270" 47 | } 48 | }, 49 | 50 | { 51 | "scope": "keyword.other.command.gta3script", 52 | "settings": { 53 | "foreground": "#7e6f6f" 54 | } 55 | }, 56 | 57 | { 58 | "scope": "keyword.other.contro.gta3script", 59 | "settings": { 60 | "foreground": "#a6a883", 61 | "fontStyle": "bold" 62 | } 63 | }, 64 | 65 | { 66 | "scope": "keyword.other.operato.andornot.gta3script", 67 | "settings": { 68 | "foreground": "#797958", 69 | "fontStyle": "bold" 70 | } 71 | }, 72 | 73 | { 74 | "scope": "constant.numeric.gta3script", 75 | "settings": { 76 | "foreground": "#37b9ec", 77 | "fontStyle": "underline" 78 | } 79 | }, 80 | 81 | { 82 | "scope": "constant.language.gta3script", 83 | "settings": { 84 | "foreground": "#bb1616", 85 | "fontStyle": "bold" 86 | } 87 | }, 88 | 89 | { 90 | "scope": "comment.line.double-slash.gta3script", 91 | "settings": { 92 | "foreground": "#bebebe", 93 | "fontStyle": "italic" 94 | } 95 | }, 96 | ], 97 | }, 98 | }, 99 | } -------------------------------------------------------------------------------- /GTA3script/GTA III [1.1]/Grenade to car bomb/CarGrenade_III.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/GTA3script/GTA III [1.1]/Grenade to car bomb/CarGrenade_III.cs -------------------------------------------------------------------------------- /GTA3script/GTA III [1.1]/Grenade to car bomb/CarGrenade_III.sc: -------------------------------------------------------------------------------- 1 | //Made by Vital 2 | SCRIPT_START 3 | SCRIPT_NAME CARGREN 4 | 5 | { 6 | LVAR_INT ammo car 7 | 8 | main_loop: 9 | WAIT 0 10 | 11 | IF IS_PLAYER_PLAYING 0 12 | IF IS_PLAYER_IN_ANY_CAR 0 13 | AND IS_BUTTON_PRESSED PAD1 CIRCLE 14 | AND NOT IS_BUTTON_PRESSED PAD1 LEFTSHOULDER2 15 | AND NOT IS_BUTTON_PRESSED PAD1 RIGHTSHOULDER2 16 | IF NOT IS_PLAYER_IN_MODEL 0 CAR_RHINO 17 | AND NOT IS_PLAYER_IN_MODEL 0 CAR_FIRETRUCK 18 | AND NOT IS_PLAYER_IN_MODEL 0 CAR_RCBANDIT 19 | AND NOT IS_PLAYER_IN_MODEL 0 BOAT_PREDATOR 20 | GET_AMMO_IN_PLAYER_WEAPON 0 WEAPONTYPE_GRENADE ammo 21 | STORE_CAR_PLAYER_IS_IN_NO_SAVE 0 car 22 | IF IS_INT_LVAR_GREATER_THAN_NUMBER ammo 0 23 | AND NOT IS_CAR_ARMED_WITH_ANY_BOMB car 24 | ammo -- 25 | SET_PLAYER_AMMO 0 WEAPONTYPE_GRENADE ammo 26 | ARM_CAR_WITH_BOMB car CARBOMB_TIMED 27 | WAIT 0 28 | IF NOT IS_CAR_DEAD car 29 | ARM_CAR_WITH_BOMB car CARBOMB_TIMEDACTIVE 30 | ENDIF 31 | ENDIF 32 | ENDIF 33 | ENDIF 34 | ENDIF 35 | 36 | GOTO main_loop 37 | } 38 | 39 | SCRIPT_END -------------------------------------------------------------------------------- /GTA3script/GTA III [1.1]/Grenade to car bomb/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Grenade to car bomb (CLEO; GTA III) 2 | 3 | ## ENGLISH 4 | * Author: Vital 5 | * Description: now you can use one of your grenades to turn it into a timed car bomb. Press “Fire” button while sitting in a car* and not looking left or right to arm the self-made bomb. 6 | 7 | \* Exceptions: Rhino, RC Bandit, firetruck, Predator. 8 | 9 | ## РУССКИЙ 10 | * Автор: Vital 11 | * Описание: отныне игрок может использовать гранату в качестве автомобильной бомбы с таймером. Чтобы активировать её, нажмите кнопку «Огонь», сидя в транспорте* и не смотря по сторонам. 12 | 13 | \* Исключения: танк Rhino, РУ машинка Bandit, пожарная машина, катер Predator. -------------------------------------------------------------------------------- /GTA3script/GTA III [1.1]/Walking/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Walking/Ходьба (GTA 3) 2 | ## ENGLISH 3 | 4 | * Author: Vital 5 | * Description: Press Left Alt to toggle walking/running. 6 | ## РУССКИЙ 7 | 8 | * Автор: Vital 9 | * Описание: Нажмите левый Alt для переключения между ходьбой и бегом. -------------------------------------------------------------------------------- /GTA3script/GTA III [1.1]/Walking/Walking_III.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/GTA3script/GTA III [1.1]/Walking/Walking_III.cs -------------------------------------------------------------------------------- /GTA3script/GTA III [1.1]/Walking/Walking_III.sc: -------------------------------------------------------------------------------- 1 | //Made by Vital 2 | SCRIPT_START 3 | SCRIPT_NAME WALKING 4 | 5 | { 6 | LVAR_INT button 7 | 8 | main_loop: 9 | WAIT 0 10 | 11 | IF IS_PLAYER_PLAYING 0 12 | AND IS_PLAYER_ON_FOOT 0 13 | AND CAN_PLAYER_START_MISSION 0 14 | AND IS_KEY_PRESSED VK_LMENU // Left Alt 15 | WHILE IS_KEY_PRESSED VK_LMENU 16 | WAIT 0 17 | ENDWHILE 18 | 19 | WHILE NOT IS_KEY_PRESSED VK_LMENU // Walking turned ON 20 | button = 8 // 8 - forward, 9 - backward, 10 - left, 11 - right 21 | 22 | WHILE NOT IS_INT_LVAR_GREATER_THAN_NUMBER button 11 23 | IF IS_PLAYER_ON_FOOT 0 24 | AND CAN_PLAYER_START_MISSION 0 25 | IF IS_BUTTON_PRESSED_WITH_SENSITIVITY button 255 26 | AND NOT IS_BUTTON_PRESSED PAD1 CROSS 27 | EMULATE_BUTTON_PRESS_WITH_SENSITIVITY button 128 28 | ENDIF 29 | ENDIF 30 | button ++ 31 | ENDWHILE 32 | 33 | WAIT 0 34 | ENDWHILE // Walking turned ON 35 | 36 | WHILE IS_KEY_PRESSED VK_LMENU 37 | WAIT 0 38 | ENDWHILE 39 | ENDIF 40 | 41 | GOTO main_loop 42 | } 43 | 44 | SCRIPT_END -------------------------------------------------------------------------------- /GTA3script/GTA SA/Game speed changer/GameSpeed_SA.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/GTA3script/GTA SA/Game speed changer/GameSpeed_SA.cs -------------------------------------------------------------------------------- /GTA3script/GTA SA/Game speed changer/GameSpeed_SA.sc: -------------------------------------------------------------------------------- 1 | //Made by Vital 2 | SCRIPT_START 3 | SCRIPT_NAME GAMESPD 4 | 5 | { 6 | main_loop: 7 | WAIT 0 8 | 9 | IF IS_PLAYER_PLAYING 0 10 | 11 | IF IS_KEY_PRESSED (VK_OEM_PLUS) 12 | CLEO_CALL game_speed_change (0) 187 0.1 13 | ELSE 14 | IF IS_KEY_PRESSED (VK_OEM_MINUS) 15 | CLEO_CALL game_speed_change (0) 189 -0.1 16 | ELSE 17 | IF IS_KEY_PRESSED (VK_BACK) 18 | WRITE_MEMORY 0xB7CB64 4 1.0 0 //restore default (1.0) 19 | CLEAR_SMALL_PRINTS 20 | PRINT_HELP_STRING "Default game speed" 21 | 22 | WHILE IS_KEY_PRESSED (VK_BACK) 23 | WAIT 0 24 | ENDWHILE 25 | 26 | ENDIF 27 | ENDIF 28 | ENDIF 29 | 30 | ENDIF 31 | 32 | GOTO main_loop 33 | } 34 | 35 | { 36 | LVAR_INT key 37 | LVAR_FLOAT change_value speed 38 | 39 | game_speed_change: 40 | READ_MEMORY 0xB7CB64 4 0 speed 41 | speed += change_value 42 | WRITE_MEMORY 0xB7CB64 4 speed 0 43 | PRINT_FORMATTED "Game speed: %.1f" 2500 speed 44 | TIMERA = 0 45 | 46 | WHILE IS_KEY_PRESSED key 47 | AND TIMERA < 249 48 | WAIT 0 49 | ENDWHILE 50 | 51 | CLEO_RETURN 0 52 | } 53 | 54 | SCRIPT_END -------------------------------------------------------------------------------- /GTA3script/GTA SA/Game speed changer/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Game speed changer (GTA San Andreas) 2 | ## ENGLISH 3 | 4 | * Author: Vital 5 | * Description: Press or hold “-” or “+” to change the game speed, press “Backspace” to reset it. 6 | ## РУССКИЙ 7 | 8 | * Автор: Vital 9 | * Описание: Нажимайте или удерживайте “-” или “+” для изменения скорости игры, нажмите “Backspace” для сброса. -------------------------------------------------------------------------------- /GTA3script/GTA SA/Mouse steering fix/MouseSteeringFix_SA.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/GTA3script/GTA SA/Mouse steering fix/MouseSteeringFix_SA.cs -------------------------------------------------------------------------------- /GTA3script/GTA SA/Mouse steering fix/MouseSteeringFix_SA.sc: -------------------------------------------------------------------------------- 1 | //Made by Vital 2 | SCRIPT_START 3 | SCRIPT_NAME MOUSCTR 4 | 5 | { 6 | LVAR_INT player_actor mouse_look invert_y 7 | LVAR_FLOAT mouse_x mouse_y 8 | 9 | // Memory addresses 10 | CONST_INT STEER_WITH_MOUSE, 0xC1CC02 11 | CONST_INT FLY_WITH_MOUSE, 0xC1CC03 12 | CONST_INT BUTTON_ADDRESS, 0xB73458 13 | CONST_INT NORMAL_MOUSE_Y, 0xBA6745 14 | 15 | GET_PLAYER_CHAR 0 player_actor 16 | 17 | main_loop: 18 | WAIT 0 19 | 20 | IF IS_PLAYER_PLAYING 0 21 | IF IS_CHAR_IN_ANY_CAR player_actor 22 | mouse_look = BUTTON_ADDRESS 23 | mouse_look += 0x2C 24 | READ_MEMORY mouse_look 2 0 mouse_look 25 | 26 | // Invert Y axis for some types of transport 27 | IF IS_INT_LVAR_EQUAL_TO_NUMBER mouse_look 0 28 | WRITE_MEMORY NORMAL_MOUSE_Y 1 0 0 29 | ELSE 30 | WRITE_MEMORY NORMAL_MOUSE_Y 1 1 0 31 | ENDIF 32 | 33 | // Mouse driving & flying 34 | IF IS_INT_LVAR_EQUAL_TO_NUMBER mouse_look 0 35 | IF NOT IS_CHAR_IN_FLYING_VEHICLE player_actor 36 | // Steering 37 | GET_PC_MOUSE_MOVEMENT mouse_x mouse_y 38 | IF NOT IS_FLOAT_LVAR_EQUAL_TO_NUMBER mouse_x .0 39 | OR NOT IS_FLOAT_LVAR_EQUAL_TO_NUMBER mouse_y .0 40 | WRITE_MEMORY STEER_WITH_MOUSE 1 1 0 41 | ELSE 42 | WRITE_MEMORY STEER_WITH_MOUSE 1 0 0 43 | ENDIF 44 | ELSE 45 | // Flying 46 | GET_PC_MOUSE_MOVEMENT mouse_x mouse_y 47 | IF NOT IS_FLOAT_LVAR_EQUAL_TO_NUMBER mouse_x .0 48 | OR NOT IS_FLOAT_LVAR_EQUAL_TO_NUMBER mouse_y .0 49 | OR IS_CHAR_IN_ANY_HELI player_actor 50 | WRITE_MEMORY FLY_WITH_MOUSE 1 1 0 51 | ELSE 52 | WRITE_MEMORY FLY_WITH_MOUSE 1 0 0 53 | ENDIF 54 | ENDIF 55 | ENDIF 56 | ELSE 57 | // Disable mouse Y inverting on foot 58 | READ_MEMORY NORMAL_MOUSE_Y 1 0 invert_y 59 | IF NOT IS_INT_LVAR_EQUAL_TO_NUMBER invert_y 1 60 | WRITE_MEMORY NORMAL_MOUSE_Y 1 1 0 61 | ENDIF 62 | ENDIF 63 | ENDIF 64 | 65 | GOTO main_loop 66 | } 67 | 68 | SCRIPT_END -------------------------------------------------------------------------------- /GTA3script/GTA SA/Mouse steering fix/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Mouse steering fix (GTA San Andreas) 2 | ## ENGLISH 3 | 4 | * Author: Vital 5 | * Description: Just a small alternative mouse steering for GTA SA. It works all the time the script is active, fixes the original's bug (the vehicle no longer steers if you don't move the mouse), and remembers last mouse offset for helicopters to make flying easier. 6 | ## РУССКИЙ 7 | 8 | * Автор: Vital 9 | * Описание: Просто альтернативный вариант управления транспортом с помощью мыши для GTA SA. Работает всегда, пока скрипт активен, чинит баг оригинальной версии (теперь транспорт поворачивает только тогда, когда Вы перемещаете мышь) и упрощает полёт на вертолётах, запоминая последнее смещение мыши. -------------------------------------------------------------------------------- /GTA3script/GTA VC/Climb (High jump)/Climb_VC.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/GTA3script/GTA VC/Climb (High jump)/Climb_VC.cs -------------------------------------------------------------------------------- /GTA3script/GTA VC/Climb (High jump)/Climb_VC.sc: -------------------------------------------------------------------------------- 1 | //Made by Vital 2 | SCRIPT_START 3 | SCRIPT_NAME CLIMB 4 | 5 | { 6 | LVAR_INT player_actor player_struct player_status 7 | LVAR_FLOAT velocity_z 8 | GET_PLAYER_CHAR 0 player_actor 9 | 10 | main_loop: 11 | WAIT 0 12 | 13 | IF IS_PLAYER_PLAYING 0 14 | AND IS_PLAYER_ON_FOOT 0 15 | GET_PED_POINTER player_actor player_struct 16 | player_struct += 0x244 17 | READ_MEMORY player_struct 4 0 player_status 18 | IF IS_INT_LVAR_EQUAL_TO_NUMBER player_status 0x29 // jumping 19 | AND IS_BUTTON_PRESSED PAD1 SQUARE // jump 20 | IF NOT IS_INT_LVAR_GREATER_THAN_NUMBER TIMERA 750 21 | GET_PED_POINTER player_actor player_struct 22 | player_struct += 0x078 // start at 0x070, skip to Z 23 | 24 | READ_MEMORY player_struct 4 0 velocity_z 25 | IF IS_FLOAT_LVAR_GREATER_THAN_NUMBER velocity_z 0.0 26 | AND NOT IS_FLOAT_LVAR_GREATER_THAN_NUMBER velocity_z 0.5 27 | ADD_TIMED_VAL_TO_FLOAT_LVAR velocity_z 0.0055 28 | WRITE_MEMORY player_struct 4 velocity_z 0 29 | //PRINT_FORMATTED_NOW "Holding jump for %i ms" 500 TIMERA 30 | ENDIF 31 | ENDIF 32 | ELSE 33 | IF NOT IS_BUTTON_PRESSED PAD1 SQUARE 34 | TIMERA = 0 35 | ENDIF 36 | ENDIF 37 | ENDIF 38 | 39 | GOTO main_loop 40 | } 41 | 42 | SCRIPT_END -------------------------------------------------------------------------------- /GTA3script/GTA VC/Climb (High jump)/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Climb/High jump (CLEO; GTA Vice City) 2 | 3 | ## ENGLISH 4 | * Author: Vital 5 | * Description: Hold jump button while jumping to get a little higher. The script is intended to compensate for the lack of climbing in the game. 6 | 7 | ## РУССКИЙ 8 | * Автор: Vital 9 | * Описание: во время прыжка удерживайте клавишу прыжка, чтобы прыгнуть немного выше. Скрипт призван возместить отсутствие в игре возможности карабкаться. -------------------------------------------------------------------------------- /GTA3script/GTA VC/Fiery explosions/FireExplosion_VC.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/GTA3script/GTA VC/Fiery explosions/FireExplosion_VC.cs -------------------------------------------------------------------------------- /GTA3script/GTA VC/Fiery explosions/FireExplosion_VC.sc: -------------------------------------------------------------------------------- 1 | //Made by Vital 2 | SCRIPT_START 3 | SCRIPT_NAME FIREEXP 4 | 5 | { 6 | LVAR_INT current_address address_copy explosion_counter explosion_type 7 | LVAR_FLOAT x y z ground_z 8 | 9 | main_loop: 10 | WAIT 0 11 | 12 | IF IS_PLAYER_PLAYING 0 13 | current_address = 0x780C88 // Start of explosions array 14 | 15 | WHILE NOT IS_INT_LVAR_GREATER_THAN_NUMBER current_address 0x7816D0 // Array end 16 | READ_MEMORY current_address 4 0 explosion_type 17 | 18 | IF NOT IS_INT_LVAR_EQUAL_TO_NUMBER explosion_type 1 // Molotov 19 | AND NOT IS_INT_LVAR_EQUAL_TO_NUMBER explosion_type 0 // Grenade 20 | AND NOT IS_INT_LVAR_EQUAL_TO_NUMBER explosion_type 4 // Car quick 21 | AND NOT IS_INT_LVAR_EQUAL_TO_NUMBER explosion_type 5 // Boat 22 | AND NOT IS_INT_LVAR_EQUAL_TO_NUMBER explosion_type 8 // Mine 23 | AND NOT IS_INT_LVAR_EQUAL_TO_NUMBER explosion_type 9 // Barrel 24 | address_copy = current_address 25 | address_copy += 0x24 // Counter 26 | READ_MEMORY address_copy 1 0 explosion_counter 27 | 28 | IF IS_INT_LVAR_GREATER_THAN_NUMBER explosion_counter 0 29 | AND NOT IS_INT_LVAR_GREATER_THAN_NUMBER explosion_counter 1 30 | address_copy = current_address 31 | address_copy += 0x04 // Coordinates 32 | 33 | READ_MEMORY address_copy 4 0 x 34 | address_copy += 4 35 | READ_MEMORY address_copy 4 0 y 36 | address_copy += 4 37 | READ_MEMORY address_copy 4 0 z 38 | 39 | GET_GROUND_Z_FOR_3D_COORD x y z ground_z 40 | ground_z -= z 41 | ABS_LVAR_FLOAT ground_z 42 | 43 | IF NOT IS_FLOAT_LVAR_GREATER_THAN_NUMBER ground_z 3.0 44 | IF IS_PLAYER_IN_MODEL 0 RHINO 45 | AND LOCATE_PLAYER_ANY_MEANS_3D 0 x y z 35.0 35.0 35.0 FALSE 46 | ELSE 47 | ADD_EXPLOSION_NO_SOUND x y z EXPLOSION_MOLOTOV 48 | ENDIF 49 | ENDIF 50 | ENDIF 51 | ENDIF 52 | 53 | current_address += 0x38 // Size of one element 54 | ENDWHILE 55 | ENDIF 56 | 57 | GOTO main_loop 58 | } 59 | 60 | SCRIPT_END -------------------------------------------------------------------------------- /GTA3script/GTA VC/Fiery explosions/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Fiery explosions (CLEO; GTA Vice City) 2 | 3 | ## ENGLISH 4 | * Author: Vital 5 | * Description: the script adds fire to some of the explosions, making them more spectacular and dangerous. 6 | 7 | ## РУССКИЙ 8 | * Автор: Vital 9 | * Описание: теперь некоторые взрывы сопровождаются огнём, становясь опаснее и зрелищнее. -------------------------------------------------------------------------------- /GTA3script/GTA VC/Fire propagation/FirePropagation_VC.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/GTA3script/GTA VC/Fire propagation/FirePropagation_VC.cs -------------------------------------------------------------------------------- /GTA3script/GTA VC/Fire propagation/FirePropagation_VC.sc: -------------------------------------------------------------------------------- 1 | //Made by Vital 2 | SCRIPT_START 3 | SCRIPT_NAME FIRPROP 4 | 5 | { 6 | LVAR_INT current_address address_copy explosion_counter explosion_type propagation_chance player_actor 7 | LVAR_FLOAT x y z ground_z x_r y_r 8 | 9 | GET_PLAYER_CHAR 0 player_actor 10 | 11 | main_loop: 12 | WAIT 0 13 | 14 | IF IS_PLAYER_PLAYING 0 15 | current_address = 0x780C88 // Start of explosions array 16 | 17 | WHILE NOT IS_INT_LVAR_GREATER_THAN_NUMBER current_address 0x7816D0 // Array end 18 | READ_MEMORY current_address 4 0 explosion_type 19 | 20 | // Flamethrower fire 21 | IF IS_CURRENT_PLAYER_WEAPON 0 WEAPONTYPE_FLAMETHROWER 22 | AND IS_PLAYER_SHOOTING 0 23 | IF IS_INT_LVAR_GREATER_THAN_NUMBER TIMERA 699 24 | TIMERA = 0 25 | GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS player_actor .0 9.0 .0 x y z 26 | IF CLEO_CALL check_z (0) x y z 9.0 27 | GET_GROUND_Z_FOR_3D_COORD x y z ground_z 28 | ADD_EXPLOSION_NO_SOUND x y ground_z EXPLOSION_MOLOTOV 29 | ENDIF 30 | ENDIF 31 | ELSE 32 | IF IS_INT_LVAR_GREATER_THAN_NUMBER TIMERA 0 33 | TIMERA -- 34 | ENDIF 35 | ENDIF // Flamethrower fire 36 | 37 | // Fire propagation 38 | IF IS_INT_LVAR_EQUAL_TO_NUMBER explosion_type 1 // Molotov 39 | GENERATE_RANDOM_INT_IN_RANGE 0 5 propagation_chance 40 | IF IS_INT_LVAR_EQUAL_TO_NUMBER propagation_chance 0 41 | address_copy = current_address 42 | address_copy += 0x24 // Counter 43 | READ_MEMORY address_copy 1 0 explosion_counter 44 | 45 | IF IS_INT_LVAR_GREATER_THAN_NUMBER explosion_counter 76 46 | AND NOT IS_INT_LVAR_GREATER_THAN_NUMBER explosion_counter 80 47 | address_copy = current_address 48 | address_copy += 0x04 // Coordinates 49 | 50 | READ_MEMORY address_copy 4 0 x 51 | address_copy += 4 52 | READ_MEMORY address_copy 4 0 y 53 | address_copy += 4 54 | READ_MEMORY address_copy 4 0 z 55 | 56 | GENERATE_RANDOM_FLOAT_IN_RANGE -5.0 5.0 x_r 57 | GENERATE_RANDOM_FLOAT_IN_RANGE -5.0 5.0 y_r 58 | ADD_FLOAT_LVAR_TO_FLOAT_LVAR x x_r 59 | ADD_FLOAT_LVAR_TO_FLOAT_LVAR y y_r 60 | 61 | IF CLEO_CALL check_z (0) x y z 5.0 62 | GET_GROUND_Z_FOR_3D_COORD x y z ground_z 63 | ADD_EXPLOSION_NO_SOUND x y ground_z EXPLOSION_MOLOTOV 64 | ENDIF 65 | ENDIF 66 | ENDIF 67 | ENDIF // Fire propagation 68 | 69 | current_address += 0x38 // Size of one element 70 | ENDWHILE 71 | ENDIF 72 | 73 | GOTO main_loop 74 | } 75 | 76 | { 77 | LVAR_FLOAT x y z max 78 | LVAR_FLOAT ground_z 79 | 80 | check_z: 81 | GET_GROUND_Z_FOR_3D_COORD x y z ground_z 82 | ground_z -= z 83 | ABS_LVAR_FLOAT ground_z 84 | IF NOT IS_FLOAT_LVAR_GREATER_THAN_FLOAT_LVAR ground_z max 85 | ENDIF 86 | CLEO_RETURN (0) 87 | } 88 | 89 | SCRIPT_END -------------------------------------------------------------------------------- /GTA3script/GTA VC/Fire propagation/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Fire propagation (CLEO; GTA Vice City) 2 | 3 | ## ENGLISH 4 | * Author: Vital 5 | * Description: the script gives fiery explosions' flames (like from Molotov cocktails) a chance to propagate. Also, the flamethrower will now generate a similar explosion if fired continuously. 6 | 7 | ## РУССКИЙ 8 | * Автор: Vital 9 | * Описание: теперь пламя от огненных взрывов (например, от «коктейля Молотова») с некоторой вероятностью будет распространяться. Кроме того, огнемёт при удержании кнопки стрельбы будет также создавать такое пламя. -------------------------------------------------------------------------------- /GTA3script/GTA VC/Mouse steering/MouseControl_VC.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/GTA3script/GTA VC/Mouse steering/MouseControl_VC.cs -------------------------------------------------------------------------------- /GTA3script/GTA VC/Mouse steering/MouseControl_VC.sc: -------------------------------------------------------------------------------- 1 | //Made by Vital 2 | SCRIPT_START 3 | SCRIPT_NAME MOUSCTR 4 | 5 | { 6 | LVAR_FLOAT mouse_x mouse_y 7 | LVAR_INT int_mouse_x int_mouse_y maximum_x maximum_y 8 | LVAR_INT rmb_flag wheel_up wheel_down 9 | 10 | main_loop: 11 | WAIT 0 12 | 13 | IF IS_PLAYER_PLAYING 0 14 | AND IS_PLAYER_IN_ANY_CAR 0 15 | // Working with X axis 16 | READ_MEMORY 0x936910 4 0 mouse_x 17 | 18 | IF IS_FLOAT_LVAR_GREATER_THAN_NUMBER mouse_x 10.0 19 | OR NOT IS_FLOAT_LVAR_GREATER_THAN_NUMBER mouse_x -10.0 20 | IF IS_PLAYER_IN_ANY_HELI 0 21 | AND NOT IS_FLOAT_LVAR_GREATER_THAN_NUMBER mouse_x 20.0 22 | AND IS_FLOAT_LVAR_GREATER_THAN_NUMBER mouse_x -20.0 23 | mouse_x *= 0.5 24 | ELSE 25 | mouse_x *= 1.8 26 | ENDIF 27 | 28 | IF IS_FLOAT_LVAR_GREATER_THAN_NUMBER mouse_x 255.0 29 | mouse_x = 255.0 30 | ELSE 31 | IF NOT IS_FLOAT_LVAR_GREATER_THAN_NUMBER mouse_x -255.0 32 | mouse_x = -255.0 33 | ENDIF 34 | ENDIF 35 | CSET_LVAR_INT_TO_LVAR_FLOAT maximum_x mouse_x 36 | ENDIF 37 | 38 | // Working with Y axis 39 | READ_MEMORY 0x936914 4 0 mouse_y 40 | 41 | IF IS_FLOAT_LVAR_GREATER_THAN_NUMBER mouse_y 10.0 42 | OR NOT IS_FLOAT_LVAR_GREATER_THAN_NUMBER mouse_y -10.0 43 | IF IS_PLAYER_IN_ANY_HELI 0 44 | mouse_y *= -2.9 45 | ELSE 46 | mouse_y *= -2.5 47 | ENDIF 48 | 49 | IF IS_FLOAT_LVAR_GREATER_THAN_NUMBER mouse_y 255.0 50 | mouse_y = 255.0 51 | ELSE 52 | IF NOT IS_FLOAT_LVAR_GREATER_THAN_NUMBER mouse_y -255.0 53 | mouse_y = -255.0 54 | ENDIF 55 | ENDIF 56 | CSET_LVAR_INT_TO_LVAR_FLOAT maximum_y mouse_y 57 | ENDIF 58 | 59 | CSET_LVAR_INT_TO_LVAR_FLOAT int_mouse_x mouse_x 60 | CSET_LVAR_INT_TO_LVAR_FLOAT int_mouse_y mouse_y 61 | 62 | // Turn lock, helicopter controls, tank's and firetruck's aiming, Vodoo's jumping 63 | READ_MEMORY 0x936909 1 0 rmb_flag 64 | 65 | // Hold RMB or fly a helicopter to lock turning (like turning assist) 66 | IF NOT IS_INT_LVAR_EQUAL_TO_NUMBER rmb_flag 0 67 | OR IS_PLAYER_IN_ANY_HELI 0 68 | // No lock in firetruct and tank to prevent automatic cannon rotation 69 | IF NOT IS_PLAYER_IN_MODEL 0 RHINO 70 | AND NOT IS_PLAYER_IN_MODEL 0 FIRETRUK 71 | int_mouse_x = maximum_x 72 | int_mouse_y = maximum_y 73 | ENDIF 74 | ENDIF 75 | 76 | // Firetruck's cannon aiming or general mouse steering 77 | IF IS_INT_LVAR_EQUAL_TO_NUMBER rmb_flag 0 78 | IF IS_PLAYER_IN_MODEL 0 FIRETRUK 79 | AND IS_IN_CAR_FIRE_BUTTON_PRESSED 80 | int_mouse_y *= -1 81 | EMULATE_BUTTON_PRESS_WITH_SENSITIVITY RIGHTSTICKX int_mouse_x 82 | EMULATE_BUTTON_PRESS_WITH_SENSITIVITY RIGHTSTICKY int_mouse_y 83 | ELSE 84 | EMULATE_BUTTON_PRESS_WITH_SENSITIVITY LEFTSTICKX int_mouse_x 85 | EMULATE_BUTTON_PRESS_WITH_SENSITIVITY LEFTSTICKY int_mouse_y 86 | ENDIF 87 | ELSE // Tank's cannon aiming, Vodoo's jumping, helicopter Z-axis rotation 88 | IF IS_PLAYER_IN_MODEL 0 RHINO 89 | OR IS_PLAYER_IN_MODEL 0 VOODOO 90 | OR IS_PLAYER_IN_ANY_HELI 0 91 | int_mouse_y *= -1 92 | EMULATE_BUTTON_PRESS_WITH_SENSITIVITY RIGHTSTICKX int_mouse_x 93 | EMULATE_BUTTON_PRESS_WITH_SENSITIVITY RIGHTSTICKY int_mouse_y 94 | ELSE 95 | EMULATE_BUTTON_PRESS_WITH_SENSITIVITY LEFTSTICKX int_mouse_x 96 | EMULATE_BUTTON_PRESS_WITH_SENSITIVITY LEFTSTICKY int_mouse_y 97 | ENDIF 98 | ENDIF 99 | //PRINT_FORMATTED_NOW "X: %.2f - %i Y: %.2f - %i RMB: %i" 100 mouse_x maximum_x mouse_y maximum_y rmb_flag 100 | ENDIF 101 | 102 | GOTO main_loop 103 | } 104 | 105 | SCRIPT_END -------------------------------------------------------------------------------- /GTA3script/GTA VC/Mouse steering/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Mouse steering (GTA Vice City) 2 | ## ENGLISH 3 | 4 | __Author__: Vital 5 | 6 | __Description__: now game vehicles can be better controlled using the mouse. Apart from mouse steering itself, the script has some additional features: 7 | - firetruck's water cannon is now controlled with mouse too, making it easier to extinguish fires 8 | - helicopters keep flying in the direction you've applied last time so you don't have to constantly drag the mouse 9 | - hold right mouse button to: 10 | - apply last mouse offset to most vehicles (let's call it "autoturn") 11 | - apply last hydraulics state to Voodoo set by RMB + mouse dragging 12 | 13 | - hold right mouse button and move the mouse to: 14 | - adjust the autoturn 15 | - control Voodoo's hydraulics 16 | - rotate Rhino's cannon 17 | - turn left or right in helicopters 18 | 19 | ## РУССКИЙ 20 | 21 | __Автор__: Vital 22 | 23 | __Описание__: теперь управление транспортом с помощью мыши стало лучше и удобнее. Кроме того, добавлены новые возможности: 24 | - водомёт пожарной машины теперь тоже управляется мышью, благодаря чему тушить пожары стало проще 25 | - вертолёты продолжают лететь в указанном Вами направлении, чтобы не приходилось постоянно дёргать мышь 26 | - удерживайте правую клавишу мыши, чтобы: 27 | - применить последнее значение сдвига мыши (назовём это «автоповорот») 28 | - применить последнее значение гидравлики Voodoo, заданное ПКМ с движением мыши 29 | 30 | - удерживайте правую клавишу мыши и двигайте мышью, чтобы: 31 | - настроить автоповорот 32 | - управлять гидравликой Voodoo 33 | - поворачивать пушку танка Rhino 34 | - поворачивать влево и вправо в вертолётах -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GTA Scripts by Vital 2 | ### [📺YouTube](https://www.youtube.com/c/VitalRUS13/featured) | [💬Discord](https://discord.com/invite/saFJVhF) | [💾Telegram](https://t.me/vitalrus_channel) 3 | --- 4 | ## ENGLISH 5 | Script modifications for Grand Theft Auto 3, Vice City, and San Andreas made by Vital¹. 6 | 7 | Files extensions: 8 | * _Scripts_ 9 | * .cs — CLEO scripts 10 | * .cm — CLEO missions 11 | * .scm — SCM scripts and Mission Packs (MPACKs) 12 | * .js/.ts — CLEO Redux scripts 13 | * _Source codes_ (and the tool to edit it) 14 | * .txt — Sanny Builder 15 | * .sc — Visual Studio Code with GTA3script extension 16 | * .js/.ts — any text or source code editor like Visual Studio Code 17 | 18 | ¹Vital is a nickname of Vitaly Pavlovich Ulyanov (Russian: Виталий Павлович Ульянов) 19 | 20 | ## РУССКИЙ 21 | Скриптовые модификации для Grand Theft Auto 3, Vice City и San Andreas. Автор — Vital (Виталий Павлович Ульянов). 22 | 23 | Расширения файлов: 24 | * _Скрипты_ 25 | * .cs — скрипты на CLEO 26 | * .cm — миссии на CLEO 27 | * .scm — скрипты и Mission Pack’и (MPACK) на SCM 28 | * .js/.ts — скрипты на CLEO Redux 29 | * _Исходные коды_ (и где их редактировать) 30 | * .txt — Sanny Builder 31 | * .sc — Visual Studio Code с расширением GTA3script 32 | * .js/.ts — любой текстовый редактор или редактор исходного кода наподобие Visual Studio Code 33 | -------------------------------------------------------------------------------- /Sanny Builder/2nd player bot/Player2.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/2nd player bot/Player2.cs -------------------------------------------------------------------------------- /Sanny Builder/2nd player bot/Player2.txt: -------------------------------------------------------------------------------- 1 | {$CLEO} 2 | thread "P2" 3 | 4 | :P2 5 | wait 0 6 | if 7 | player.Defined(0) 8 | jf @P2 9 | if and 10 | not actor.Dead($PLAYER_ACTOR) 11 | not actor.Driving($PLAYER_ACTOR) 12 | 0ADC: test_cheat "PLAY" 13 | $ONMISSION == 0 14 | jf @P2 15 | 04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 0.0 3.0 1.0 16 | 02C0: store_to 1@ 2@ 3@ ped_path_coords_closest_to 1@ 2@ 3@ 17 | actor.Create(4@,15,0,1@,2@,3@) //Actor 18 | 077A: set_actor 4@ acquaintance 1 to_actors_pedtype 0 19 | 077A: set_actor 4@ acquaintance 4 to_actors_pedtype 7 20 | 077A: set_actor 4@ acquaintance 4 to_actors_pedtype 6 21 | 077A: set_actor 4@ acquaintance 1 to_actors_pedtype 8 22 | 0746: set_acquaintance 4 of_actors_pedtype 7 to_actors_pedtype 15 23 | 0746: set_acquaintance 1 of_actors_pedtype 8 to_actors_pedtype 15 24 | 081A: set_actor 4@ weapon_skill_to 2 25 | 01B9: set_actor 4@ armed_weapon_to 0 26 | actor.Health(4@) = 125 27 | actor.WeaponAccuracy(4@) = 87 28 | 0446: set_actor 4@ immune_to_headshots 0 29 | 060A: create_decision_maker_type 2 store_to 20@ //AI 30 | 0708: reset_decision_maker 20@ event 9 31 | 0709: set_decision_maker 20@ on_event 9 taskID 1000 respect 0.0 hate 100.0 like 0.0 dislike 100.0 in_car 0 on_foot 1 32 | 060B: set_actor 4@ decision_maker_to 20@ //AI_End 33 | marker.CreateAboveActor(7@,4@) //Marker 34 | marker.SetColor(7@,0x33FF00FF) 35 | jump @P2_2 36 | 37 | :P2_2 38 | wait 0 39 | if and 40 | 002D: 32@ >= 10@ // (int) 41 | not actor.Dead(4@) 42 | then 43 | if //If second player helped player 44 | 17@ == 1 45 | then 46 | 06C9: remove_actor 4@ from_group 47 | 0ACA: show_text_box "Second player leaves you" 48 | end 49 | 17@ = 0 50 | 048F: actor 4@ remove_weapons 51 | 0209: 5@ = random_int_in_ranges 2 10 //Weapon 1 52 | 0209: 6@ = random_int_in_ranges 22 39 //Weapon 2 53 | 0781: get_weapon_with_ID 5@ model_to 8@ 54 | 0781: get_weapon_with_ID 6@ model_to 9@ 55 | model.Load(8@) 56 | model.Load(9@) 57 | 038B: load_requested_models 58 | 01B2: give_actor 4@ weapon 5@ ammo 9999 59 | 01B2: give_actor 4@ weapon 6@ ammo 9999 60 | model.Destroy(8@) 61 | model.Destroy(9@) 62 | 0209: 8@ = random_int_in_ranges 0 6 63 | 01B9: set_actor 4@ armed_weapon_to 0 64 | 077B: clear_actor 4@ acquaintance 4 to_actors_pedtype 4 65 | 077B: clear_actor 4@ acquaintance 4 to_actors_pedtype 5 66 | 0871: init_jump_table 8@ total_jumps 6 default_jump 0 @P2_2 jumps 0 @KillAll 1 @Walk 2 @DesCar 3 @Wave 4 @Dance 5 @JoinPl -1 @P2_2 67 | else 68 | if 69 | actor.Dead(4@) 70 | then 71 | marker.Disable(7@) 72 | 065C: release_decision_maker 20@ 73 | actor.RemoveReferences(4@) 74 | jump @P2 75 | end 76 | end 77 | jump @P2_2 78 | 79 | :Waiting //Random waiting time 80 | 32@ = 0 81 | 10@ *= 20000 //20 sec 82 | return 83 | 84 | :KillAll 85 | wait 0 86 | 0209: 9@ = random_int_in_ranges 0 2 87 | if 88 | 9@ == 0 89 | then 90 | 01B9: set_actor 4@ armed_weapon_to 5@ 91 | else 92 | 01B9: set_actor 4@ armed_weapon_to 6@ 93 | end 94 | 077A: set_actor 4@ acquaintance 4 to_actors_pedtype 4 95 | 077A: set_actor 4@ acquaintance 4 to_actors_pedtype 5 96 | 05DE: AS_actor 4@ walk_around_ped_path 97 | 0209: 10@ = random_int_in_ranges 2 5 98 | gosub @Waiting 99 | jump @P2_2 100 | 101 | :Walk 102 | wait 0 103 | 05DE: AS_actor 4@ walk_around_ped_path 104 | 10@ = 1 105 | gosub @Waiting 106 | jump @P2_2 107 | 108 | :DesCar 109 | wait 0 110 | 04C4: store_coords_to 12@ 13@ 14@ from_actor 4@ with_offset 30.0 30.0 0.0 111 | 04C4: store_coords_to 15@ 16@ 14@ from_actor 4@ with_offset -30.0 -30.0 0.0 112 | 053E: 11@ = get_random_car_with_model -1 in_rectangle_cornerA 12@ 13@ cornerB 15@ 16@ 113 | if 114 | car.Defined(11@) 115 | then 116 | if 117 | not car.Wrecked(11@) 118 | then 119 | 01B9: set_actor 4@ armed_weapon_to 6@ 120 | 0672: AS_actor 4@ attack_car 11@ 121 | 10@ = 1 122 | gosub @Waiting 123 | end 124 | end 125 | wait 750 126 | car.RemoveReferences(11@) 127 | jump @P2_2 128 | 129 | :Wave 130 | wait 0 131 | if 132 | 00F2: actor 4@ near_actor $PLAYER_ACTOR radius 25.0 25.0 0 133 | then 134 | 0639: AS_actor 4@ rotate_to_actor $PLAYER_ACTOR 135 | 0605: actor 4@ perform_animation_sequence "endchat_03" IFP_file "PED" 4.0 loop 0 1 0 0 time -1 136 | end 137 | wait 2000 138 | jump @P2_2 139 | 140 | :Dance 141 | wait 0 142 | 04ED: load_animation "DANCING" 143 | repeat 144 | wait 0 145 | until 04EE: animation "DANCING" loaded 146 | 0605: actor 4@ perform_animation_sequence "dance_loop" IFP_file "DANCING" 4.0 loop 1 1 0 0 time 10000 147 | 04EF: release_animation "LOWRIDER" 148 | 32@ = 0 149 | 10@ = 10250 150 | jump @P2_2 151 | 152 | :JoinPl 153 | wait 0 154 | if 155 | 00F2: actor 4@ near_actor $PLAYER_ACTOR radius 25.0 25.0 0 156 | then 157 | 0ACA: show_text_box "Second player wants to help you" 158 | 01B9: set_actor 4@ armed_weapon_to 6@ 159 | 0631: put_actor 4@ in_group $PLAYER_GROUP 160 | 0209: 10@ = random_int_in_ranges 3 7 161 | 17@ = 1 162 | gosub @Waiting 163 | end 164 | jump @P2_2 -------------------------------------------------------------------------------- /Sanny Builder/2nd player bot/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Second player (bot) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: Type "PLAY" to activate. 5 | 6 | ## РУССКИЙ 7 | * Автор: Vital 8 | * Описание: введите чит "PLAY" для активации бота. -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/2018 - 09 - 08/MPACK/MPACK6/mpack.dat: -------------------------------------------------------------------------------- 1 | 6#Air# -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/2018 - 09 - 08/MPACK/MPACK6/scr.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Air & Land/Builds (Year - Month - Day)/2018 - 09 - 08/MPACK/MPACK6/scr.scm -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/2018 - 09 - 08/MPACK/MPACK6/scr.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Air & Land/Builds (Year - Month - Day)/2018 - 09 - 08/MPACK/MPACK6/scr.txt -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/2018 - 09 - 08/MPACK/MPACK6/text.gxt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Air & Land/Builds (Year - Month - Day)/2018 - 09 - 08/MPACK/MPACK6/text.gxt -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/2019 - 06 - 30/MPACK/MPACK6/mpack.dat: -------------------------------------------------------------------------------- 1 | 6#Air & Land# -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/2019 - 06 - 30/MPACK/MPACK6/scr.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Air & Land/Builds (Year - Month - Day)/2019 - 06 - 30/MPACK/MPACK6/scr.scm -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/2019 - 06 - 30/MPACK/MPACK6/scr.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Air & Land/Builds (Year - Month - Day)/2019 - 06 - 30/MPACK/MPACK6/scr.txt -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/2019 - 06 - 30/MPACK/MPACK6/text.gxt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Air & Land/Builds (Year - Month - Day)/2019 - 06 - 30/MPACK/MPACK6/text.gxt -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/2020 - 07 - 10/MPACK/MPACK6/mpack.dat: -------------------------------------------------------------------------------- 1 | 6#Air & Land# -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/2020 - 07 - 10/MPACK/MPACK6/scr.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Air & Land/Builds (Year - Month - Day)/2020 - 07 - 10/MPACK/MPACK6/scr.scm -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/2020 - 07 - 10/MPACK/MPACK6/scr.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Air & Land/Builds (Year - Month - Day)/2020 - 07 - 10/MPACK/MPACK6/scr.txt -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/2020 - 07 - 10/MPACK/MPACK6/text.gxt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Air & Land/Builds (Year - Month - Day)/2020 - 07 - 10/MPACK/MPACK6/text.gxt -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/TEST BUILD/MPACK/MPACK6/mpack.dat: -------------------------------------------------------------------------------- 1 | 6#Air & Land# -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/TEST BUILD/MPACK/MPACK6/scr.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Air & Land/Builds (Year - Month - Day)/TEST BUILD/MPACK/MPACK6/scr.scm -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/TEST BUILD/MPACK/MPACK6/scr.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Air & Land/Builds (Year - Month - Day)/TEST BUILD/MPACK/MPACK6/scr.txt -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/TEST BUILD/MPACK/MPACK6/text.gxt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Air & Land/Builds (Year - Month - Day)/TEST BUILD/MPACK/MPACK6/text.gxt -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/changelog EN.md: -------------------------------------------------------------------------------- 1 | # GTA San Andreas: Air & Land 2 | __Version (build) history__ 3 | 4 | 5 | >8 September 2018: 6 | * 15 hostile planes 7 | * built-in menu and help 8 | * bonuses 9 | * mutators 10 | * new visual effects 11 | * two languages: English & Russian 12 | * mod settings automatically save in an external file 13 | * one demo-mission 14 | * dynamic difficulty system 15 | * other minor fixes 16 | 17 | 18 | >30 June 2019: 19 | * minor fixes and improvements 20 | * 10 infantry units (fight each other from time to time, have random parameters, are able to climb obstacles, use various melee fighting styles, change weapons if out of ammo, react to noise) 21 | * 5 enemy bikers (roam the city, shooting the player and other targets) 22 | * meteorites that fall from the sky and explode on impact 23 | * random weapon skills each respawn 24 | * random respawn place 25 | * Hydra's thrust is set to horizontal by default 26 | * press "Handbrake" in aircraft to reset the camera's position (to facilitate aiming and manoeuvring) 27 | * current mutator and money are now saved in the external settings file (money is decreased each restart of the game) 28 | * the player's health regenerates a bit 29 | * infantry enemies sometimes throw grenades and Molotov cocktails 30 | * the player's weapons amount affects his stamina (dynamic difficulty also applies here: the better you play, the more the inventory's weight affects stamina) 31 | 32 | >10 July 2020: 33 | * minor fixes 34 | * updated regeneration system 35 | * Full “San Fierro Tour” mission 36 | * planes now can shoot each other with rockets -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/Builds (Year - Month - Day)/changelog RU.md: -------------------------------------------------------------------------------- 1 | # GTA San Andreas: Air & Land 2 | __История версий (билдов)__ 3 | 4 | 5 | >8 сентября 2018 г.: 6 | * 15 самолётов противника 7 | * встроенное меню со справкой 8 | * бонусы 9 | * мутаторы 10 | * новые визуальные эффекты 11 | * два языка: русский и английский 12 | * автоматическое сохранение настроек во внешнем файле 13 | * одна демонстрационная миссия 14 | * система динамической сложности 15 | * другие мелкие доработки 16 | 17 | 18 | >30 июня 2019 г.: 19 | * мелкие правки и улучшения 20 | * 10 пеших врагов (иногда враждуют между собой, имеют случайные параметры, способны перелезать через препятствия, использовать различные стили рукопашного боя, менять оружие, если кончились патроны, реагировать на шум) 21 | * 5 врагов-мотоциклистов (катаются по городу, попутно перестреливаясь с игроком и другими людьми) 22 | * падение метеоритов, взрывающихся при столкновении с землёй или препятствием 23 | * случайные уровни владения оружием при возрождении 24 | * случайное место возрождения 25 | * у истребителя «Гидра» по умолчанию включён горизонтальный взлёт 26 | * нажатие клавиши «Ручной тормоз» в воздушном транспорте сбрасывает положение камеры (для удобства прицеливания и маневрирования) 27 | * во внешнем файле сохраняются текущий мутатор и деньги (количество которых немного уменьшается при перезапуске игры) 28 | * восстановление небольшой части здоровья игрока 29 | * враги могут кидать гранаты и «коктейли Молотова» 30 | * количество оружия у игрока влияет на его выносливость (также работает система динамической сложности: чем лучше Вы играете, тем сильнее вес снаряжения снижает выносливость) 31 | 32 | 33 | >10 июля 2020 г.: 34 | * мелкие правки 35 | * изменённая система регенерации 36 | * доделана миссия «Тур по Сан-Фиерро» 37 | * самолёты научились атаковать друг друга ракетами -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/ReadMe(ENG).md: -------------------------------------------------------------------------------- 1 | # GTA SA Air & Land by Vital 2 | >Mod version: BETA 3 | 4 | >Mod's author: Vital 5 | 6 | __Don't forget to mention the author if you upload the mod somewhere.__ 7 | 8 | ## ABOUT 9 | Survive in the world full of randomness, being encircled by enemy planes and crazy bikers, amid infantry units and falling meteorites! Both air and land swarm with threats that Air & Land modification invites you to face. 10 | 11 | ## FEATURES 12 | - 15 enemy planes, 10 infantrymen and 5 bikers simultaneously 13 | - the player can choose either Hydra or Rustler to use 14 | - you get bonuses for taking down enemy planes*, for ramming them, and for flying upside down (_in Rustler; if you have less than $250_) 15 | - if you have less than $500, your money and weapons are saved after death 16 | - "Peaceful mode", when neutral planes do not become hostile 17 | - built-in menu with some functions and help 18 | - mod's settings are saved in an external file 19 | - this mod is a Mission Pack, which means you can choose between Air & Land, standard SA, or other MPACKs 20 | - new HUD elements: your plane's health and hostile aircraft counter 21 | - Russian and English languages 22 | - dynamic difficulty 23 | 24 | __*__ You must be in the chosen plane to get rewards for taking down enemies! 25 | 26 | 27 | ## Installation: 28 | First of all, you need __CLEO 4__ library. 29 | Then copy the mod files here: 30 | _MPACK -> My Documents/GTA San Andreas User Files_. 31 | If you want to use the Russian version, install the localisation by __SanLtd__ (located in the root folder). 32 | 33 | >__(!)__ If you already have an MPACK with the same number: 34 | 1) change the folder's name from MPACK6 to MPACK(any free number from 1 to 24); 35 | 2) in that folder, open mpack.dat and put the same number as the folder has in the beginning of the line. 36 | 37 | To see the built-in menu, press __"Answer No"__ button. 38 | 39 | >Thanks to all for help, advice, and patience! 40 | 41 | ### Author's contacts: 42 | * Official VK group: http://vk.com/vitalchannel 43 | * YouTube channel: http://www.youtube.com/VitalRUS13 44 | 45 | > Enjoy the mod! -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/ReadMe(RUS).md: -------------------------------------------------------------------------------- 1 | # GTA SA Air & Land от Vital 2 | >Версия мода: BETA 3 | 4 | >Автор мода: Vital 5 | 6 | __При размещении обязательно указывайте автора.__ 7 | 8 | ## О МОДИФИКАЦИИ 9 | Выживайте в мире, полном случайностей, в окружении самолётов и безумных байкеров, под огнём пеших бойцов и падающих с неба метеоритов! Что на земле, что в воздухе Вас поджидают угрозы, с которыми и предлагает сойтись лицом к лицу модификация Air & Land. 10 | 11 | ## ОСОБЕННОСТИ 12 | * одновременно 15 различных самолётов противника, 10 пеших врагов и 5 мотоциклистов 13 | * выбор одного из двух самолётов для игрока: Hydra и Rustler 14 | * бонусы за уничтожение вражеских самолётов*, за таран и за полёт вниз головой (_в Rustler; если меньше $250_) 15 | * если у Вас меньше $500 то все деньги и оружие после смерти/ареста игрока остаются 16 | * мирный режим, при котором нейтральные самолёты больше не становятся враждебными 17 | * встроенное меню с некоторыми функциями и справкой 18 | * сохранение настроек модификации во внешнем файле 19 | * модификация выполнена в виде Mission Pack, позволяя Вам запускать её отдельно от обычного сюжетного режима 20 | * новые элементы HUD: состояние самолёта и число врагов 21 | * русский и английский языки 22 | * динамическая сложность 23 | 24 | __*__ Для получения наград за подбитие Вы должны находиться в выбранном самолёте! 25 | 26 | 27 | ## Установка: 28 | Для начала нам нужна библиотека плагинов __CLEO 4__. 29 | Затем копируем файлы в папки: 30 | _MPACK *> Мои Документы/GTA San Andreas User Files_. 31 | Для правильной работы русской версии модификации нужен русификатор от __SanLtd__, он идёт вместе с модом. 32 | 33 | >__(!)__ Если у Вас уже есть MPACK с таким же номером, то: 34 | 1) измените название папки MPACK6 на MPACK(Свободный номер от 1 до 24); 35 | 2) отредактируйте в этой папке файл mpack.dat, поставив в начале строки такой же номер. 36 | 37 | Чтобы увидеть справку в игре, нажмите __«Ответ нет»__. 38 | 39 | >Спасибо всем, кто помогал, советовал, ждал! 40 | 41 | ### Контакты автора: 42 | * Группа во «ВКонтакте»: http://vk.com/vitalchannel 43 | * Канал на YouTube: http://www.youtube.com/VitalRUS13 44 | 45 | >Приятной игры! -------------------------------------------------------------------------------- /Sanny Builder/Air & Land/saloc-slt-0-56-install_actual_ver_sanltd_ru.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Air & Land/saloc-slt-0-56-install_actual_ver_sanltd_ru.exe -------------------------------------------------------------------------------- /Sanny Builder/AntiGlitch/AntiGlitch.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/AntiGlitch/AntiGlitch.cs -------------------------------------------------------------------------------- /Sanny Builder/AntiGlitch/AntiGlitch.txt: -------------------------------------------------------------------------------- 1 | /* Made by Vital */ 2 | //$PLAYER_ACTOR $PLAYER_GROUP $ONMISSION 3 | {$CLEO} 4 | 0000: 5 | var 6 | 0@ : Integer = 0 7 | 4@ : Array 11 of Integer 8 | end 9 | 4@[0@] = @Clr 10 | 0@ ++ 11 | 4@[0@] = @Ign 12 | 0@ ++ 13 | 4@[0@] = @Keys 14 | 0@ ++ 15 | 4@[0@] = @MovLock 16 | 0@ ++ 17 | 4@[0@] = @Wide 18 | 0@ ++ 19 | 4@[0@] = @Cam 20 | 0@ ++ 21 | 4@[0@] = @Wanted 22 | 0@ ++ 23 | 4@[0@] = @HudRad 24 | 0@ ++ 25 | 4@[0@] = @TrafPed 26 | 0@ ++ 27 | 4@[0@] = @Weath 28 | 0@ ++ 29 | 4@[0@] = @Tel 30 | while true 31 | wait 0 32 | if 33 | player.Defined(0) 34 | then 35 | if and 36 | not actor.Driving($PLAYER_ACTOR) 37 | 0ADC: test_cheat "ANT" 38 | then 39 | player.CanMove(0,0) 40 | 0ADF: add_dynamic_GXT_entry "ANTG00" text "AntiGlitch" 41 | 0ADF: add_dynamic_GXT_entry "ANTG11" text "Clear current area" 42 | 0ADF: add_dynamic_GXT_entry "ANTG01" text "Disable being ignored by peds & cops" 43 | 0ADF: add_dynamic_GXT_entry "ANTG02" text "Disable game keys lock" 44 | 0ADF: add_dynamic_GXT_entry "ANTG03" text "Disable movement lock" 45 | 0ADF: add_dynamic_GXT_entry "ANTG04" text "Disable widescreen" 46 | 0ADF: add_dynamic_GXT_entry "ANTG05" text "Reset camera" 47 | 0ADF: add_dynamic_GXT_entry "ANTG06" text "Reset max wanted level" 48 | 0ADF: add_dynamic_GXT_entry "ANTG07" text "Reset radar & hud" 49 | 0ADF: add_dynamic_GXT_entry "ANTG08" text "Reset traffic & pedestrians" 50 | 0ADF: add_dynamic_GXT_entry "ANTG09" text "Reset weather" 51 | 0ADF: add_dynamic_GXT_entry "ANTG10" text "Teleport to the street" 52 | 03E6: remove_text_box 53 | 08D4: 0@ = create_panel_with_title 'ANTG00' position 40.0 33.0 width 270.0 columns 1 interactive 1 background 1 alignment 1 // Imports 54 | 08DB: set_panel 0@ column 0 header 'DUMMY' data 'ANTG11' 'ANTG01' 'ANTG02' 'ANTG03' 'ANTG04' 'ANTG05' 'ANTG06' 'ANTG07' 'ANTG08' 'ANTG09' 'ANTG10' 'DUMMY' // Sunday // Monday // Tuesday // Wednesday // Thursday // Friday // Saturday 55 | while true 56 | wait 0 57 | if or 58 | not player.Defined(0) 59 | actor.Driving($PLAYER_ACTOR) 60 | 00E1: player 0 pressed_key 15 61 | then 62 | break 63 | else 64 | if 65 | 00E1: player 0 pressed_key 16 66 | then 67 | 08D7: 1@ = panel 0@ active_row 68 | gosub 4@[1@] 69 | break 70 | end 71 | end 72 | end 73 | 08DA: remove_panel 0@ 74 | 0AE0: remove_dynamic_GXT_entry "ANTG00" 75 | 0AE0: remove_dynamic_GXT_entry "ANTG01" 76 | 0AE0: remove_dynamic_GXT_entry "ANTG02" 77 | 0AE0: remove_dynamic_GXT_entry "ANTG03" 78 | 0AE0: remove_dynamic_GXT_entry "ANTG04" 79 | 0AE0: remove_dynamic_GXT_entry "ANTG05" 80 | 0AE0: remove_dynamic_GXT_entry "ANTG06" 81 | 0AE0: remove_dynamic_GXT_entry "ANTG07" 82 | 0AE0: remove_dynamic_GXT_entry "ANTG08" 83 | 0AE0: remove_dynamic_GXT_entry "ANTG09" 84 | 0AE0: remove_dynamic_GXT_entry "ANTG10" 85 | 0AE0: remove_dynamic_GXT_entry "ANTG11" 86 | player.CanMove(0,1) 87 | end 88 | end 89 | end 90 | 91 | :Cam 92 | camera.Restore() 93 | return 94 | 95 | :Clr 96 | actor.StorePos($PLAYER_ACTOR,1@,2@,3@) 97 | 0395: clear_area 1 at 1@ 2@ 3@ radius 250.0 98 | return 99 | 100 | :HudRad 101 | 0826: enable_hud 1 102 | 0581: enable_radar 1 103 | return 104 | 105 | :Ign 106 | 01F7: set_player 0 ignored_by_cops 0 107 | 03BF: set_player 0 ignored_by_everyone 0 108 | return 109 | 110 | :Keys 111 | 07CC: set_player 0 button_15 1 112 | 082A: set_player 0 able_to_use_crouch_button 1 113 | 0901: enable_player 0 jump_key 1 114 | 0992: set_player 0 weapons_scrollable 1 115 | 0881: set_player 0 able_to_shoot_weapons 1 116 | return 117 | 118 | :MovLock 119 | 039E: set_actor $PLAYER_ACTOR locked 0 while_in_car 120 | actor.LockInCurrentPosition($PLAYER_ACTOR,0) 121 | return 122 | 123 | :Tel 124 | actor.StorePos($PLAYER_ACTOR,1@,2@,3@) 125 | 02C1: store_to 1@ 2@ 3@ car_path_coords_closest_to 1@ 2@ 3@ 126 | select_interior 0 127 | 0860: link_actor $PLAYER_ACTOR to_interior 0 128 | 04E4: unknown_refresh_game_renderer_at 1@ 2@ 129 | 03CB: set_rendering_origin_at 1@ 2@ 3@ 130 | actor.PutAt($PLAYER_ACTOR,1@,2@,-100.0) 131 | return 132 | 133 | :TrafPed 134 | 01EB: set_traffic_density_multiplier_to 1.0 135 | 03DE: set_pedestrians_density_multiplier_to 1.0 136 | return 137 | 138 | :Wanted 139 | 01F0: set_max_wanted_level_to 6 140 | return 141 | 142 | :Weath 143 | 0915: sync_weather_with_time_and_location_instantly 144 | 01B7: release_weather 145 | return 146 | 147 | :Wide 148 | 02A3: enable_widescreen 0 149 | return -------------------------------------------------------------------------------- /Sanny Builder/AntiGlitch/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Antiglitch (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: This script allows you to get rid of glitches which can occur while using some scripts. Type "ANT" to open the AntiGlitch menu. 5 | 6 | ## РУССКИЙ 7 | * Автор: Vital 8 | * Описание: Этот скрипт позволяет избавиться от глюков, которые могут сопровождать некоторые скрипты. Введите "ANT" для открытия меню АнтиГлюка. -------------------------------------------------------------------------------- /Sanny Builder/Bombing/Bombing.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Bombing/Bombing.cs -------------------------------------------------------------------------------- /Sanny Builder/Bombing/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Bombing (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: This cleo script allows you to call a bombing for $1000. Just type "CALLB". 5 | 6 | ## РУССКИЙ 7 | * Автор: Vital 8 | * Описание: Этот скрипт позволяет вызвать бомбёжку за 1000 долларов. Для этого введите "CALLB". -------------------------------------------------------------------------------- /Sanny Builder/Bullet tracers/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Bullet tracers (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: A few new effects for bullet tracers (smoke trail, corona, minor changes in the tracers themselves). 5 | 6 | ## РУССКИЙ 7 | * Автор: Vital 8 | * Описание: Несколько новых эффектов для следов пуль (дымный след, корона, небольшие изменения в самих трассерах). -------------------------------------------------------------------------------- /Sanny Builder/Bullet tracers/Tracers.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Bullet tracers/Tracers.cs -------------------------------------------------------------------------------- /Sanny Builder/Bullet tracers/Tracers.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Bullet tracers/Tracers.txt -------------------------------------------------------------------------------- /Sanny Builder/Car bomb/Explos.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Car bomb/Explos.cs -------------------------------------------------------------------------------- /Sanny Builder/Car bomb/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Car bomb (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: This script is a car bomb which will explode if the car is damaged. Press C to activate. 5 | 6 | ## РУССКИЙ 7 | * Автор: Vital 8 | * Описание: Этот скрипт ставит на машину бомбу, которая срабатывает при повреждении машины. Для активации нажмите C. -------------------------------------------------------------------------------- /Sanny Builder/Car shootout/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Car shootout (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: Type "TURRET" to start the ride. You and your partner should defend the car from the police. You can change weapons using standard weapon/radio change keys. Press "Enter car" to finish the ride. __(!)__ All weapons will be taken from the player. 5 | 6 | ## РУССКИЙ 7 | * Автор: Vital 8 | * Описание: Введите "TURRET", чтобы начать поездку. Вы и Ваш напарник должны отстреливаться от полиции, защищая машину. Меняйте оружие клавишами переключения оружия/радио. Нажмите "Войти в машину", чтобы закончить поездку. __(!)__ Игрок потеряет всё оружие. -------------------------------------------------------------------------------- /Sanny Builder/Car shootout/TurrEx.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Car shootout/TurrEx.cs -------------------------------------------------------------------------------- /Sanny Builder/Car shootout/TurrEx.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Car shootout/TurrEx.txt -------------------------------------------------------------------------------- /Sanny Builder/Gravity mod/GravMod.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Gravity mod/GravMod.cs -------------------------------------------------------------------------------- /Sanny Builder/Gravity mod/GravMod.txt: -------------------------------------------------------------------------------- 1 | //$PLAYER_ACTOR $PLAYER_GROUP 2 | /* Made by Vital */ 3 | /* Gravity Mod: Normal, No gravity, Moon, Low, High, The Highest */ 4 | {$CLEO} 5 | 0000: 6 | repeat 7 | wait 0 8 | until player.Defined(0) 9 | 0A8C: write_memory 0x863984 size 4 value 0.008 virtual_protect 0 10 | var 11 | 3@ : Array 6 of Float //3,4,5,6,7,8 @ 12 | 9@ : Float = 0.008 13 | end 14 | 2@ = 0 15 | 3@[2@] = 0.0 16 | 2@ ++ 17 | 3@[2@] = 0.0013 18 | 2@ ++ 19 | 3@[2@] = 0.003 20 | 2@ ++ 21 | 3@[2@] = 0.008 22 | 2@ ++ 23 | 3@[2@] = 0.01 24 | 2@ ++ 25 | 3@[2@] = 0.03 26 | while true 27 | wait 0 28 | if 29 | player.Defined(0) 30 | then 31 | if and 32 | not actor.Driving($PLAYER_ACTOR) 33 | 0ADC: test_cheat "GRM" 34 | then 35 | 11@ = 0 //Exit Flag 36 | player.CanMove(0,0) 37 | //Start 38 | 0ADF: add_dynamic_GXT_entry "GR1" text "~r~~>~Gravity Mod~<~" 39 | 0ADF: add_dynamic_GXT_entry "GR2" text "Zero" 40 | 0ADF: add_dynamic_GXT_entry "GR3" text "Moon" 41 | 0ADF: add_dynamic_GXT_entry "GR4" text "Low" 42 | 0ADF: add_dynamic_GXT_entry "GR5" text "~h~Normal" 43 | 0ADF: add_dynamic_GXT_entry "GR6" text "High" 44 | 0ADF: add_dynamic_GXT_entry "GR7" text "The Highest" 45 | 0ADF: add_dynamic_GXT_entry "GR8" text "Custom" 46 | 03E6: remove_text_box 47 | 08D4: 0@ = create_panel_with_title 'DUMMY' position 20.0 40.0 width 140.0 columns 1 interactive 1 background 1 alignment 1 // Imports 48 | 08DB: set_panel 0@ column 0 header 'GR1' data 'GR2' 'GR3' 'GR4' 'GR5' 'GR6' 'GR7' 'GR8' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' // Sunday // Monday // Tuesday // Wednesday // Thursday // Friday // Saturday 49 | while true //Main Body 50 | wait 0 51 | if or 52 | 11@ == 1 53 | not player.Defined(0) 54 | actor.Driving($PLAYER_ACTOR) 55 | 00E1: player 0 pressed_key 15 56 | then 57 | break 58 | else 59 | if 60 | 00E1: player 0 pressed_key 16 61 | then 62 | 08D7: 1@ = panel 0@ active_row 63 | if 64 | 1@ <> 6 65 | then 66 | 0087: 9@ = 3@[1@] // (float) 67 | 0AB1: call_scm_func @Gravity 1 3@[1@] 68 | else 69 | 0AB1: call_scm_func @KeyRelease 1 16 70 | 0087: 10@ = 9@ // (float) 71 | 08DA: remove_panel 0@ 72 | 0ADF: add_dynamic_GXT_entry "GR9" text "~r~~>~Custom Gravity~<~" 73 | 0ADF: add_dynamic_GXT_entry "GR10" text "~k~~PED_CYCLE_WEAPON_LEFT~ - Decrease" 74 | 0ADF: add_dynamic_GXT_entry "GR11" text "~k~~PED_CYCLE_WEAPON_RIGHT~ - Increase" 75 | 0ADF: add_dynamic_GXT_entry "GR12" text "~k~~PED_SPRINT~ - Confirm" 76 | 0ADF: add_dynamic_GXT_entry "GR13" text "~k~~VEHICLE_ENTER_EXIT~ - Cancel" 77 | 0ADF: add_dynamic_GXT_entry "GR14" text "~k~~PED_ANSWER_PHONE~ - Default" 78 | gosub @Custom 79 | 0AE0: remove_dynamic_GXT_entry "GR9" 80 | 0AE0: remove_dynamic_GXT_entry "GR10" 81 | 0AE0: remove_dynamic_GXT_entry "GR11" 82 | 0AE0: remove_dynamic_GXT_entry "GR12" 83 | 0AE0: remove_dynamic_GXT_entry "GR13" 84 | 0AE0: remove_dynamic_GXT_entry "GR14" 85 | end 86 | end 87 | end 88 | end //Main Body 89 | //Exit 90 | 08DA: remove_panel 0@ 91 | 0AE0: remove_dynamic_GXT_entry "GR1" 92 | 0AE0: remove_dynamic_GXT_entry "GR2" 93 | 0AE0: remove_dynamic_GXT_entry "GR3" 94 | 0AE0: remove_dynamic_GXT_entry "GR4" 95 | 0AE0: remove_dynamic_GXT_entry "GR5" 96 | 0AE0: remove_dynamic_GXT_entry "GR6" 97 | 0AE0: remove_dynamic_GXT_entry "GR7" 98 | 0AE0: remove_dynamic_GXT_entry "GR8" 99 | player.CanMove(0,1) 100 | end 101 | end 102 | end 103 | 104 | :Gravity 105 | 0A8C: write_memory 0x863984 size 4 value 0@ virtual_protect 0 106 | 0AB2: ret 0 107 | 108 | :Wait //Delay for softer change of the gravity value 109 | 32@ = 0 110 | repeat 111 | wait 0 112 | if or 113 | not player.Defined(0) 114 | actor.Driving($PLAYER_ACTOR) 115 | 80E1: not player 0 pressed_key 0@ 116 | then 117 | break 118 | end 119 | until 32@ > 39 120 | 0AB2: ret 0 121 | 122 | :KeyRelease //Wait for the player to release a pressed key 123 | repeat 124 | wait 0 125 | if or 126 | not player.Defined(0) 127 | actor.Driving($PLAYER_ACTOR) 128 | then 129 | break 130 | end 131 | until 80E1: not player 0 pressed_key 0@ 132 | 0AB2: ret 0 133 | 134 | :Custom //Custom Gravity 135 | 08D4: 0@ = create_panel_with_title 'DUMMY' position 20.0 40.0 width 200.0 columns 1 interactive 0 background 1 alignment 1 // Imports 136 | 08DB: set_panel 0@ column 0 header 'GR9' data 'GR10' 'GR11' 'GR12' 'GR13' 'GR14' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' // Sunday // Monday // Tuesday // Wednesday // Thursday // Friday // Saturday 137 | while true //CG Body 138 | wait 0 139 | 0AD1: show_formatted_text_highpriority "Gravity: %.4f" time 100 9@ 140 | if or 141 | not player.Defined(0) 142 | actor.Driving($PLAYER_ACTOR) 143 | then 144 | 11@ = 1 145 | 08DA: remove_panel 0@ 146 | 03E6: remove_text_box 147 | break 148 | else 149 | if 150 | 00E1: player 0 pressed_key 15 //Enter/Exit Vehicle 151 | then 152 | 0AB1: call_scm_func @KeyRelease 1 15 153 | 0AB1: call_scm_func @Gravity 1 10@ 154 | 03E6: remove_text_box 155 | 08DA: remove_panel 0@ 156 | 08D4: 0@ = create_panel_with_title 'DUMMY' position 20.0 40.0 width 140.0 columns 1 interactive 1 background 1 alignment 1 // Imports 157 | 08DB: set_panel 0@ column 0 header 'GR1' data 'GR2' 'GR3' 'GR4' 'GR5' 'GR6' 'GR7' 'GR8' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' // Sunday // Monday // Tuesday // Wednesday // Thursday // Friday // Saturday 158 | break //We'll go back to the previous menu 159 | else 160 | if 161 | 00E1: player 0 pressed_key 16 //Confirm 162 | then 163 | 11@ = 1 //Let the Main Body stop the script after 'return' 164 | 018C: play_sound 1054 at 0.0 0.0 0.0 165 | break 166 | else 167 | if 168 | 00E1: player 0 pressed_key 5 //Prev. Weapon 169 | then 170 | 9@ -= 0.0001 171 | 0AB1: call_scm_func @Wait 1 5 172 | 0AB1: call_scm_func @Gravity 1 9@ 173 | else 174 | if 175 | 00E1: player 0 pressed_key 7 //Next Weapon 176 | then 177 | 9@ += 0.0001 178 | 0AB1: call_scm_func @Wait 1 7 179 | 0AB1: call_scm_func @Gravity 1 9@ 180 | else 181 | if 182 | 00E1: player 0 pressed_key 4 //Action 183 | then 184 | 9@ = 0.008 185 | 0AB1: call_scm_func @KeyRelease 1 4 186 | 018C: play_sound 1052 at 0.0 0.0 0.0 187 | 0AB1: call_scm_func @Gravity 1 9@ 188 | end 189 | end 190 | end 191 | end 192 | end 193 | end 194 | end //CG Body 195 | return //Back to the Main Body -------------------------------------------------------------------------------- /Sanny Builder/Gravity mod/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Gravity mod (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: Type "GRM" to change gravity using pre-set values or setting your own. 5 | 6 | ## РУССКИЙ 7 | * Автор: Vital 8 | * Описание: Введите "GRM" для изменения гравитации, выбирая заготовленные значения или устанавливая свои. -------------------------------------------------------------------------------- /Sanny Builder/Height meter/GxtHook.cleo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Height meter/GxtHook.cleo -------------------------------------------------------------------------------- /Sanny Builder/Height meter/Height.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Height meter/Height.cs -------------------------------------------------------------------------------- /Sanny Builder/Height meter/Height.txt: -------------------------------------------------------------------------------- 1 | {$CLEO .cs} 2 | thread "HEIGHT" 3 | 4 | :Height 5 | wait 0 6 | if 7 | Player.Defined($PLAYER_CHAR) 8 | jf @Height 9 | while true 10 | wait 0 11 | if and 12 | not Actor.Driving($PLAYER_ACTOR) 13 | 00E1: player 0 pressed_key 4 14 | then 15 | 0819: 1@ = actor $PLAYER_ACTOR distance_from_ground 16 | 0092: 2@ = float 1@ to_integer 17 | 03F0: enable_text_draw 1 18 | 081C: draw_text_outline 2 RGBA 0 0 255 200 19 | 033F: set_text_draw_letter_size 0.7 1.2 20 | 0349: set_text_draw_font 3 21 | 0343: set_text_draw_linewidth 150.0 22 | 045A: draw_text_1number 60.0 225.0 GXT 'HEIGH' number 2@ 23 | end 24 | end 25 | jump @Height -------------------------------------------------------------------------------- /Sanny Builder/Height meter/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Height meter (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: Hold "Action" to see the distance from the ground. 5 | * Installation (file -> folder): 6 | * height.cs -> CLEO 7 | * height.fxt -> CLEO\CLEO_TXT 8 | * GxtHook.cleo -> CLEO 9 | 10 | ## РУССКИЙ 11 | * Автор: Vital 12 | * Описание: удерживайте кнопку «Действие», чтобы увидеть расстояние от земли. 13 | * Установка (файл -> папка): 14 | * height.cs -> CLEO 15 | * height.fxt -> CLEO\CLEO_TXT 16 | * GxtHook.cleo -> CLEO -------------------------------------------------------------------------------- /Sanny Builder/Height meter/height.fxt: -------------------------------------------------------------------------------- 1 | HEIGH Height: ~1~ -------------------------------------------------------------------------------- /Sanny Builder/Light HUD/LightHUD.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Light HUD/LightHUD.cs -------------------------------------------------------------------------------- /Sanny Builder/Light HUD/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Light HUD (GTA SA; CLEO) 2 | ## ENGLISH 3 | * Author: Vital (Vitaly Pavlovich Ulyanov) 4 | * Description: A simple minimalist CLEO HUD for GTA: San Andreas. To increase its opacity while on foot, use ‘Action’ button. Tested on CLEO 4.4.4 and 5. 5 | * Requirements: CLEO 4.4.4 or newer. 6 | * Installation: Put `LightHUD.cs` inside your `GTA SA\CLEO` folder. 7 | 8 | ## РУССКИЙ 9 | * Автор: Vital (Виталий Павлович Ульянов) 10 | * Описание: Простой и минималстичный HUD на CLEO для GTA: San Andreas. Для уменьшения его прозрачности вне транспорта используйте кнопку «Действие». Проверялся на CLEO 4.4.4 и 5. 11 | * Требования: CLEO 4.4.4 или новее. 12 | * Установка: Поместите `LightHUD.cs` в папку `GTA SA\CLEO`. -------------------------------------------------------------------------------- /Sanny Builder/Melee autoaim/ContrChange.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Melee autoaim/ContrChange.cs -------------------------------------------------------------------------------- /Sanny Builder/Melee autoaim/ContrChange.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Melee autoaim/ContrChange.txt -------------------------------------------------------------------------------- /Sanny Builder/Melee autoaim/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Melee autoaim (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: During melee fights only, "Joypad" control mode with autoaiming will automatically turn on. 5 | 6 | ## РУССКИЙ 7 | * Автор: Vital 8 | * Описание: Теперь на время рукопашных схваток будет включаться режим управления "Джойстик" с автонаведением на цель. -------------------------------------------------------------------------------- /Sanny Builder/Mouse travel/MouseTravel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Mouse travel/MouseTravel.cs -------------------------------------------------------------------------------- /Sanny Builder/Mouse travel/MouseTravel.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Mouse travel/MouseTravel.txt -------------------------------------------------------------------------------- /Sanny Builder/Mouse travel/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Mouse travel (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: A small script adding a convenient and fast way of moving around the state using mouse (or joystick). Type "GO" to turn the script on, use the mouse/joystick to move the player, press "Sprint" key to exit. 5 | 6 | ## РУССКИЙ 7 | * Автор: Vital 8 | * Описание: Небольшой скрипт, добавляющий удобный, благодаря скорости и точности, способ перемещения игрока по карте при помощи мыши/мини-джойстика геймпада. Введите "GO" для включения, используйте мышь/мини-джойстик для движения (относительно игрока), жмите "Спринт" для выхода. -------------------------------------------------------------------------------- /Sanny Builder/RC helicopter/RCHeli.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/RC helicopter/RCHeli.cs -------------------------------------------------------------------------------- /Sanny Builder/RC helicopter/RCHeli.txt: -------------------------------------------------------------------------------- 1 | {$CLEO} 2 | 0000: 3 | while true //1 4 | wait 0 5 | if //2 6 | player.Defined(0) 7 | then 8 | if and //3 9 | not actor.Dead($PLAYER_ACTOR) 10 | not actor.Driving($PLAYER_ACTOR) 11 | 0ADC: test_cheat "RCHELI" 12 | then 13 | model.Load(#RCGOBLIN) 14 | 038B: load_requested_models 15 | 04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 1.0 3.0 1.0 16 | 02C1: store_to 1@ 2@ 3@ car_path_coords_closest_to 1@ 2@ 3@ 17 | car.Create(4@,#RCGOBLIN,1@,2@,3@) 18 | car.SetImmunities(4@,1,1,1,1,1) 19 | model.Destroy(#RCGOBLIN) 20 | marker.CreateAboveCar(5@,4@) 21 | marker.SetColor(5@,0x0026FFFF) 22 | 0825: set_helicopter 4@ instant_rotor_start 23 | 07BB: set_heli 4@ horizontal_thrust_power 8 24 | 04DF: set_heli 4@ lean_and_thrust_limiter 0 25 | 04A2: set_heli 4@ fly_to 1@ 2@ 3@ altitude_between 7.0 and 14.0 26 | while true //4 27 | wait 0 28 | car.StorePos(4@,6@,7@,8@) 29 | 02CE: 9@ = ground_z_at 6@ 7@ 8@ 30 | 0087: 10@ = 8@ // (float) 31 | if and //5.1 32 | not actor.Dead($PLAYER_ACTOR) 33 | not actor.Driving($PLAYER_ACTOR) 34 | 80E1: not player 0 pressed_key 6 35 | 00E1: player 0 pressed_key 8 36 | then 37 | 0726: heli 4@ follow_actor $PLAYER_ACTOR follow_car -1 radius 7.0 38 | wait 750 39 | end //5.1 40 | if and //5.2 41 | not actor.Dead($PLAYER_ACTOR) 42 | not actor.Driving($PLAYER_ACTOR) 43 | 80E1: not player 0 pressed_key 6 44 | 00E1: player 0 pressed_key 9 45 | then 46 | actor.StorePos($PLAYER_ACTOR,1@,2@,3@) 47 | 02C1: store_to 1@ 2@ 3@ car_path_coords_closest_to 1@ 2@ 3@ 48 | 04A2: set_heli 4@ fly_to 1@ 2@ 3@ altitude_between 7.0 and 14.0 49 | wait 750 50 | end //5.2 51 | if or //5.3 52 | actor.Dead($PLAYER_ACTOR) 53 | 0741: actor $PLAYER_ACTOR busted 54 | 0ADC: test_cheat "RCEXIT" 55 | then 56 | marker.Disable(5@) 57 | car.Destroy(4@) 58 | car.RemoveReferences(4@) 59 | wait 750 60 | break 61 | end //5.3 62 | if or //5.4 63 | 0025: 9@ > 8@ // (float) 64 | 8205: not actor $PLAYER_ACTOR near_car 4@ radius 175.0 175.0 9999.0 flag 0 65 | 0AB0: key_pressed 0x24 66 | then 67 | actor.StorePos($PLAYER_ACTOR,1@,2@,3@) 68 | 02C1: store_to 1@ 2@ 3@ car_path_coords_closest_to 1@ 2@ 3@ 69 | car.PutAt(4@,1@,2@,3@) 70 | //04A2: set_heli 4@ fly_to 1@ 2@ 3@ altitude_between 7.0 and 14.0 71 | 0726: heli 4@ follow_actor $PLAYER_ACTOR follow_car -1 radius 7.0 72 | wait 750 73 | end //5.4 74 | if and //5.5 75 | not actor.Dead($PLAYER_ACTOR) 76 | not actor.Driving($PLAYER_ACTOR) 77 | 0205: actor $PLAYER_ACTOR near_car 4@ radius 50.0 50.0 35.0 flag 0 78 | 00E1: player 0 pressed_key 6 79 | 00E1: player 0 pressed_key 8 80 | then 81 | 0AD2: 11@ = player $PLAYER_CHAR targeted_actor 82 | if //5.5.1 83 | actor.Defined(11@) 84 | then 85 | for 12@ = 0 to 9 //5.5.2 86 | wait 0 87 | 0208: 17@ = random_float_in_ranges -0.2 0.2 88 | 0407: store_coords_to 1@ 2@ 3@ from_car 4@ with_offset 0.0 0.0 -0.2 89 | 04C4: store_coords_to 13@ 14@ 15@ from_actor 11@ with_offset 17@ 17@ 17@ 90 | 0209: 16@ = random_int_in_ranges 25 55 91 | wait 16@ 92 | 0209: 16@ = random_int_in_ranges 8 13 93 | 06BC: create_M4_shoot_from 1@ 2@ 3@ target 13@ 14@ 15@ energy 16@ 94 | end //5.5.2 95 | end //5.5.1 96 | actor.RemoveReferences(11@) 97 | wait 500 98 | end //5.5 99 | if and //5.6 100 | not actor.Dead($PLAYER_ACTOR) 101 | not actor.Driving($PLAYER_ACTOR) 102 | 0205: actor $PLAYER_ACTOR near_car 4@ radius 50.0 50.0 35.0 flag 0 103 | 00E1: player 0 pressed_key 6 104 | 00E1: player 0 pressed_key 9 105 | then 106 | 0AD2: 11@ = player $PLAYER_CHAR targeted_actor 107 | if //5.6.1 108 | actor.Defined(11@) 109 | then 110 | 0407: store_coords_to 1@ 2@ 3@ from_car 4@ with_offset 0.0 0.0 -0.1 111 | 04C4: store_coords_to 13@ 14@ 15@ from_actor 11@ with_offset 0.0 0.0 -0.1 112 | if //5.6.2 113 | 06BD: no_obstacles_between 1@ 2@ 3@ and 13@ 14@ 15@ solid 1 car 1 actor 0 object 1 particle 0 114 | then 115 | actor.StorePos(11@,13@,14@,15@) 116 | 020C: create_explosion_with_radius 0 at 13@ 14@ 15@ 117 | wait 1050 118 | end //5.6.2 119 | end //5.6.1 120 | actor.RemoveReferences(11@) 121 | end //5.6 122 | end //4 123 | end //3 124 | end //2 125 | end //1 -------------------------------------------------------------------------------- /Sanny Builder/RC helicopter/ReadMe.md: -------------------------------------------------------------------------------- 1 | # RC helicopter (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Controls: 5 | * "RCHELI" - activate 6 | * "RCEXIT" - deactivate 7 | * "Group Forward" - follow the player/use machine gun (+press "Aim") 8 | * "Group Backward" - fly to the nearest road/use rockets (+press "Aim") 9 | * Home - teleport the heli to the player. 10 | 11 | ## РУССКИЙ 12 | * Автор: Vital 13 | * Управление: 14 | * "RCHELI" - включить 15 | * "RCEXIT" - отключить 16 | * "Group Forward" - следовать за игроком/стрелять из пулемёта (+при нажатой кнопке "Прицел") 17 | * "Group Backward" - лететь к ближайшей дороге/стрелять ракетами (+при нажатой кнопке "Прицел") 18 | * Home - телепортировать вертолёт к игроку. -------------------------------------------------------------------------------- /Sanny Builder/Random fighting styles/RandFS.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Random fighting styles/RandFS.cs -------------------------------------------------------------------------------- /Sanny Builder/Random fighting styles/RandFS.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Random fighting styles/RandFS.txt -------------------------------------------------------------------------------- /Sanny Builder/Random fighting styles/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Random fighting styles (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: At random time intervals a random fighting style is applied to the player. 5 | 6 | ## РУССКИЙ 7 | * Автор: Vital 8 | * Описание: Стиль боя меняется на случайный со случайной частотой. -------------------------------------------------------------------------------- /Sanny Builder/Random race/Racing.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Random race/Racing.cs -------------------------------------------------------------------------------- /Sanny Builder/Random race/Racing.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Random race/Racing.txt -------------------------------------------------------------------------------- /Sanny Builder/Random race/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Random race (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: Type "RACE" to start a random checkpoint race. 5 | 6 | ## РУССКИЙ 7 | * Автор: Vital 8 | * Описание: Введите код "RACE", чтобы начать случайную гонку с прохождением контрольных точек. -------------------------------------------------------------------------------- /Sanny Builder/Simple HUD/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Simple HUD (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: Yet another CLEO script made mainly to teach coding. This time I've made a HUD of my own that, though simple, displays all the necessary game info and has a few nice features: 5 | * can be turned off in menu (no need to remember or bind a key for that) 6 | * some elements' colour changes depending on its value (e.g. the clock becomes darker as the night draws closer, the ammo gets brighter when you become low on ammo) 7 | * slightly moves when you move mouse or analogue stick. 8 | 9 | Apart from this, while reading the code, you can learn to: 10 | * use constants 11 | * work with memory addresses 12 | * utilise text_draw mode 13 | * draw texts close to one another without overlapping 14 | * read mouse's or analogue stick's offset 15 | * know how many ammo is left in the magazine 16 | * make one values dependent on others (and even use sine for that!) 17 | * read from the game's memory how much oxygen is left 18 | * read from the game's memory how much the police are angry 19 | * use scm-functions 20 | 21 | >Script's demonstration: 22 | https://youtu.be/Kk2hxCZA06Q 23 | 24 | Have a nice time playing! 25 | 26 | ## РУССКИЙ 27 | * Автор: Vital 28 | * Описание: Продолжаю традицию скриптов, предназначенных в первую очередь для обучения скриптеров. На сей раз я создал в CLEO собственный HUD, который хоть и довольно прост, но отображает самые важные игровые показатели, а также может похвастаться такими особенностями: 29 | * отключается при отключении через меню (не нужно зубрить кнопки включения/выключения скрипта и попусту задействовать клавиатуру) 30 | * меняет цвет некоторых элементов в зависимости от их значений (например, часы становятся темнее с приближением ночи, а цвет числа патронов в магазине — ярче, если их становится мало) 31 | * слегка смещает элементы при перемещении мышки/мини-джойстика. 32 | 33 | Помимо вышеперечисленного, изучая код, вы сможете научиться: 34 | * применять константы 35 | * работать с адресами памяти 36 | * использовать режим рисования (text_draw) 37 | * выводить тексты рядом так, чтобы они не перекрывали друг друга 38 | * считывать смещения мыши/мини-джойстика 39 | * узнавать число патронов в магазине 40 | * ставить одни значения в зависимость от других (и даже задействовать для этого нахождение синуса!) 41 | * находить в памяти значение оставшегося кислорода 42 | * находить в памяти счётчик «злости» полиции 43 | * пользоваться scm-функциями 44 | 45 | >Демонстрация скрипта: 46 | https://youtu.be/Kk2hxCZA06Q 47 | 48 | Приятной игры! -------------------------------------------------------------------------------- /Sanny Builder/Simple HUD/SimpleHUD.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Simple HUD/SimpleHUD.cs -------------------------------------------------------------------------------- /Sanny Builder/Simple HUD/SimpleHUD.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Simple HUD/SimpleHUD.txt -------------------------------------------------------------------------------- /Sanny Builder/Sniper bullet trace/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Sniper bullet trace (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: Now every bullet fired from sniper rifle will have a little smoke trace. 5 | 6 | ## РУССКИЙ 7 | * Автор: Vital 8 | * Описание: Теперь выпущенные из снайперской винтовки пули оставляют дымный след. -------------------------------------------------------------------------------- /Sanny Builder/Sniper bullet trace/SnBulTrace.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Sniper bullet trace/SnBulTrace.cs -------------------------------------------------------------------------------- /Sanny Builder/Sniper bullet trace/SnBulTrace.txt: -------------------------------------------------------------------------------- 1 | /* Made by Vital */ 2 | //$PLAYER_ACTOR $PLAYER_GROUP 3 | {$CLEO} 4 | 0000: 5 | var 6 | 3@ : Array 3 of Float 7 | end 8 | while true 9 | wait 0 10 | if 11 | player.Defined(0) 12 | then 13 | for 0@ = 0xC88740 to 0xC88874 step 0x2C //44 byte; 8 elements 14 | 0085: 1@ = 0@ // (int) 15 | 0085: 2@ = 0@ // (int) 16 | 1@ += 12 17 | 2@ += 16 18 | 0A8D: 1@ = read_memory 1@ size 1 virtual_protect 0 //byte 19 | if 20 | 1@ == 1 21 | then 22 | for 1@ = 0 to 2 23 | 0A8D: 3@[1@] = read_memory 2@ size 4 virtual_protect 0 24 | 2@ += 4 25 | end 26 | 095C: create_smoke_at 3@ 4@ 5@ velocity 0.0 0.0 0.1 RGBA 0.0 0.0 0.0 0.5 size 0.05 last_factor 0.2 27 | end 28 | end 29 | end 30 | end -------------------------------------------------------------------------------- /Sanny Builder/Snow on Screen/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Snow on Screen (GTA: SA; CLEO) 2 | ## ENGLISH 3 | * Author: Vital (Vitaly Pavlovich Ulyanov) 4 | * Description: A simple script adding snow on the screen. Type 'SNOW' to turn the script on or off. Use the mouse to influence the X-axis movement of the snow. 5 | * Requirements: CLEO 4.4.4 or newer. 6 | * Installation: Put `Snow.cs` inside your `GTA SA\CLEO` folder. 7 | 8 | ## RUSSIAN 9 | * Автор: Vital (Виталий Павлович Ульянов) 10 | * Описание: Простой скрипт, добавляющий снег на экране. Введите 'SNOW' для включения или отключения скрипта. На движение снега по оси X можно влиять мышью. 11 | * Требования: CLEO 4.4.4 или новее. 12 | * Установка: Поместите `Snow.cs` в папку `GTA SA\CLEO`. -------------------------------------------------------------------------------- /Sanny Builder/Snow on Screen/Snow.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Snow on Screen/Snow.cs -------------------------------------------------------------------------------- /Sanny Builder/Snow on Screen/Snow.txt: -------------------------------------------------------------------------------- 1 | {$CLEO} // Script by Vital (Vitaly Pavlovich Ulyanov) 2 | script_name 'SNOW' 3 | 4 | const minStartX = 10.0 5 | const maxStartX = 630.0 6 | const minStartY = -15.0 7 | const maxStartY = -350.0 8 | 9 | int i 10 | int snow = 0 11 | float x[10] 12 | float y[10] 13 | float mx, my 14 | 15 | while true 16 | wait 0 17 | 18 | if not Player.IsPlaying(0) 19 | then continue 20 | end 21 | 22 | if Pad.TestCheat("SNOW") 23 | then 24 | if snow == 0 25 | then 26 | snow = 1 27 | for i = 0 to 9 28 | x[i] = Math.RandomFloatInRange(minStartX, maxStartX) 29 | y[i] = Math.RandomFloatInRange(minStartY, maxStartY) 30 | end 31 | Text.PrintStringNow("Snow ~r~ON~s~ [Script by ~y~Vital~s~]", 3000) 32 | else 33 | snow = 0 34 | Text.PrintStringNow("Snow ~r~OFF", 3000) 35 | end 36 | end 37 | 38 | if snow == 1 39 | then 40 | for i = 0 to 9 41 | mx, my = Mouse.GetMovement() 42 | float s = Math.Sin(y[i]) 43 | float ms = Math.Sin(mx) 44 | float r = Math.RandomFloatInRange(0.25, 0.7) 45 | float ySpeed = Math.RandomFloatInRange(0.3, 0.5) 46 | s *= r 47 | s += ms 48 | 49 | x[i] +=@ s 50 | y[i] +=@ ySpeed 51 | 52 | if and 53 | y[i] < 448.0 54 | x[i] > 0.0 55 | x[i] < 640.0 56 | then 57 | if y[i] > -10.0 58 | then 59 | Text.UseCommands(true) 60 | Text.SetScale(0.4, 1.8) 61 | Text.SetDropshadow(1, 0, 148, 255, 150) 62 | Text.Display(x[i], y[i], "PAGE_00") 63 | Text.UseCommands(false) 64 | end 65 | else 66 | x[i] = Math.RandomFloatInRange(minStartX, maxStartX) 67 | y[i] = Math.RandomFloatInRange(minStartY, maxStartY) 68 | end 69 | end 70 | end 71 | end -------------------------------------------------------------------------------- /Sanny Builder/Speed effects/ReadMe.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Speed effects/ReadMe.md -------------------------------------------------------------------------------- /Sanny Builder/Speed effects/SpeedEffect.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Speed effects/SpeedEffect.cs -------------------------------------------------------------------------------- /Sanny Builder/Speed effects/SpeedEffect.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Speed effects/SpeedEffect.txt -------------------------------------------------------------------------------- /Sanny Builder/Speedometer/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Simple speedometer (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: A simple digital speedometer that changes its colour to red when the vehicle speeds up. 5 | 6 | ## РУССКИЙ 7 | * Автор: Vital 8 | * Описание: Простой числовой спидометр, меняющий цвет при наборе скорости. -------------------------------------------------------------------------------- /Sanny Builder/Speedometer/Speedometer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Speedometer/Speedometer.cs -------------------------------------------------------------------------------- /Sanny Builder/Speedometer/Speedometer.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Speedometer/Speedometer.txt -------------------------------------------------------------------------------- /Sanny Builder/SuperAbilities/SupAb_by_Vital.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/SuperAbilities/SupAb_by_Vital.cs -------------------------------------------------------------------------------- /Sanny Builder/SuperAbilities/SupAb_by_Vital.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/SuperAbilities/SupAb_by_Vital.txt -------------------------------------------------------------------------------- /Sanny Builder/SuperAbilities/SuperAbilities by Vital Readme.md: -------------------------------------------------------------------------------- 1 | # SuperAbilities (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Installation: __CLEO 4__ library is needed. Since it is installed, CLEO folder will appear in the game folder, copy the file __SupAb_by_Vital.cs__ there. 5 | 6 | >On foot: 7 | - Health & Armour - 1 8 | - Swap with ped - 2 9 | - Teleport to marker - 3 10 | - Gravity strike - 4 11 | - Clear wanted level - 5 12 | - SuperPlayer - 6 13 | - Help - type SUPAB 14 | 15 | >In vehicle: 16 | - Repair - 1 17 | - Speed boost (hold) - 2 18 | - Teleport to marker - 3 19 | - Jump - 4 20 | - Clear wanted level - 5 21 | - SuperCar - 6 22 | 23 | >Flying: 24 | - Enable/Disable (in air) - Crouch 25 | - Forward/Backward - Forward/Backward 26 | - Up/Down - Sprint/Jump 27 | - Left/Right - Left/Right 28 | - Explode all cars - Fire 29 | - Reset position - Aim 30 | 31 | ## РУССКИЙ 32 | * Автор: Vital 33 | * Установка: нужно иметь библиотеку __CLEO 4__. Файл __SupAb_by_Vital.cs__ нужно поместить в папку CLEO, которая после установки CLEO будет в папке с игрой. 34 | 35 | >Пешком: 36 | - Здоровье и броня - 1 37 | - Поменяться местами с пешеходом - 2 38 | - Телепорт на отметку - 3 39 | - Гравитационный удар - 4 40 | - Очистить уровень розыска - 5 41 | - СуперИгрок - 6 42 | - Справка - ввести SUPAB 43 | 44 | >В транспорте: 45 | - Починка - 1 46 | - Ускорение (удерживать) - 2 47 | - Телепорт на отметку - 3 48 | - Прыжок - 4 49 | - Очистить уровень розыска - 5 50 | - СуперМашина - 6 51 | 52 | >Полёт: 53 | - Вкл/Выкл (в воздухе) - Присесть 54 | - Вперёд/Назад - Вперёд/Назад 55 | - Вверх/Вниз - Спринт/Прыжок 56 | - Влево/Вправо - Влево/Вправо 57 | - Взорвать все машины - Стрелять 58 | - Сброс позиции - Прицел -------------------------------------------------------------------------------- /Sanny Builder/SuperJump/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Superjump (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: This script allows you to perform a super jump. You can also edit some parameters to change the way of jumping. Type "SJE" to activate/deactivate super jump. When you're in the air, press Crouch to perform the jump. 5 | 6 | ## РУССКИЙ 7 | * Автор: Vital 8 | * Описание: Этот скрипт позволяет Вам выполнять супер-прыжок. Также Вы можете редактировать параметры прыжка. Для включения/выключения введите "SJE". Для супер-прыжка нажмите «Присесть», когда окажетесь в воздухе. -------------------------------------------------------------------------------- /Sanny Builder/SuperJump/SJ.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/SuperJump/SJ.cs -------------------------------------------------------------------------------- /Sanny Builder/SuperJump/SJ.ini: -------------------------------------------------------------------------------- 1 | [SJE] 2 | x=0.0 3 | y=20.0 4 | z=4.0 -------------------------------------------------------------------------------- /Sanny Builder/SuperJump/SJ.txt: -------------------------------------------------------------------------------- 1 | {$CLEO} 2 | thread "SJ" 3 | 4 | :SJ 5 | wait 0 6 | if 7 | player.Defined($PLAYER_CHAR) 8 | jf @SJ 9 | if and 10 | not actor.Dead($PLAYER_ACTOR) 11 | not actor.Driving($PLAYER_ACTOR) 12 | 0ADC: test_cheat "SJE" 13 | jf @SJ 14 | 0ACA: show_text_box "Super Jump" 15 | 0AF2: 1@ = get_float_from_ini_file "cleo\SJ.ini" section "SJE" key "x" 16 | 0AF2: 2@ = get_float_from_ini_file "cleo\SJ.ini" section "SJE" key "y" 17 | 0AF2: 3@ = get_float_from_ini_file "cleo\SJ.ini" section "SJE" key "z" 18 | jump @SJ2 19 | 20 | :SJ2 21 | wait 125 22 | if and 23 | not actor.Dead($PLAYER_ACTOR) 24 | 0818: actor $PLAYER_ACTOR in_air 25 | 00E1: player 0 pressed_key 18 26 | jf @SJ3 27 | 04C4: store_coords_to 4@ 5@ 6@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0 28 | 04C4: store_coords_to 7@ 8@ 9@ from_actor $PLAYER_ACTOR with_offset 1@ 2@ 3@ 29 | 0063: 7@ -= 4@ // (float) 30 | 0063: 8@ -= 5@ // (float) 31 | 0063: 9@ -= 6@ // (float) 32 | 083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ 7@ 8@ 9@ 33 | jump @SJ2 34 | 35 | :SJ3 36 | wait 0 37 | if 38 | 0ADC: test_cheat "SJE" 39 | jf @SJ2 40 | 0ACA: show_text_box "Super Jump deactivated" 41 | wait 500 42 | jump @SJ -------------------------------------------------------------------------------- /Sanny Builder/Walk toggle/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Walk toggle (CLEO; GTA SA) 2 | 3 | ## ENGLISH 4 | - Author: Vital (Vitaly Pavlovich Ulyanov) 5 | - Description: Tired of holding the walk button on the keyboard to make the game a bit more atmospheric in certain situations? Then this script is for you! Press the walk button to turn on the walking mode, which will be enabled until you press the sprint button. That's it, enjoy! 6 | 7 | ## РУССКИЙ 8 | - Автор: Vital (Виталий Павлович Ульянов) 9 | - Описание: Устали держать кнопку ходьбы, когда хочется добавить игре атмосферности? Тогда этот скрипт для Вас! Для включения режима ходьбы просто нажмите соответствующую кнопку, а для его выключения используйте кнопку спринта. Всё, приятной игры! -------------------------------------------------------------------------------- /Sanny Builder/Walk toggle/WalkToggle.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Walk toggle/WalkToggle.cs -------------------------------------------------------------------------------- /Sanny Builder/Walk toggle/WalkToggle.txt: -------------------------------------------------------------------------------- 1 | {$CLEO} 2 | 0000: // Made by Vital 3 | 4 | while true 5 | wait 0 6 | 7 | if 8 | player.Defined(0) 9 | then 10 | 0A8D: 0@ = read_memory 0xB73482 size 4 virtual_protect 0 11 | 12 | if 13 | 0@ == 255 14 | then 15 | while true 16 | 17 | if 18 | not actor.Driving($PLAYER_ACTOR) 19 | then 20 | if and 21 | 00E1: player 0 pressed_key 16 22 | player.Controllable(0) 23 | then 24 | break 25 | else 26 | //0A8C: write_memory 0xB73482 size 4 value 255 virtual_protect 0 27 | cleo_call @EmulatePlayerButtonWithSensitivity 3 0 21 255 28 | end 29 | end 30 | 31 | wait 0 32 | end 33 | end 34 | end 35 | end 36 | 37 | :EmulatePlayerButtonWithSensitivity 38 | const 39 | player_id = 0@ 40 | button_id = 1@ 41 | sensitivity = 2@ 42 | bt_address = 0xB73458 43 | bt_offset = 0x1AC 44 | end // const 45 | 46 | player_id *= bt_offset 47 | button_id *= 2 48 | button_id += bt_address 49 | 005A: button_id += player_id 50 | 51 | 0A8C: write_memory button_id size 2 value sensitivity virtual_protect 0 52 | cleo_return 0 -------------------------------------------------------------------------------- /Sanny Builder/Wanted Timer/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Wanted timer (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital 4 | * Description: A simple timer that counts how much time you survive with wanted level. For players this little script is merely a way to find out what you're capable of in GTA's traditional fighting with law enforcements. Scripters, in their turn, may find the script's code useful, since it features the following topics: 5 | * working with constants 6 | * working with while cycle 7 | * gosub as a condition 8 | * using a local timer variable (here — 32@) 9 | * using the text draw mode to display text 10 | * converting milliseconds to minutes and seconds (in other words, creating a proper timer in CLEO without global variables) 11 | 12 | 13 | ## РУССКИЙ 14 | * Автор: Vital 15 | * Описание: простой таймер с прямым отсчётом времени, замеряющий, сколько Вы находитесь в розыске. Для обычных игроков этот маленький скрипт — всего лишь возможность оценить свои силы в традиционных для серии GTA перестрелках с силами правопорядка. Скриптеры же могут извлечь из его кода пользу, изучив следующие темы: 16 | * работа с константами 17 | * работа с циклом while 18 | * условный gosub (переход с возвратом) 19 | * использование локальной переменной-таймера (здесь — 32@) 20 | * вывод текста в режиме рисования (text draw) 21 | * перевод миллисекунд в минуты и секунды (иными словами, создание полноценного таймера без применения глобальных переменных) 22 | -------------------------------------------------------------------------------- /Sanny Builder/Wanted Timer/WantedTimer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Wanted Timer/WantedTimer.cs -------------------------------------------------------------------------------- /Sanny Builder/Wanted Timer/WantedTimer.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Wanted Timer/WantedTimer.txt -------------------------------------------------------------------------------- /Sanny Builder/Weapon spheres/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Weapon spheres (GTA SA) 2 | ## ENGLISH 3 | * Author: Vital. Thanks to __Den_Spb__ and __DK22Pac__ for help. 4 | * Description: This mod creates coloured spheres around weapon pickups. The settings of the spheres' appearance can be changed in _weapl.ini_. 5 | * Installation: Drag all the files into "CLEO" directory. 6 | 7 | ## РУССКИЙ 8 | * Автор: Vital. За помощь спасибо __Den_Spb__ and __DK22Pac__. 9 | * Описание: Этот скрипт создаёт цветные сферы вокруг пикапов оружия. Настройки внешнего вида сфер находятся в файле _weapl.ini_. 10 | * Установка: Скопируйте все файлы в папку "CLEO". -------------------------------------------------------------------------------- /Sanny Builder/Weapon spheres/WeapSph.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Weapon spheres/WeapSph.cs -------------------------------------------------------------------------------- /Sanny Builder/Weapon spheres/WeapSph.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VitalRus95/gta-scripts/d3d89b0a908e1fdc8cecf1d317e294f6d8c8c813/Sanny Builder/Weapon spheres/WeapSph.txt -------------------------------------------------------------------------------- /Sanny Builder/Weapon spheres/weapl.ini: -------------------------------------------------------------------------------- 1 | [SETT] 2 | ;General Settings 3 | usecor = 1 4 | usepar = 1 5 | [CORONA] 6 | ;Circle around weapon 7 | R = 0 8 | G = 0 9 | B = 200 10 | [PARTICLE] 11 | ;Light on the ground 12 | R = 200 13 | G = 200 14 | B = 0 --------------------------------------------------------------------------------