Roger125 Posted July 3, 2020 Share Posted July 3, 2020 (edited) Hello friends, I'm trying to adapt a pc mod for android but I'm stuck on some codes, the first one is to activate the jump trick is this: 0A8C: write_memory 9867628 size 4 value 1 virtual_protect 1 can you tell me how to activate cheats from a cleo file in gta sa android the second command is to use an external file 0A92: create_custom_thread "GOW\GOW1.gow" how can I load the code of this file without an external file can you help me with these two codes please Sorry my bad english Edited July 3, 2020 by Roger125 Link to comment Share on other sites More sharing options...
OrionSR Posted July 4, 2020 Share Posted July 4, 2020 (edited) 14 hours ago, Roger125 said: 0A8C: write_memory 9867628 size 4 value 1 virtual_protect 1 can you tell me how to activate cheats from a cleo file in gta sa android It is best to avoid hard coded addresses on Android. The offsets are different for each version. CleoA has a strategy for finding offsets based on labels. Find the address associated with the label "_ZN6CCheat15m_aCheatsActiveE" According to this remastered cheat sheet, the CHEAT_HIGHJUMP should be located at +68 from the address of the label. Contrary to the example code shown, the write operation should be limited to a single byte, size 1. Virtual_Protect 1 should not be necessary, virtual_protect 0 should work without crashing the game. Examples of using labels to find SA addresses using CleoA opcodes: My Example, Where I Leaned. 14 hours ago, Roger125 said: 0A92: create_custom_thread "GOW\GOW1.gow" how can I load the code of this file without an external file I don't think CleoA has an opcode for that, which is a disappointing omission. I can think of a hacky method to run an external script but I think the better strategy is to find another way to accomplish the same goal. You might want to integrate the external script into your main script. Or maybe re-work the external script to always be running but only activates when prompted by the calling script. Edited July 4, 2020 by OrionSR Roger125 1 Link to comment Share on other sites More sharing options...
Roger125 Posted July 4, 2020 Author Share Posted July 4, 2020 8 hours ago, OrionSR said: I don't think CleoA has an opcode for that, which is a disappointing omission. I can think of a hacky method to run an external script but I think the better strategy is to find another way to accomplish the same goal. You might want to integrate the external script into your main script. Or maybe re-work the external script to always be running but only activates when prompted by the calling script. and how do I make the script only fire when required by the main script Link to comment Share on other sites More sharing options...
Roger125 Posted July 4, 2020 Author Share Posted July 4, 2020 8 hours ago, OrionSR said: It is best to avoid hard coded addresses on Android. The offsets are different for each version. CleoA has a strategy for finding offsets based on labels. Find the address associated with the label "_ZN6CCheat15m_aCheatsActiveE" According to this remastered cheat sheet, the CHEAT_HIGHJUMP should be located at +68 from the address of the label. Contrary to the example code shown, the write operation should be limited to a single byte, size 1. Virtual_Protect 1 should not be necessary, virtual_protect 0 should work without crashing the game. Examples of using labels to find SA addresses using CleoA opcodes: My Example, Where I Leaned 0DD9:opcode not found, how do I fix it you know how the cheats.csi and cheats.fxt scripts work, since they seem to activate cheats without any problem Link to comment Share on other sites More sharing options...
OrionSR Posted July 4, 2020 Share Posted July 4, 2020 (edited) I don't know. It would depend on the purpose of the script. Inconsistencies with the example codes suggest that the original coder didn't really understand what they were doing. It would be worth the effort to understand and rebuild the original script into something you can control. A basic example though, is to have the support script wait in a loop until a global or cleo variable is set before continuing. The calling script would set the appropriate variable when it needed a support job done. 1 hour ago, Roger125 said: 0DD9:opcode not found, how do I fix it You may need to add the CleoA opcodes to SASCM.ini in Sanny's data\sa_mobile edit mode folder. I don't think these codes are included by default yet. The new remastered opcodes are commented out in this example but included for reference. Note: CleoA describes any version of Cleo for Android. These original CleoA opcodes were added by Alexander Blade, and are described as CleoAB in this addendum to be consistent with fastman92's documentation since he's taken creative control of CleoA for the Mobile v2 update. ; Opcodes added for Remastered version ; Xbox360, PS3 and WinStore(unused) ;0A8E=1,award_achievement %1d% ; remastered ;0A8F=0, ; remastered ;0A90=1, %1d% ; remastered ; CleoAB opcodes by Alexander Blade 0DD0=2,%1d% = get_label_pointer %2p% ; CleoAB 0DD1=2,%1d% = get_func_addr_by_cstr_name %2d% ; CleoAB 0DD2=1,context_call_func %1d% ; CleoAB 0DD3=2,context_set_reg %1d% value %2d% ; CleoAB 0DD4=2,%1d% = context_get_reg %2d% ; CleoAB 0DD6=1,get_game_version %1d% ; CleoAB 0DD7=1,%1d% = get_image_base ; CleoAB 0DD8=4,%1d% = read_memory %2d% size %3d% add_ib %4d% ; CleoAB 0DD9=5,write_memory %1d% value %2d% size %3d% add_ib %4d% protect %5d% ; CleoAB 0DDC=2,set_cleo_shared_var %1d% to %2d% ; CleoAB 0DDD=2,%1d% = get_shared_cleo_var %2d% ; CleoAB 0DE0=3,%1d% = get_touch_point_state %2d% mintime %3d% ; CleoAB 0DE1=5,%1d% = get_touch_slide_state from %2d% to %3d% mintime %4d% maxtime %5d% ; CleoAB 0DE2=1,%1d% = get_menu_button_state ; read opcode info before using ; CleoAB 0DE3=2,%1d% = get_menu_button_pressed mintime %2d% ; read opcode info before using ; CleoAB Addendum to sa_mobile\opcode.txt (so the codes show up in Sanny's Opcode Search Tool: (I thought I had a complete opcode.txt reference for CleoAB, I'll keep looking.) 0DD0: [email protected] = get_label_pointer @label ; CleoAB 0DD6: get_game_version [email protected] ; CleoAB 0DD8: [email protected] = read_memory [email protected] size 1 add_ib true ; CleoAB 0DD9: write_memory [email protected] value 1 size 1 add_ib true protect true ; CleoAB 0DDC: set_cleo_shared_var 0 to 10 ; CleoAB 0DDD: [email protected] = get_shared_cleo_var 0 ; CleoAB 1 hour ago, Roger125 said: you know how the cheats.csi and cheats.fxt scripts work, since they seem to activate cheats without any problem Yes. The script is a bit tricky to decompile but it's not locked deliberately. First make sure the CleoAB opcodes are included in SASCM.ini and set Sanny's edit mode to sa_mobile (click icon in lower right corner). Enable Sanny's debug option (gear icon) SKIP_SCM_HEADER. Sanny automatically decompiles .cs files as external scripts, but not .csi or .csa. Enable dubug option IGNORE_UNKNOWN. Sanny doesn't decompile the search labels properly, so this option allows those strings to be decompiled as HEX instead. If you open the .csi file with a hex editor it's easy to read the strings at the end of the file, and with a bit of effort convert them back to strings in your scripts. The examples I linked can be used as a template for the conversion. The labels in this script are: _ZN6CCheat17m_aCheatFunctionsE _ZN6CCheat15m_aCheatsActiveE Note that_ZN6CCheat15m_aCheatsActiveE is the same as the label I was suggesting. The Cheat script is using the same strategy that I suggested wrapped up in a nice panel display. However, in addition to setting specific CheatActive flags, which works great for mega-jump and other environmental cheats that can be turned on or off, the Cheat script can activate cheat functions that execute commands, like spawn a vehicle. I'm not terribly familiar with the cheat functions. Edited July 4, 2020 by OrionSR Roger125 1 Link to comment Share on other sites More sharing options...
Roger125 Posted July 4, 2020 Author Share Posted July 4, 2020 (edited) // This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013 {$CLEO .cs} //-------------MAIN--------------- thread 'GODOFWAR' :gow wait 0 if and 0ADC: test_cheat "GOWE" not actor.Dead($PLAYER_ACTOR) player.Defined($PLAYER_ACTOR) not actor.Driving($PLAYER_ACTOR) not actor.Model($PLAYER_ACTOR) == #SPECIAL10 jf @gow 0296: unload_special_actor 10 023C: load_special_actor 'KR' as 10 // models 290-299 model.Load(#KATANA) Model.Load(#BAT) jump @gow1 :gow1 wait 0 if and model.Available(#KATANA) Model.Available(#BAT) 023D: special_actor 10 loaded 0AAB: file_exists "CLEO\GOW\GOW1.gow" 0AAB: file_exists "CLEO\GOW\GOW2.gow" jf @gow1 fade 0 300 wait 300 //-+--End Threads 0ABA: end_custom_thread_named 'gow1' 0ABA: end_custom_thread_named 'gow2' //-+--Load New Threads 0A92: create_custom_thread "GOW\GOW1.gow" 0A92: create_custom_thread "GOW\GOW2.gow" 0A8C: write_memory 9867536 size 4 value 0 virtual_protect 0 0A8C: write_memory 9867628 size 4 value 1 virtual_protect 0 //-+--change player model actor.GiveWeaponAndAmmo($PLAYER_ACTOR, BASEBALLBAT, 1) actor.GiveWeaponAndAmmo($PLAYER_ACTOR, KATANA, 1) 09C7: change_player $PLAYER_CHAR model_to #SPECIAL10 0330: set_player $PLAYER_CHAR infinite_run 1 //0245: set_actor $PLAYER_ACTOR walk_style_to 'GOW' wait 200 Model.Destroy(#BAT) Model.Destroy(#KATANA) fade 1 300 jump @gow2 :gow2 wait 0 if and not actor.Driving($PLAYER_ACTOR) 0ADC: test_cheat "GOWD" not actor.Dead($PLAYER_ACTOR) jf @gow3 fade 0 300 wait 300 02AB: set_actor $PLAYER_ACTOR immunities BP 0 FP 0 EP 0 CP 0 MP 0 09C7: change_player $PLAYER_CHAR model_to #NULL 0ABA: end_custom_thread_named 'gow1' 0ABA: end_custom_thread_named 'gow2' Player.Build($PLAYER_CHAR) 0555: remove_weapon 8 from_actor $PLAYER_ACTOR 0A8C: write_memory 9867628 size 4 value 0 virtual_protect 0 0296: unload_special_actor 10 wait 200 fade 1 300 jump @gow :gow3 wait 0 if not actor.Dead($PLAYER_ACTOR) jf @gowend if and not Actor.Animation($PLAYER_ACTOR) == 'sword_1' not actor.Animation($PLAYER_ACTOR) == 'knife_1' not Actor.Animation($PLAYER_ACTOR) == 'sword_3' not actor.Animation($PLAYER_ACTOR) == 'knife_3' not Actor.Animation($PLAYER_ACTOR) == 'sword_2' not actor.Animation($PLAYER_ACTOR) == 'knife_2' not Actor.Animation($PLAYER_ACTOR) == "sword_5b" not actor.Animation($PLAYER_ACTOR) == "sword_5d" jf @gow2 if and not Actor.Animation($PLAYER_ACTOR) == 'sword_4' not actor.Animation($PLAYER_ACTOR) == 'knife_4' 8491: not actor $PLAYER_ACTOR has_weapon 4 8491: not actor $PLAYER_ACTOR has_weapon 8 jf @gow2 actor.GiveWeaponAndAmmo($PLAYER_ACTOR, KATANA, 1) jump @gow2 :gowend wait 0 if not actor.Dead($PLAYER_ACTOR) jf @gowend wait 10 02AB: set_actor $PLAYER_ACTOR immunities BP 0 FP 0 EP 0 CP 0 MP 0 09C7: change_player $PLAYER_CHAR model_to #NULL 0ABA: end_custom_thread_named 'gow1' 0ABA: end_custom_thread_named 'gow2' Player.Build($PLAYER_CHAR) 0555: remove_weapon 8 from_actor $PLAYER_ACTOR 0A8C: write_memory 9867628 size 4 value 0 virtual_protect 0 0296: unload_special_actor 10 jump @gow look at this is the mod i want to convert for android to see if you can help me. Edited July 7, 2020 by Roger125 Link to comment Share on other sites More sharing options...
Roger125 Posted July 5, 2020 Author Share Posted July 5, 2020 15 hours ago, OrionSR said: Find the address associated with the label "_ZN6CCheat15m_aCheatsActiveE" According to this remastered cheat sheet, the CHEAT_HIGHJUMP should be located at +68 from the address of the label. Contrary to the example code shown, the write operation should be limited to a single byte, size 1. Virtual_Protect 1 should not be necessary, virtual_protect 0 should work without crashing the game. Examples of using labels to find SA addresses using CleoA opcodes: My Example, Where I Leaned. What do you mean with the address associated with the label is a hexadecimal number or something like that and what do I have to do with the address of the trick Link to comment Share on other sites More sharing options...
OrionSR Posted July 5, 2020 Share Posted July 5, 2020 2 hours ago, Roger125 said: What do you mean with the address associated with the label is a hexadecimal number Yes. Please refer to the examples I posted before. I'll see if I can find a CleoA script that uses labels in another context. When you get the magic hex trick right, you'll get the address of the label. This label marks the start of the CheatsActive array. Each byte in the array is associated with a specific cheat in the sequence listed on the Remastered Cheats Sheet. (I'm assuming the cheat offsets are the same on remastered and mobile but can't verify this assumption. The Cheats script for CleoA can probably provide more specific information if you can decode it's operation.) 2 hours ago, Roger125 said: what do I have to do with the address of the trick The first byte in the array will be for CHEAT_WEAPON1. You need to add +1 to the address for each cheat in the list until you get to the highjump cheat. If I did the math correctly that offset is +68 from the address provided by the magic hex trick. If you have CheatEngine on Android you might be able to step through this process in active memory so you get a better idea of what the script is trying to do. I did this process on PC using HxD's Main Memory tool (admin mode). I subtracted the address the start of the CheatsActive array from the address in your example and found a difference of 60. It looks like there are 8 cheats added to mobile between Weapon1 and HighJump, so I figure +68 should hit the mark. If not, that's where CheatEngine shines. It can show which flags are changing as you use the cheats script so you can zero in on the proper flag. Link to comment Share on other sites More sharing options...
OrionSR Posted July 5, 2020 Share Posted July 5, 2020 An example of a CleoA script that uses labels to find addresses: Teleport 2Marker - This is an older version of my Android teleport script that still has the magic hex strings and CleoA opcodes. I haven't tested it recently. IIRC, the fade timing doesn't work right on Android, I eventually just took the fades out. If you are playing on SA mobile v2 then the expected widget may not work - I think this version was expecting the radar widget to be held, but they added a widget somewhere before the radar widget in v2 so it might work with ID 161 instead. (Might work by holding the weapon widget as it is. Sorry, I don't have a good widget map.) It might be easier to code the trigger with CleoA opcodes instead. Hm... That's a terrible hold routine too. This script will need a bit of work to be good at it's job but it's still a good example of how labels are used to find address. You should be able to compile and decompile this script to see how the hex constructs are managed by Sanny. Spoiler {$CLEO .csa} // SASCM.ini 14.12.2013 //2marker.txt 03A4: name_thread '2MARKER' //Author: [email protected] //OSR/CG4Android: Adapted for CleoA by OrionSR //OSR/CG4Android: Any-version address codes by Markuza97 // go to the map and set the red marker // invoke the 2marker script from the CleoA menu // or pre-load the script and then set the marker { //----------------------------------------------------- [email protected], X coordinate [email protected], Y coordinate [email protected], Z coordinate [email protected], icon ID [email protected], angle [email protected], marker index calcs to read addresses [email protected], start of marker structure [email protected], marker index address //----------------------------------------------------- } // Markuza97's any-version address codes - read once 0DD0: [email protected] = get_label_addr @_ZN6CRadar13ms_RadarTraceE 0DD1: [email protected] = get_func_addr_by_cstr_name [email protected] // start of marker structure 0DD0: [email protected] = get_label_addr @gMobileMenu 0DD1: [email protected] = get_func_addr_by_cstr_name [email protected] // start of... menu data? 000A: [email protected] += 0x48 // offset to marker index :2marker_01 0001: wait 0 ms 00D6: if 0256: player $PLAYER_CHAR defined 004D: jump_if_false @2marker_01 00D6: if 03EE: player $PLAYER_CHAR controllable 0001: wait 0 ms 00D6: if 0A51: is_widget_pressed 160 004D: jump_if_false @2marker_01 0001: wait 2000 ms 00D6: if 0A51: is_widget_pressed 160 004D: jump_if_false @2marker_01 0050: gosub @sub_read_marker_X_Y_ID // to [email protected] [email protected] [email protected] 00D6: if 8039: not [email protected] == 41 // prevent teleport if not marker id 004D: jump_if_false @2marker_08 0001: wait 1000 ms 0002: jump @2marker_01 //ZAZ's original codes start here //OSR/ updated to SASCM.ini 14.12.2013 :2marker_08 0172: [email protected] = actor $PLAYER_ACTOR Z_angle 0169: set_fade_color_RGB 0 0 0 016A: fade 0 time 500 0001: wait 500 ms 01B4: set_player $PLAYER_CHAR can_move 0 04BB: select_interior 0 04FA: reset_sky_colors_with_fade 0 057E: set_radar_grey 0 04E4: refresh_game_renderer_at [email protected] [email protected] 03CB: set_rendering_origin_at [email protected] [email protected] [email protected] 00D6: if 0256: player $PLAYER_CHAR defined 004D: jump_if_false @2marker_012 0050: gosub @sub_read_marker_X_Y_ID // to [email protected] [email protected] [email protected] 00D6: if 0039: [email protected] == 41 // prevent teleport if not marker id 004D: jump_if_false @2marker_012 0860: link_actor $PLAYER_ACTOR to_interior 0 00A1: put_actor $PLAYER_ACTOR at [email protected] [email protected] -100.0 0173: set_actor $PLAYER_ACTOR Z_angle_to [email protected] 0373: set_camera_directly_behind_player 02EB: restore_camera_with_jumpcut :2marker_012 0001: wait 0 ms 00D6: if 0256: player $PLAYER_CHAR defined 004D: jump_if_false jf @2marker_012 0001: wait 1500 ms 016A: fade 1 time 1000 :2marker_013 00D6: if 016B: fading 004D: jump_if_false @2marker_014 0001: wait 0 ms 0002: jump @2marker_013 :2marker_014 0001: wait 0 ms 00D6: if 0256: player $PLAYER_CHAR defined 004D: jump_if_false @2marker_014 01B4: set_player $PLAYER_CHAR can_move 1 :2marker_015 //004E: end_thread 0002: jump @2marker_01 :sub_read_marker_X_Y_ID // Markuza97's any-version address codes 0DD8: [email protected] = read_mem_addr [email protected] size 2 add_ib 0 // read marker index 0012: [email protected] *= 0x28 // marker record size 000A: [email protected] += [email protected] // start of marker structure 000A: [email protected] += 0x8 // offset to X coord 0DD8: [email protected] = read_mem_addr [email protected] size 4 add_ib 0 // read X coord 000A: [email protected] += 0x4 // offset to Y coord 0DD8: [email protected] = read_mem_addr [email protected] size 4 add_ib 0 // read Y coord 000A: [email protected] += 0x18 // offset to icon ID 0DD8: [email protected] = read_mem_addr [email protected] size 1 add_ib 0 // read icon ID 0051: return // Markuza97's magic hex codes :gMobileMenu hex "gMobileMenu" 00 end :_ZN6CRadar13ms_RadarTraceE hex "_ZN6CRadar13ms_RadarTraceE" 00 end Roger125 1 Link to comment Share on other sites More sharing options...
Roger125 Posted July 5, 2020 Author Share Posted July 5, 2020 3 hours ago, OrionSR said: Un ejemplo de un script CleoA que usa etiquetas para buscar direcciones: Teleport 2Marker: esta es una versión anterior de mi script de teletransporte Android que todavía tiene las cadenas mágicas hexadecimales y los códigos de operación CleoA. No lo he probado recientemente. IIRC, el tiempo de desvanecimiento no funciona bien en Android, eventualmente simplemente eliminé los desvanecimientos. Si está jugando en SA mobile v2, entonces el widget esperado puede no funcionar: creo que esta versión esperaba que se mantuviera el widget de radar, pero agregaron un widget en algún lugar antes del widget de radar en v2, por lo que podría funcionar con ID 161. (Podría funcionar manteniendo el widget de arma como está. Lo siento, no tengo un buen mapa de widgets). En su lugar, podría ser más fácil codificar el disparador con códigos de operación CleoA. Hm ... Esa también es una rutina de espera terrible. Este script necesitará un poco de trabajo para ser bueno en su trabajo, pero sigue siendo un buen ejemplo de cómo se usan las etiquetas para encontrar la dirección. Debería poder compilar y descompilar este script para ver cómo Sanny gestiona las construcciones hexadecimales. can you help me with something else I am working the scripts separately and one of the scripts is to add sound effects and I am using these opcodes 0952: load_soundtrack 1 0954: start_playing_loaded_soundtrack these opcodes load the audio from beats.osw, already created the new beats.osw file with your .idx I put 6 audios that should be activated when the player attacks with a sword, but in the game the sounds interrupt each other or cut off as I can solve it Link to comment Share on other sites More sharing options...
OrionSR Posted July 5, 2020 Share Posted July 5, 2020 No, sorry. I've got a list of constants for Easy Audio Events that can be played without loading the wav first that I use to add Bells & Whistles to my cleo script but I don't have any experience with audio beyond that. Spoiler [SOUND] Sound_Ceiling_Vent_Land=1002 Sound_Bonnet_Dent=1009 Sound_Crane_Enter=1019 Sound_Crane_Move_Start=1020 Sound_Crane_Move_Stop=1021 Sound_Crane_Exit=1022 Sound_Wheel_Of_Fortune_Clacker=1027 Sound_Shutter_Door_Start=1035 Sound_Shutter_Door_Stop=1036 Sound_Parachute_Open=1039 Sound_Ammunation_Buy_Weapon=1052 Sound_Ammunation_Buy_Weapon_Denied=1053 Sound_Shop_Buy=1054 Sound_Shop_Buy_Denied=1055 Sound_Race_321=1056 Sound_Race_Go=1057 Sound_Part_Mission_Complete=1058 Sound_Gogo_Track_Start=1062 Sound_Gogo_Track_Stop=1063 Sound_Dual_Track_Start=1068 Sound_Dual_Track_Stop=1069 Sound_Bee_Track_Start=1076 Sound_Bee_Track_Stop=1077 Sound_Roulette_Add_Cash=1083 Sound_Roulette_Remove_Cash=1084 Sound_Roulette_No_Cash=1085 Sound_Bike_Packer_Clunk=1095 Sound_Award_Track_Start=1097 Sound_Award_Track_Stop=1098 Sound_Mesh_Gate_Open_Start=1100 Sound_Mesh_Gate_Open_Stop=1101 Sound_Punch_Ped=1130 Sound_Ammunation_Gun_Collision=1131 Sound_Camera_Shot=1132 Sound_Buy_Car_Mod=1133 Sound_Buy_Car_Respray=1134 Sound_Baseball_Bat_Hit_Ped=1135 Sound_Stamp_Ped=1136 Sound_Checkpoint_Amber=1137 Sound_Checkpoint_Green=1138 Sound_Checkpoint_Red=1139 Sound_Car_Smash_Car=1140 Sound_Car_Smash_Gate=1141 Sound_Otb_Track_Start=1142 Sound_Otb_Track_Stop=1143 Sound_Ped_Hit_Water_Splash=1144 Sound_Restaurant_Tray_Collision=1145 Sound_Sweets_Horn=1147 Sound_Magnet_Vehicle_Collision=1148 Sound_Property_Purchased=1149 Sound_Pickup_Standard=1150 Sound_Garage_Door_Start=1153 Sound_Garage_Door_Stop=1154 Sound_Minitank_Fire=1157 Sound_Explosion=1159 Sound_Ped_Collapse=1163 Sound_Shutter_Door_Slow_Start=1165 Sound_Shutter_Door_Slow_Stop=1166 Sound_Tempest_Track_Start=1181 Sound_Tempest_Track_Stop=1182 Sound_Driving_Award_Track_Start=1183 Sound_Driving_Award_Track_Stop=1184 Sound_Bike_Award_Track_Start=1185 Sound_Bike_Award_Track_Stop=1186 Sound_Pilot_Award_Track_Start=1187 Sound_Pilot_Award_Track_Stop=1188 Sound_Ped_Death_Crunch=1189 Sound_unlisted_Slap_Sound=1190 Link to comment Share on other sites More sharing options...
Roger125 Posted July 6, 2020 Author Share Posted July 6, 2020 18 hours ago, OrionSR said: No, sorry. I've got a list of constants for Easy Audio Events that can be played without loading the wav first that I use to add Bells & Whistles to my cleo script but I don't have any experience with audio beyond that I already read the examples you left me but I don't understand. extract this from cheats.csi and activate the weapons package 1 can you explain it to me {$CLEO} thread 'CHEATS' :CHEATS_940 0DD0: [email protected] = get_label_pointer @CHEATS_2687 // CleoAB 0DD1: [email protected] = get_func_addr_by_cstr_name [email protected] // CleoAB [email protected] *= 4 005A: [email protected] += [email protected] // (int) 0DD8: [email protected] = read_memory [email protected] size 4 add_ib 0 // CleoAB if not [email protected] == 0 else_jump @CHEATS_1015 0DD2: context_call_func [email protected] // CleoAB jump @CHEATS_1029 :CHEATS_1015 0DD9: write_memory [email protected] value [email protected] size 1 add_ib 0 protect 0 // CleoAB :CHEATS_1029 if [email protected] == 1 else_jump @CHEATS_1065 03E5: show_text_box 'CHTACT' jump @CHEATS_1076 :CHEATS_1065 03E5: show_text_box 'CHTDEA' :CHEATS_1076 jump @CHEATS_1090 :CHEATS_1090 08DA: remove_panel [email protected] 01B4: set_player $PLAYER_CHAR can_move 1 0575: set_actor $PLAYER_ACTOR keep_position 0 0DDC: set_cleo_shared_var 0 to 0 // CleoAB :CHEATS_1115 end_thread :CHEATS_2687 hex 5F 5A 4E 36 43 43 68 65 61 74 31 37 6D 5F 61 43 68 65 61 74 46 75 6E 63 74 69 6F 6E 73 45 00 5F 5A 4E 36 43 43 68 65 61 74 31 35 6D 5F 61 43 68 65 61 74 73 41 63 74 69 76 65 Link to comment Share on other sites More sharing options...
Roger125 Posted July 6, 2020 Author Share Posted July 6, 2020 (edited) On 7/4/2020 at 10:29 PM, OrionSR said: The first byte in the array will be for CHEAT_WEAPON1. You need to add +1 to the address for each cheat in the list until you get to the highjump cheat. If I did the math correctly that offset is +68 from the address provided by the magic hex trick. If you have CheatEngine on Android you might be able to step through this process in active memory so you get a better idea of what the script is trying to do. I did this process on PC using HxD's Main Memory tool (admin mode). I subtracted the address the start of the CheatsActive array from the address in your example and found a difference of 60. It looks like there are 8 cheats added to mobile between Weapon1 and HighJump, so I figure +68 should hit the mark. If not, that's where CheatEngine shines. It can show which flags are changing as you use the cheats script so you can zero in on the proper flag. I don't understand the I do not understand what displacement is + 1, + 68 and how do I find the cheat engine cheat values,how do i set it up What values do I have to set to activate and deactivate the trick Edited July 6, 2020 by Roger125 Link to comment Share on other sites More sharing options...
OrionSR Posted July 6, 2020 Share Posted July 6, 2020 2 hours ago, Roger125 said: extract this from cheats.csi and activate the weapons package 1 can you explain it to me No, not really. The codes don't make all that much sense out of context, and the entire script is more than I'd care to understand or explain. I've give you clue though. You left out the END of the HEX construct and the data that follows. Sanny thought it found a good opcode at the end but was wrong. That data is actually part of the hex string constructs. :CHEATS_2687 hex 5F 5A 4E 36 43 43 68 65 61 74 31 37 6D 5F 61 43 68 65 61 74 46 75 6E 63 74 69 6F 6E 73 45 00 5F 5A 4E 36 43 43 68 65 61 74 31 35 6D 5F 61 43 68 65 61 74 73 41 63 74 69 76 65 end 0045: // (float) Should be: :CHEATS_2687 hex 5F 5A 4E 36 43 43 68 65 61 74 31 37 6D 5F 61 43 68 65 61 74 46 75 6E 63 74 69 6F 6E 73 45 00 5F 5A 4E 36 43 43 68 65 61 74 31 35 6D 5F 61 43 68 65 61 74 73 41 63 74 69 76 65 45 00 end The null bytes (00) mark the end of the string. There are actually two strings here with a label in between. :CHEATS_2687 hex 5F 5A 4E 36 43 43 68 65 61 74 31 37 6D 5F 61 43 68 65 61 74 46 75 6E 63 74 69 6F 6E 73 45 00 end :CHEATS_2718 hex 5F 5A 4E 36 43 43 68 65 61 74 31 35 6D 5F 61 43 68 65 61 74 73 41 63 74 69 76 65 45 00 end The hex data above is much more user friendly when entered as a string. The strings use in this script are: _ZN6CCheat17m_aCheatFunctionsE _ZN6CCheat15m_aCheatsActiveE You should be able to fix your hex strings based on a similar example in my teleport script or other examples. :gMobileMenu hex "gMobileMenu" 00 end :_ZN6CRadar13ms_RadarTraceE hex "_ZN6CRadar13ms_RadarTraceE" 00 end 1 hour ago, Roger125 said: I don't understand the + 1, + 68 This issue has already been explained. However, I found an easy map for cheat indexes. Check out gtasa.cheats.fxt: CHT_68 HIGHJUMP 1 hour ago, Roger125 said: how do I find the cheat engine cheat values,how do i set it up I'm no longer have a working rooted device that can run Cheat Engine on Android. Sorry. My suggestion, start with something simple: Create a new .csi script that, when executed from the cleo menu, will set the HighJump CheatsActive flag to 01 before ending. Link to comment Share on other sites More sharing options...
Roger125 Posted July 6, 2020 Author Share Posted July 6, 2020 47 minutes ago, OrionSR said: I'm no longer have a working rooted device that can run Cheat Engine on Android. Sorry. My suggestion, start with something simple: Create a new .csi script that, when executed from the cleo menu, will set the HighJump CheatsActive flag to 01 before ending. I already made the scripts work properly separately, as I make them work together as in the original script above 51 minutes ago, OrionSR said: This issue has already been explained. However, I found an easy map for cheat indexes. Check out gtasa.cheats.fxt: what I mean is how I write the +68 in the opcode Link to comment Share on other sites More sharing options...
OrionSR Posted July 6, 2020 Share Posted July 6, 2020 0DD0: [email protected] = get_label_pointer @_ZN6CCheat15m_aCheatsActiveE // CleoAB 0DD1: [email protected] = get_func_addr_by_cstr_name [email protected] // CleoAB [email protected] += 68 Roger125 1 Link to comment Share on other sites More sharing options...
Roger125 Posted July 7, 2020 Author Share Posted July 7, 2020 thanks, I just need to join all the scripts can you help me with that Link to comment Share on other sites More sharing options...
Roger125 Posted July 7, 2020 Author Share Posted July 7, 2020 I already managed to activate the trick now as I deactivate it Link to comment Share on other sites More sharing options...
OrionSR Posted July 7, 2020 Share Posted July 7, 2020 (edited) These are byte flags. "Flags" by nature, should always be 0 (false) or 1 (true). These flags are described as CheatsActive, so 1 is active and 0 is not. If a setting of 1 turns off the cheat then the description would need to be changed to CheatInactive. This is a general rule that you should be able to apply to all flags. (Sometimes the descriptions are wrong, but I think all of those inconsistencies have been resolved by now.) The same rule applies to conditional commands used with IF statements. 0 = False, No, Off, (Inactive, Disabled) 1 = True, Yes, On, (Active, Enabled) Edited July 7, 2020 by OrionSR Link to comment Share on other sites More sharing options...
Roger125 Posted July 7, 2020 Author Share Posted July 7, 2020 (edited) 1 hour ago, OrionSR said: Estas son banderas de bytes. "Banderas" por naturaleza, siempre deben ser 0 (falso) o 1 (verdadero). Estas banderas se describen como CheatsActive, por lo que 1 está activo y 0 no. Si una configuración de 1 desactiva el truco, entonces la descripción debería cambiarse a CheatInactive. Esta es una regla general que debería poder aplicar a todas las banderas. (A veces las descripciones son incorrectas, pero creo que todas esas inconsistencias ya se han resuelto). La misma regla se aplica a los comandos condicionales utilizados con las declaraciones IF. 0 = Falso, No, Apagado, (Inactivo, Deshabilitado) 1 = Verdadero, Sí, Encendido, (Activo, Habilitado) I already tried it in the first command and if it is activated and deactivated but further down in the code I need to deactivate the trick but in the second memory write the trick does not work, I have to release the label or something like that. please can you tell me how I put the scripts so that they work together Edited July 7, 2020 by Roger125 Link to comment Share on other sites More sharing options...
OrionSR Posted July 8, 2020 Share Posted July 8, 2020 9 hours ago, Roger125 said: please can you tell me how I put the scripts so that they work together Maybe. I'll give it a shot since I made the suggestion. But I'm not particularly interested in understanding how the whole script works. Sometimes I can identify critical errors though. It's a good idea to post your code anyway. I'm having a hard time figuring out your progress, and if you don't show your code then no one else can help either. Also, please describe in detail what this script should do. How will I know when it's working correctly? Link to comment Share on other sites More sharing options...
Roger125 Posted July 8, 2020 Author Share Posted July 8, 2020 12 hours ago, OrionSR said: Maybe. I'll give it a shot since I made the suggestion. But I'm not particularly interested in understanding how the whole script works. Sometimes I can identify critical errors though. It's a good idea to post your code anyway. I'm having a hard time figuring out your progress, and if you don't show your code then no one else can help either. Also, please describe in detail what this script should do. How will I know when it's working correctly? Well from what I understand the main script loads the two scripts when the mod activation keys are pressed and these in turn are activated only when attacked with a katana or a knife. then when the keys are pressed to deactivate the mod or the player dies the process of those two scripts ends this is the progress it took {$CLEO .cs} thread 'GODOFWAR' :gow wait 0 if and 00E1: player 3 pressed_key 4 00E1: player 3 pressed_key 7 8118: not actor $PLAYER_ACTOR dead 0256: player $PLAYER_ACTOR defined 80DF: not actor $PLAYER_ACTOR driving 82F2: not actor $PLAYER_ACTOR model == #SPECIAL10 jf @gow 0296: unload_special_actor 10 023C: load_special_actor 'KR' as 10 // models 290-299 0247: load_model #KATANA 0247: load_model #BAT jump @gow1 :gow1 wait 0 if and 0248: model #KATANA available 0248: model #BAT available 023D: special_actor 10 loaded jf @gow1 fade 0 300 wait 300 0DD0: [email protected] = get_label_pointer @trucos_perro ; CleoAB 0DD1: [email protected] = get_func_addr_by_cstr_name [email protected] // CleoAB [email protected] += 68 0DD9: write_memory [email protected] value 1 size 1 add_ib 0 protect 0 ; CleoAB 01B2: give_actor $PLAYER_ACTOR weapon 5 ammo 1 // Load the weapon model before using this 01B2: give_actor $PLAYER_ACTOR weapon 8 ammo 1 // Load the weapon model before using this 09C7: change_player $PLAYER_CHAR model_to #SPECIAL10 0330: set_player $PLAYER_CHAR infinite_run 1 wait 200 0249: release_model #BAT 0249: release_model #KATANA fade 1 300 jump @gow2 :gow2 wait 0 if and 80DF: not actor $PLAYER_ACTOR driving 00E1: player 3 pressed_key 4 00E1: player 3 pressed_key 8 8118: not actor $PLAYER_ACTOR dead jf @gow3 fade 0 300 wait 300 02AB: set_actor $PLAYER_ACTOR immunities BP 0 FP 0 EP 0 CP 0 MP 0 09C7: change_player $PLAYER_CHAR model_to #NULL 070D: rebuild_player $PLAYER_CHAR 0555: remove_weapon 8 from_actor $PLAYER_ACTOR 0555: remove_weapon 8 from_actor $PLAYER_ACTOR 0DD9: write_memory [email protected] value 0 size 1 add_ib 0 protect 0 ; CleoAB 0296: unload_special_actor 10 wait 200 fade 1 300 jump @gow :gow3 wait 0 if 8118: not actor $PLAYER_ACTOR dead jf @gowend 8611: not actor $PLAYER_ACTOR performing_animation 'sword_1' 8611: not actor $PLAYER_ACTOR performing_animation 'knife_1' 8611: not actor $PLAYER_ACTOR performing_animation 'sword_3' 8611: not actor $PLAYER_ACTOR performing_animation 'knife_3' 8611: not actor $PLAYER_ACTOR performing_animation 'sword_2' 8611: not actor $PLAYER_ACTOR performing_animation 'knife_2' 8611: not actor $PLAYER_ACTOR performing_animation 'sword_5b' 8611: not actor $PLAYER_ACTOR performing_animation 'sword_5d' jf @gow2 if and 8611: not actor $PLAYER_ACTOR performing_animation 'sword_4' 8611: not actor $PLAYER_ACTOR performing_animation 'knife_4' 8491: not actor $PLAYER_ACTOR has_weapon 4 8491: not actor $PLAYER_ACTOR has_weapon 8 jf @gow2 01B2: give_actor $PLAYER_ACTOR weapon 8 ammo 1 // Load the weapon model before using this jump @gow2 :gowend wait 0 if 8118: not actor $PLAYER_ACTOR dead jf @gowend wait 10 02AB: set_actor $PLAYER_ACTOR immunities BP 0 FP 0 EP 0 CP 0 MP 0 09C7: change_player $PLAYER_CHAR model_to #NULL 070D: rebuild_player $PLAYER_CHAR 0DD9: write_memory [email protected] value 0 size 1 add_ib 0 protect 0 ; CleoAB 0296: unload_special_actor 10 jump @gow :trucos_perro hex "_ZN6CCheat15m_aCheatsActiveE" 00 end 1 script // This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013 {$CLEO .csa} //-------------MAIN--------------- thread 'gow1' :god1 wait 0 if 0256: player $PLAYER_ACTOR defined jf @god1 if or 0611: actor $PLAYER_ACTOR performing_animation "sword_1" 0611: actor $PLAYER_ACTOR performing_animation "knife_1" jf @god2 0209: [email protected] = random_int_in_ranges 1 3 if [email protected] == 1 jf @god111 0952: load_soundtrack 1 0954: start_playing_loaded_soundtrack jump @god11 :god111 wait 0 0952: load_soundtrack 4 0954: start_playing_loaded_soundtrack jump @god11 :god11 wait 0 if and 8611: not actor $PLAYER_ACTOR performing_animation "sword_1" 8611: not actor $PLAYER_ACTOR performing_animation "knife_1" jf @god11 wait 0 jump @god1 :god2 wait 0 if or 0611: actor $PLAYER_ACTOR performing_animation "sword_3" 0611: actor $PLAYER_ACTOR performing_animation "knife_3" jf @god3 0952: load_soundtrack 3 0954: start_playing_loaded_soundtrack jump @god22 :god22 wait 0 if and 8611: not actor $PLAYER_ACTOR performing_animation "sword_3" 8611: not actor $PLAYER_ACTOR performing_animation "knife_3" jf @god22 wait 0 jump @god1 :god4 wait 0 if or 0611: actor $PLAYER_ACTOR performing_animation "sword_2" 0611: actor $PLAYER_ACTOR performing_animation "knife_2" jf @god1 0209: [email protected] = random_int_in_ranges 1 3 if [email protected] == 1 jf @god444 0952: load_soundtrack 0 0954: start_playing_loaded_soundtrack jump @god44 :god444 wait 0 0952: load_soundtrack 12 0954: start_playing_loaded_soundtrack jump @god44 :god44 wait 0 if and 8611: not actor $PLAYER_ACTOR performing_animation "sword_2" 8611: not actor $PLAYER_ACTOR performing_animation "knife_2" jf @god44 wait 0 jump @god1 :god3 wait 0 if 0611: actor $PLAYER_ACTOR performing_animation "sword_5b" jf @god4 0952: load_soundtrack 0 0954: start_playing_loaded_soundtrack jump @god5 :god5 wait 0 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor $PLAYER_ACTOR with_offset 0.0 0.0 -4.5 if 86BD: not no_obstacles_between [email protected] [email protected] [email protected] and [email protected] [email protected] [email protected] solid 1 car 1 actor 0 object 1 particle 0 jf @god5 0952: load_soundtrack 10 0954: start_playing_loaded_soundtrack wait 0 jump @god6 :god6 wait 0 if and 8611: not actor $PLAYER_ACTOR performing_animation "sword_5b" 8611: not actor $PLAYER_ACTOR performing_animation "sword_5d" jf @god6 wait 0 jump @god1 2script // This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013 {$CLEO .csi} //-------------MAIN--------------- thread 'gow2' {0390: load_txd_dictionary 'gowhud' 038F: load_texture "sword" as 110 // Load dictionary with 0390 first 038D: draw_texture 110 position 540.0 60.0 size 175.0 87.5 RGBA 255 255 255 255 //middle point to draw} const PlayerA = $player_actor end 062A: change_float_stat 24 to 1440.0 0223: set_actor $PLAYER_ACTOR health_to 2000 0247: load_model #KATANA 0247: load_model #KNIFECUR 04ED: load_animation "sword" :god1 wait 0 if and 0248: model #KATANA available 0248: model #KNIFECUR available 0256: player $PLAYER_ACTOR defined 04EE: animation "sword" loaded jf @god1 if or 02D8: actor $PLAYER_ACTOR current_weapon == 4 02D8: actor $PLAYER_ACTOR current_weapon == 8 jf @god1 jump @gof11 :gof11 wait 0 if or 0611: actor PlayerA performing_animation "sword_1" 0611: actor PlayerA performing_animation "knife_1" jf @gof22 015D: set_gamespeed 0.5 02AB: set_actor PlayerA immunities BP 1 FP 1 EP 1 CP 1 MP 1 01B2: give_actor $PLAYER_ACTOR weapon 4 ammo 1 // Load the weapon model before using this 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 0.0 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 0.5 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 0.0 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 0.5 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 1.0 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 3.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 1.5 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 4.0 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 1.0 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 3.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 1.5 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 4.0 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 0.0 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 0.5 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 0.0 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 0.5 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 1.0 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 3.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 1.5 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 4.0 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 1.0 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 3.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 1.5 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 4.0 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 0.0 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 0.5 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 0.0 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 0.5 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 1.0 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 3.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 1.5 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 4.0 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 1.0 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 3.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 1.5 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 4.0 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 wait 30 02AB: set_actor PlayerA immunities BP 0 FP 0 EP 0 CP 0 MP 0 015D: set_gamespeed 1.0 wait 100 0555: remove_weapon 4 from_actor $PLAYER_ACTOR 01B2: give_actor $PLAYER_ACTOR weapon 8 ammo 1 // Load the weapon model before using this jump @god1 :gof22 wait 0 if or 0611: actor PlayerA performing_animation "sword_2" 0611: actor PlayerA performing_animation "knife_2" jf @gof33 015D: set_gamespeed 0.5 02AB: set_actor PlayerA immunities BP 1 FP 1 EP 1 CP 1 MP 1 01B2: give_actor $PLAYER_ACTOR weapon 4 ammo 1 // Load the weapon model before using this 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 5.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 1.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -5.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 wait 30 02AB: set_actor PlayerA immunities BP 0 FP 0 EP 0 CP 0 MP 0 015D: set_gamespeed 1.0 wait 100 0555: remove_weapon 4 from_actor $PLAYER_ACTOR 01B2: give_actor $PLAYER_ACTOR weapon 8 ammo 1 // Load the weapon model before using this jump @god1 :gof33 wait 0 if or 0611: actor PlayerA performing_animation "sword_3" 0611: actor PlayerA performing_animation "knife_3" jf @gof44 015D: set_gamespeed 0.5 02AB: set_actor PlayerA immunities BP 1 FP 1 EP 1 CP 1 MP 1 01B2: give_actor $PLAYER_ACTOR weapon 4 ammo 1 // Load the weapon model before using this 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 1.5 0.0 1.0 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -1.5 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 1.5 1.0 1.0 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -1.5 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 1.5 0.5 1.0 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -1.5 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 1.0 0.0 1.0 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -1.0 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 1.0 1.0 1.0 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -1.0 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 1.0 0.5 1.0 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -1.0 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 0.0 1.0 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 1.0 1.0 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] 6@ energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.5 0.5 1.0 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -0.5 2.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 wait 30 02AB: set_actor PlayerA immunities BP 0 FP 0 EP 0 CP 0 MP 0 015D: set_gamespeed 1.0 wait 100 0555: remove_weapon 4 from_actor $PLAYER_ACTOR 01B2: give_actor $PLAYER_ACTOR weapon 8 ammo 1 // Load the weapon model before using this jump @god1 :gof44 wait 0 if or 0611: actor PlayerA performing_animation "sword_4" 0611: actor PlayerA performing_animation "knife_4" jf @gof55 015D: set_gamespeed 0.5 02AB: set_actor PlayerA immunities BP 1 FP 1 EP 1 CP 1 MP 1 01B2: give_actor $PLAYER_ACTOR weapon 4 ammo 1 // Load the weapon model before using this 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 0.0 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 1.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 0.5 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 1.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 0.0 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 1.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 0.5 1.5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 1.5 -0.8 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 85 wait 30 02AB: set_actor PlayerA immunities BP 0 FP 0 EP 0 CP 0 MP 0 015D: set_gamespeed 1.0 wait 100 0555: remove_weapon 4 from_actor $PLAYER_ACTOR 01B2: give_actor $PLAYER_ACTOR weapon 8 ammo 1 // Load the weapon model before using this jump @god1 :gof55 wait 0 if and 0818: actor $PLAYER_ACTOR in_air 00E1: player 3 pressed_key 1 80DF: not actor $PLAYER_ACTOR driving jf @gof66 wait 0 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor $PLAYER_ACTOR with_offset 0.0 0.0 -4.5 if 06BD: no_obstacles_between [email protected] [email protected] [email protected] and [email protected] [email protected] [email protected] solid 1 car 1 actor 0 object 1 particle 0 jf @gof66 0393: actor $PLAYER_ACTOR perform_animation "sword_5b" at 0.5 times_normal_rate 0812: AS_actor $PLAYER_ACTOR perform_animation "sword_5b" IFP "sword" framedelta 22.0 loopA 1 lockX 1 lockY 1 lockF 0 time -2 // versionB 015D: set_gamespeed 0.5 02AB: set_actor PlayerA immunities BP 1 FP 1 EP 1 CP 1 MP 1 01B2: give_actor $PLAYER_ACTOR weapon 4 ammo 1 // Load the weapon model before using this wait 20 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 5.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 1.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -5.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 -4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 -4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 5.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 1.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -5.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 -4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 wait 10 jump @god555 :god555 wait 0 02AB: set_actor PlayerA immunities BP 1 FP 1 EP 1 CP 1 MP 1 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 5.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 1.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -5.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 -4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 -4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 5.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 1.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -5.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 -4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor $PLAYER_ACTOR with_offset 0.0 0.0 -1.5 if 86BD: not no_obstacles_between [email protected] [email protected] [email protected] and [email protected] [email protected] [email protected] solid 1 car 1 actor 0 object 1 particle 0 jf @god555 0393: actor $PLAYER_ACTOR perform_animation "sword_5d" at 0.5 times_normal_rate 0812: AS_actor $PLAYER_ACTOR perform_animation "sword_5d" IFP "sword" framedelta 30.0 loopA 0 lockX 1 lockY 1 lockF 0 time -1 // versionB 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 5.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 1.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -5.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 -4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 -4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 5.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 1.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -5.0 0.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 2.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 -4.0 3.0 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 0555: remove_weapon 4 from_actor $PLAYER_ACTOR 01B2: give_actor $PLAYER_ACTOR weapon 8 ammo 1 // Load the weapon model before using this 02AB: set_actor PlayerA immunities BP 1 FP 1 EP 1 CP 1 MP 1 00A0: store_actor $PLAYER_ACTOR position_to [email protected] [email protected] [email protected] 02CE: [email protected] = ground_z_at [email protected] [email protected] [email protected] 0565: create_soundless_explosion_at [email protected] [email protected] [email protected] type 8 wait 300 015D: set_gamespeed 1.0 02AB: set_actor PlayerA immunities BP 0 FP 0 EP 0 CP 0 MP 0 jump @god1 :gof66 wait 0 if or 0611: actor PlayerA performing_animation "sword_part" 0611: actor PlayerA performing_animation "knife_part" jf @god1 015D: set_gamespeed 0.5 02AB: set_actor PlayerA immunities BP 1 FP 1 EP 1 CP 1 MP 1 01B2: give_actor $PLAYER_ACTOR weapon 4 ammo 1 // Load the weapon model before using this 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -3.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 5.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 3.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 1.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -5.0 0.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 4.0 -3.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 -2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -4.0 4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset 0.0 2.0 0.6 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor PlayerA with_offset -2.0 -4.0 -0.6 06BC: create_M4_shoot_from [email protected] [email protected] [email protected] target [email protected] [email protected] [email protected] energy 50 wait 30 02AB: set_actor PlayerA immunities BP 0 FP 0 EP 0 CP 0 MP 0 015D: set_gamespeed 1.0 wait 100 0555: remove_weapon 4 from_actor $PLAYER_ACTOR 01B2: give_actor $PLAYER_ACTOR weapon 8 ammo 1 // Load the weapon model before using this jump @god1 Link to comment Share on other sites More sharing options...
OrionSR Posted July 8, 2020 Share Posted July 8, 2020 (edited) Okay, you seem to be doing well at coding what you need so I'll try explaining my idea and let you do the work. Note: thread 'gow2' is being compiled as a .csi. I was expecting this to be a .csa that always activates when loading. There are two current issues. 1) The original master script would create and end the two support scripts as needed. It's time to adapt that process for Android. 2) Sometimes the cheat doesn't deactivate. For now we are hoping that fixing the first problem will solve the second problem. 0AB3: var 0 = 10 0AB4: [email protected] = var 0 0DDC: set_cleo_shared_var 0 to 10 ; CleoAB 0DDD: [email protected] = get_shared_cleo_var 0 ; CleoAB My idea was to use shared cleo variables. Cleo vars are similar to global variables in that they can be shared between scripts. The PC documentation for 0AB3 suggests that these values are saved in cleo saves. I'm not sure how this is handled with CleoAB. We don't want saved data, so we'll reset that when the support scripts start. Review the original main script for PC posted earlier; look for each case of 0ABA: end_custom_thread_named 'gow1'. Restore to original location in your script but replace with 0DDC: set_cleo_shared_var 0 to 0. This will deactivate both scripts, so don't worry about ending 'gow2'. Look for 0A92: create_custom_thread for gow1. Restore to original location but replace with 0DDC: set_cleo_shared_var 0 to 1. This will flag both scripts as active. When a script is created it's local variables will be reset. This might be necessary, so may as well prepare. After setting cleo var 0 to 1, set cleo var 1 and cleo var 2 to 1 also. Cleo var 1 will flag that gow1 should reset it's variables. Cleo var 2 will flag that gow2 will reset it's local variables. Updating gow1: This one is pretty straight forward. Notice that most jumps go to @gow1 or simply continue to the next segment. So it's pretty easy to identify :god1 as the top of the main loop. Before :god1, set cleo var 0 and 1 to 0. We can't count on the master script to reset these variables if it's not running. These commands should only run when the script restarts. After the wait that follows :god1, read cleo var 0. If it equals 1, then the script will continue, else jump @god1. It's the else jump that's important here; it effectively deactivates the script. After that, read cleo var 1. If it equals 1 then reset important local variables and set cleo var 1 to 0 so it won't reset again until flagged by the master script. Updating gow2: This one is a little trickier. Start by moving the const..end construct out of the main body of the script (before //--MAIN). This is a compiler directive and doesn't need to be cluttering the script commands. Looks like the texture stuff is commented out, so I'll just ignore that part. The next section involves initial settings. These codes will need to be included elsewhere so everything resets as needed. Just let this section sit for a bit and move the codes to the next section when mentioned. First, reset cleo var 0 and cleo var 2 to 0 after naming the thread. :god1 - same label, different script, works for this example. This whole section should be cleaned up a little in this new context. Add the check for cleo var 0 after the wait, just like in gow1. Then add the check to reset the variables, this time reading and resetting cleo var 2. In addition to resetting important local variables, this section should include anything that can run once from the initial settings - stat change and health boost. Break out the player defined check into it's own snippet; this part should look pretty much like the start of gow1. Is the script active? Do I need to reset? Is player defined? Load the models and animations. If they are loaded then continue, otherwise jump all the way back to @god1 and try again. The goal is to avoid letting the script get trapped in small loops. Next is the check if the current weapon is appropriate. It seems like this part should occur before loading animations. And then a whole lot of animation stuff I don't want to consider. Worry about this after getting the other part worked out. Edited July 8, 2020 by OrionSR Link to comment Share on other sites More sharing options...
Roger125 Posted July 8, 2020 Author Share Posted July 8, 2020 you don't have a cleo mod that uses shared variables to understand better Link to comment Share on other sites More sharing options...
OrionSR Posted July 9, 2020 Share Posted July 9, 2020 No, sorry. I've never been particularly fond of cleo saves and tend to avoid those strategies. I've been using out of range global variables to accomplish a similar task; not an easy subject to explain. It's a strategy I try to limit to non-cleo environments. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now