![]() ![]() |
![]() Post #201 | |
![]() Member Posts: 197 From: Liberty City, Shoreside Joined: 15-July 10 ![]() | 072D & 072E check if there's flame thrower fired in rectangle/cube. |
![]() Post #202 | |
![]() Trained Member Posts: 77 Joined: 25-October 10 ![]() | http://gtagmodding.com/opcode-database/opcode/011D/ It's the worst case of an opcode ever. This opcode doesn't exist in any of games (III, VC, SA) I have no clue where did modding community get this opcode described in the first place. |
![]() Post #203 | |
![]() Trained Member Posts: 77 Joined: 25-October 10 ![]() | http://gtagmodding.com/opcode-database/opcode/0347/ Why there is no 0x0347 command in GTAG and anywhere in INI files to the present day? This command exists in games: (GTA III) Native command name: SET_TEXT_BACKGROUND_ONLY_TEXT http://gtagmodding.com/opcode-database/opcode/0349/ This command doesn't exist in GTA VC. This command exists in III and SA. This post has been edited by fastman92: Apr 7 2013, 06:44 PM |
![]() Post #204 | |
![]() Member Posts: 197 From: Liberty City, Shoreside Joined: 15-July 10 ![]() | |
![]() Post #205 | |
![]() Coding like a Rockstar! ![]() Posts: 1,468 From: ??? Joined: 28-May 09 ![]() | It will be great if youre about to share a whole heap of info on attractors ![]() -------------------- | CLEO 4.3.22 | A?i?a?o?3D | UI SDK | Black Market Mod 1.0.1 | GInput 0.3 | Cheat Keyboard | Tactile Cheat Activation | Stream Ini Extender 0.7 | SuperVars | ScrDebug | Vigilante Justice: San Andreas | |
![]() Post #206 | |
![]() Member Posts: 197 From: Liberty City, Shoreside Joined: 15-July 10 ![]() | But I haven't much documentation on this subject... Just few functions named. |
![]() Post #207 | |
![]() Trained Member Posts: 77 Joined: 25-October 10 ![]() | GTAG opcode database has many errors, it's rarely updated making it only useful because of having no other choice (there's no GTAG opcode DB competitor). CODE ; Game name: GTA III ; Author: fastman92 ; Commands that exist in game executable, but do not exist in GTAG database for this game 0x0052 0x00B2 0x00B3 0x00B4 0x00B5 0x00B6 0x00B7 0x00B8 0x00B9 0x01BF 0x01CD 0x01DA 0x01F8 0x021A 0x021F 0x0238 0x023E 0x023F 0x0246 0x0251 0x0252 0x0292 0x0295 0x029A 0x029D 0x02A4 0x02A5 0x02A6 0x02BA 0x02BB 0x02C4 0x02D2 0x02D6 0x02DA 0x02DC 0x02F0 0x030B 0x031B 0x031C 0x0328 0x032E 0x0333 0x0334 0x0338 0x033D 0x0347 0x0364 0x038E 0x0393 0x03A7 0x03A8 0x03A9 0x03DB 0x03E9 0x0416 0x041B 0x0429 0x0432 0x0439 0x043E 0x0456 0x0457 0x0458 0x0459 0x045A 0x045C 0x045D 0x045E 0x045F 0x0460 0x0461 0x0462 0x0464 0x0465 0x0466 0x0467 0x0468 0x0469 0x046A 0x046B 0x046C 0x046D 0x046E 0x046F 0x0470 0x0471 0x0472 0x0473 0x0474 0x0475 0x0476 0x0478 0x0479 0x047A 0x047B 0x047C 0x047D 0x047E 0x047F 0x0480 0x0481 0x0482 ; Commands that exist in GTAG database for this game, but do not exist in game executable 0x009D 0x011D 0x0137 0x0149 0x014B 0x014C 0x014D 0x014E 0x014F 0x0151 0x0152 0x0154 0x0156 0x0157 0x0158 0x0159 0x015A 0x015C 0x015D 0x015E 0x015F 0x0160 0x0161 0x0162 0x0164 0x0165 0x0166 0x0167 0x0168 0x0169 0x016A 0x016B 0x016C 0x016D 0x016E 0x016F 0x0170 0x0171 0x0172 0x0173 0x0174 0x0175 0x0176 0x0177 0x0178 0x0179 0x017A 0x017B 0x0180 0x0181 0x0182 0x0183 0x0184 0x0185 0x0186 0x0187 0x0188 0x0189 0x018A 0x018B 0x018C 0x018D 0x018E 0x018F 0x01D8 0x01E6 0x0235 0x0301 0x0304 0x0307 0x030A 0x0385 0x0494 0x05F7 CODE ; Game name: GTA VC ; Author: fastman92 ; Commands that exist in game executable, but do not exist in GTAG database for this game 0x0150 0x03A7 0x03A8 0x03A9 0x0416 0x043E 0x045C 0x045D 0x0473 0x0474 0x0475 0x0476 0x0485 0x0488 0x04AC 0x0515 0x0584 0x0597 0x059C 0x059D 0x059E 0x05A0 0x05A5 ; Commands that exist in GTAG database for this game, but do not exist in game executable 0x004C 0x009D 0x00A2 0x00AC 0x00C5 0x00C6 0x00E2 0x0113 0x011D 0x0130 0x0135 0x0149 0x014D 0x0156 0x015E 0x016F 0x0178 0x0179 0x017B 0x0182 0x01C6 0x01E6 0x01EE 0x01EF 0x0218 0x021D 0x0228 0x023A 0x023B 0x0240 0x0242 0x024B 0x024C 0x024D 0x0250 0x0255 0x0299 0x029C 0x02A0 0x02A1 0x02A2 0x02B9 0x02BC 0x02C3 0x02C5 0x02C6 0x02C7 0x02C8 0x02C9 0x02CD 0x02D9 0x02EE 0x02EF 0x02F1 0x02F4 0x02F5 0x02FB 0x02FC 0x02FE 0x0300 0x0301 0x0303 0x0304 0x0305 0x0306 0x0307 0x0309 0x030A 0x032D 0x033A 0x033B 0x033C 0x0344 0x0346 0x0349 0x034A 0x034B 0x034C 0x0351 0x0354 0x0355 0x0356 0x0358 0x0359 0x035A 0x035B 0x0367 0x0368 0x036E 0x036F 0x0370 0x0371 0x0374 0x0375 0x037F 0x0385 0x0386 0x0387 0x0388 0x0389 0x0398 0x0399 0x039A 0x039B 0x03A0 0x03A5 0x03A6 0x03B2 0x03B3 0x03B4 0x03B5 0x03B9 0x03C2 0x03C6 0x03C9 0x03DD 0x03E0 0x03EC 0x03F7 0x03F8 0x03FB 0x03FC 0x03FF 0x0406 0x040A 0x0410 0x041A 0x041C 0x041F 0x0420 0x0421 0x0422 0x0426 0x0427 0x042A 0x0438 0x043A 0x043B 0x043D 0x0444 0x0447 0x044C 0x044E 0x044F 0x0575 0x05B0 0x05F7 CODE ; Game name: GTA SA ; Author: fastman92 ; Commands that exist in game executable, but do not exist in GTAG database for this game 0x00C3 0x00C4 0x0166 0x0181 0x0189 0x021C 0x0231 0x0250 0x0319 0x03DF 0x0451 0x050B 0x0556 0x05DF 0x05E0 0x05E1 0x05E3 0x05E4 0x05F2 0x067D ; Commands that exist in GTAG database for this game, but do not exist in game executable 0x064A 0x064D 0x0651 0x0659 0x065A 0x0666 0x066F 0x0670 0x0671 0x0675 0x0678 0x068F 0x069C 0x069D 0x069E 0x069F 0x06A0 0x06A1 0x06A4 0x06A6 0x06C6 0x06CB 0x06CE 0x06F4 0x06F6 0x06F7 0x06F9 0x06FB 0x06FE 0x0700 0x0711 0x0712 0x0718 0x071B 0x071C 0x071D 0x0720 0x0721 0x0722 0x0725 0x0728 0x0738 0x0739 0x073A 0x073D 0x0740 0x0744 0x0748 0x0758 0x0759 0x0764 0x0765 0x0766 0x076E 0x0773 0x0774 0x0775 0x0779 0x077F 0x0785 0x0787 0x078D 0x078E 0x0791 0x0795 0x079A 0x079B 0x079C 0x07A2 0x07AA 0x07AD 0x07AE 0x07B2 0x07B5 0x07B6 0x07B7 0x07B8 0x07BA 0x07C2 0x07C8 0x07CA 0x07CE 0x07CF 0x07D1 0x07D2 0x07D4 0x07DC 0x07E2 0x07E3 0x07E9 0x07EA 0x07EB 0x07EC 0x07ED 0x07F4 0x0805 0x0807 0x0808 0x0809 0x080C 0x080D 0x080F 0x0813 0x081B 0x0821 0x0824 0x0832 0x0838 0x083B 0x0848 0x0849 0x084A 0x084B 0x084C 0x084F 0x0857 0x085C 0x085D 0x085F 0x0862 0x0863 0x086D 0x086E 0x086F 0x0870 0x0877 0x0880 0x0882 0x0885 0x0886 0x088F 0x0891 0x0892 0x0894 0x0895 0x0896 0x0899 0x089A 0x089D 0x08A1 0x08AA 0x08AE 0x08B0 0x08CC 0x08CD 0x08CE 0x08CF 0x08D5 0x08FC 0x0902 0x0903 0x090A 0x090B 0x0911 0x0921 0x0927 0x092A 0x092C 0x092D 0x0932 0x0935 0x0938 0x093C 0x093F 0x0943 0x0962 0x0963 0x0979 0x097E 0x097F 0x098F 0x0990 0x0993 0x0999 0x09A5 0x09B1 0x09C6 0x09D3 0x09DC 0x09EA 0x09F3 0x09F9 0x0A00 0x0A04 0x0A05 0x0A0D 0x0A8E 0x0AE3 0x0B01 It's been months and opcodes mentioned by me still weren't updated. That sucks. This post has been edited by fastman92: Oct 22 2013, 06:36 PM |
![]() Post #208 | |
![]() Coding like a Rockstar! ![]() Posts: 1,468 From: ??? Joined: 28-May 09 ![]() | I'll be working on the OpcodeDB soon. SCR (v2) definitions should be coming out of BETA! ![]() -------------------- | CLEO 4.3.22 | A?i?a?o?3D | UI SDK | Black Market Mod 1.0.1 | GInput 0.3 | Cheat Keyboard | Tactile Cheat Activation | Stream Ini Extender 0.7 | SuperVars | ScrDebug | Vigilante Justice: San Andreas | |
![]() Post #209 | |
![]() The Assistant Posts: 84 From: Matera, IT Joined: 16-June 11 ![]() | Don't know if you let this post slip, but it will be helpful anyway. ![]() |
![]() Post #210 | |
![]() Coding like a Rockstar! ![]() Posts: 1,468 From: ??? Joined: 28-May 09 ![]() | Don't know if you let this post slip, but it will be helpful anyway. ![]() I found the command list elsewhere. I'm just going to import it straight into the v2 DB (including non-command opcodes) and that will make writing SCR in Sanny Builder almost perfect with keywords.txt. Also, I have my own computer back now, so I'm able to actually work on the website again (without causing more loss of synchronisation) and work on a more advanced generator for SCRambl which will probably provide all required definitions for GTA in a zipped archive. QUOTE ; Commands that exist in GTAG database for this game, but do not exist in game executable 0x064A 0x064D 0x0651 0x0659 ... These are valid opcodes ![]() -------------------- | CLEO 4.3.22 | A?i?a?o?3D | UI SDK | Black Market Mod 1.0.1 | GInput 0.3 | Cheat Keyboard | Tactile Cheat Activation | Stream Ini Extender 0.7 | SuperVars | ScrDebug | Vigilante Justice: San Andreas | |
![]() Post #211 | |
![]() The Assistant Posts: 84 From: Matera, IT Joined: 16-June 11 ![]() | I found the command list elsewhere. Where? Seemingly the executable is the only place where they can be found or are you referring to the Net? If so, could you show me the link? These are valid opcodes ![]() In the official R* compiler released with VCTA (available in the Android game, hope to see it into that of SA Mobile aswell), the first flag of each struct element of the command list denotes whether a particular command is visible or not to the compiler during the parsing process, something like m_bIsHandled. Those cut commands were not valid to the compiler yet because they probably had such flag unset. The same does not go for those NOPed. This post has been edited by Wesser: Dec 15 2013, 03:24 PM |
![]() Post #212 | |
![]() Coding like a Rockstar! ![]() Posts: 1,468 From: ??? Joined: 28-May 09 ![]() | Where? Seemingly the executable is the only place where they can be found or are you referring to the Net? If so, could you show me the link? The guys on SB forums posted a list, too. QUOTE In the official R* compiler released with VCTA (available in the Android game, hope to see it into that of SA Mobile aswell), the first flag of each struct element of the command list denotes whether a particular command is visible or not to the compiler during the parsing process, something like m_bIsHandled. Those cut commands were not valid to the compiler yet because they probably had such flag unset. The same does not go for those NOPed. Ah, but these cut commands would seem to be handled in the same way, returning 0 from the handler to continue execution immediately whereas some other opcodes - possibly those which don't represent commands - return -1 and break execution (like a WAIT 0). An example of those are: CODE 003D=IS_INT_VAR_NOT_EQUAL_TO_NUMBER 003E=IS_INT_LVAR_NOT_EQUAL_TO_NUMBER 003F=IS_INT_VAR_NOT_EQUAL_TO_INT_VAR 0040=IS_INT_LVAR_NOT_EQUAL_TO_INT_LVAR 0041=IS_INT_VAR_NOT_EQUAL_TO_INT_LVAR -------------------- | CLEO 4.3.22 | A?i?a?o?3D | UI SDK | Black Market Mod 1.0.1 | GInput 0.3 | Cheat Keyboard | Tactile Cheat Activation | Stream Ini Extender 0.7 | SuperVars | ScrDebug | Vigilante Justice: San Andreas | |
![]() Post #213 | |
![]() The Assistant Posts: 84 From: Matera, IT Joined: 16-June 11 ![]() | The guys on SB forums posted a list, too. That list is a bit incomplete (it also came after mine ![]() Ah, but these cut commands would seem to be handled in the same way, returning 0 from the handler to continue execution immediately whereas some other opcodes - possibly those which don't represent commands - return -1 and break execution (like a WAIT 0). I made this assumption but never verified it with IDA. Sounds like the code of such cases was commented till the return or break (excluded), whereas some others were totally commented and so the default case is executed. These commands should be somewhat unhandled however. The possible countercheck is finding one of them being used in the script. By the way, it is SA-specific. This post has been edited by Wesser: Dec 16 2013, 12:38 PM |
![]() Post #214 | |
![]() Ameteur Member Posts: 42 From: Guatemala Joined: 22-December 09 ![]() | I have a question, why negative opcodes, were removed from opcode database? ![]() like these ones: CODE 82D8: not actor $PLAYER_ACTOR current_weapon == 56 8AAB: not file_exists "CLEO\version.dll" 8A9A: not 30@ = openfile "settings.ini" mode 0x6272 80F2: not actor 1@ near_actor $PLAYER_ACTOR radius 100.0 100.0 0 85AD: not $5365(227@,10s) == 142@s // s$ == 'short' 86B9: not cutscene_data_loaded 80DF: not actor $PLAYER_ACTOR driving 8597: not actor $PLAYER_ACTOR crouching 8965: not actor $PLAYER_ACTOR swimming 8611: not actor $PLAYER_ACTOR performing_animation "WALK_player" 83EE: not player $PLAYER_CHAR controllable 8039: not 7@ == #NULL 8248: not model #MP5LNG available 856D: not actor 1@ defined 80E1: not player 0 pressed_key 4 and many more. they are useful ![]() -------------------- |
![]() Post #215 | |
![]() Coding like a Rockstar! ![]() Posts: 1,468 From: ??? Joined: 28-May 09 ![]() | I have a question, why negative opcodes, were removed from opcode database? ![]() like these ones: CODE 82D8: not actor $PLAYER_ACTOR current_weapon == 56 8AAB: not file_exists "CLEO\version.dll" 8A9A: not 30@ = openfile "settings.ini" mode 0x6272 80F2: not actor 1@ near_actor $PLAYER_ACTOR radius 100.0 100.0 0 85AD: not $5365(227@,10s) == 142@s // s$ == 'short' 86B9: not cutscene_data_loaded 80DF: not actor $PLAYER_ACTOR driving 8597: not actor $PLAYER_ACTOR crouching 8965: not actor $PLAYER_ACTOR swimming 8611: not actor $PLAYER_ACTOR performing_animation "WALK_player" 83EE: not player $PLAYER_CHAR controllable 8039: not 7@ == #NULL 8248: not model #MP5LNG available 856D: not actor 1@ defined 80E1: not player 0 pressed_key 4 and many more. they are useful ![]() Because 'NOT' is an opcode modifier, not an opcode. In order to apply the modifier on Sanny Builder 3, you simply change the first 0 to 8 and optionally add 'not' to indicate it. However, if you're using the SCR definitions and keywords for SB, the syntax can be much easier: not is_char_holding_weapon $PLAYER_ACTOR 56 not has_cutscene_loaded not is_char_in_any_car $PLAYER_ACTOR IF OR not is_button_pressed 0 button 19 is_button_pressed 0 button 15 ... The SCR definitions also have the advantage of being correctly named according to the original names they were given by R*, unlike the SB defaults which were formed by heavy speculation over the first few years of modding. In most common opcodes, the SB definitions are clear enough, but these are very outdated and purely maintained for compatibility reasons and cause the creation of bad scripts where the writer was mislead by them. However, it's a bit of a move to start writing it, especially in an IDE which wasn't built for it. Though SB3 apparently has a SCR mode now, but I'm not sure what it does ![]() -------------------- | CLEO 4.3.22 | A?i?a?o?3D | UI SDK | Black Market Mod 1.0.1 | GInput 0.3 | Cheat Keyboard | Tactile Cheat Activation | Stream Ini Extender 0.7 | SuperVars | ScrDebug | Vigilante Justice: San Andreas | |
![]() ![]() Post #216 | |
![]() Ameteur Member Posts: 42 From: Guatemala Joined: 22-December 09 ![]() | Because 'NOT' is an opcode modifier, not an opcode. In order to apply the modifier on Sanny Builder 3, you simply change the first 0 to 8 and optionally add 'not' to indicate it. However, if you're using the SCR definitions and keywords for SB, the syntax can be much easier: not is_char_holding_weapon $PLAYER_ACTOR 56 not has_cutscene_loaded not is_char_in_any_car $PLAYER_ACTOR IF OR not is_button_pressed 0 button 19 is_button_pressed 0 button 15 ... The SCR definitions also have the advantage of being correctly named according to the original names they were given by R*, unlike the SB defaults which were formed by heavy speculation over the first few years of modding. In most common opcodes, the SB definitions are clear enough, but these are very outdated and purely maintained for compatibility reasons and cause the creation of bad scripts where the writer was mislead by them. However, it's a bit of a move to start writing it, especially in an IDE which wasn't built for it. Though SB3 apparently has a SCR mode now, but I'm not sure what it does ![]() ooh thanks!.. after a year, I think I missed this class, where you explain that ![]() so, practically, all the conditions can be negative? -------------------- |
![]() Post #217 | |
![]() I will kill you Posts: 126 Joined: 13-May 11 ![]() | |
![]() Post #218 | |
![]() Coding like a Rockstar! ![]() Posts: 1,468 From: ??? Joined: 28-May 09 ![]() | ooh thanks!.. after a year, I think I missed this class, where you explain that ![]() so, practically, all the conditions can be negative? Even your standard opcodes could be negated, but since they're not conditional, there's nothing to negate. Through modding, one could even add conditional returns to normal opcodes to indicate errors, which may make it necessary to use the conditional negation on it, but it's use-dependent, and therefore the OpcodeDB won't generate every NOT variation of every opcode and note that not even the original opcodes.txt files did that anyway - they only have negated opcodes that were actually used in the original SCM file or added afterwards due to other random decisions. -------------------- | CLEO 4.3.22 | A?i?a?o?3D | UI SDK | Black Market Mod 1.0.1 | GInput 0.3 | Cheat Keyboard | Tactile Cheat Activation | Stream Ini Extender 0.7 | SuperVars | ScrDebug | Vigilante Justice: San Andreas | |
![]() |
![]() ![]() Post #219 | |
![]() Newbie In Training Posts: 12 Joined: 14-April 14 ![]() | why this make the game crash? CODE 0A9A: file = openfile "HAF.ini" mode "rt+" 0AD8: write_string_in_file file from 2@v CODE CLEO 4 Specialities CLEO 4 simplifies the task of setting the mode using standard methods. You can replace the mode parameter with a string to specify the opening mode. If you don't use a string, the CLEO 3 opening mode will be used. "rb" = read binary file "wb" = write binary file "wb+" = write binary file (create it if it doesn't exist) "ab" = append binary file (write at the end) "ab+" = append binary file (create it if it doesn't exist) "rt" = read text file "wt" = write text file "wt+" = write text file (create it if it doesn't exist) "at" = append text file "at+" = append text file (create it if it doesn't exist) "rb+" = read/write binary file "rt+" = read/write text file This post has been edited by Haf: Oct 16 2014, 05:47 AM |
![]() Post #220 | |
![]() Coding like a Rockstar! ![]() Posts: 1,468 From: ??? Joined: 28-May 09 ![]() | CODE "wb+" = write binary file (create it if it doesn't exist) "ab+" = append binary file (create it if it doesn't exist) "wt+" = write text file (create it if it doesn't exist) "at+" = append text file (create it if it doesn't exist) "rb+" = read/write binary file "rt+" = read/write text file Does the file already exist or not? By the way, it's usually a bad idea to attempt to read and write a file at the same time. Why do you need to do this? Can you not simply read the file once into memory, change the data in memory, then write it back to the file once? -------------------- | CLEO 4.3.22 | A?i?a?o?3D | UI SDK | Black Market Mod 1.0.1 | GInput 0.3 | Cheat Keyboard | Tactile Cheat Activation | Stream Ini Extender 0.7 | SuperVars | ScrDebug | Vigilante Justice: San Andreas | |
![]() ![]() |