levenshtein Posted October 27, 2010 Share Posted October 27, 2010 Hi, i'm starting modding my vice city buy i cannot make conditions. I usually program in PHP, ASP and PERL. That languages use IF{}, ELSEIF{} and ELSE{} statements. Well, I need to know what do "jump_if_false", "jump" and "gosub" mean and how to use them. i need a condition that checks IF $PLAYER_CHAR is driving_taxi_vehicle. If TRUE, set_car door_status_to 0. Else, do nothing I tried this, but I dont know where to put it: 00D6: if 002DE: player $PLAYER_CHAR driving_taxi_vehicle 004D: jump_if_false ££OPEN_DOORS :OPEN_DOORS 0001: wait 0 ms 00D6: if 0 00E0: player $PLAYER_CHAR driving 004D: jump_if_false ££Label011181 03C1: [email protected] = player $PLAYER_CHAR car 020A: set_car [email protected] door_status_to 0 But i dont know what does "jump_if_false" mean, and why "if 0" or "if 1". I understand 03C1, 00E0, 020A, Can anyone help me please explaining me this? Thanks Link to comment Share on other sites More sharing options...
BnB Posted October 27, 2010 Share Posted October 27, 2010 Syntax: if 0[condition]jf @label If 0 checks if something is true if or[condition][condition]jf @label 2-9 condtitions If or checks if one of some conditions is true 2 min 9 max if and[condition][condition]jf @label 2-9 condtitions If and checks if all conditions are true 2 min 9 max Ex: :1wait 0if [email protected] == 1jf @[email protected] = 23 That checks if [email protected] is equal to 1 if not the game engine jumps back to label 1 it's true then the game engine continues. :[labelname] Denotes a label @[labelname] Denotes the label which should be reached Link to comment Share on other sites More sharing options...
Deji Posted October 27, 2010 Share Posted October 27, 2010 (edited) You appear to be using Bartons Mission Builder format. I'd suggest using Sanny Builder instead. It shouldn't be too hard to learn basic SCM Coding when you already have previous coding experience. For me, learning SCM Coding also taught me the basics behind how code works, which I apply to other languages including PHP. Luckily Sanny Builder supports high constructs that you will be familiar with: if 0019: [email protected] > 0then 0006: [email protected] = 0end Sanny compiles on a line-by-line basis so it isn't so easy for it to determine where a line starts and ends. This means you have to code most things on seperate lines. However I've found I can get away with doing this: if 0019: [email protected] > 2then 0006: [email protected] = 2end A lot shorter and easy to identify that we're limiting [email protected] to 2. We also have IF..THEN..ELSE...END. if 056D: actor [email protected] definedthen 0762: AS_actor [email protected] dieselse 009A: [email protected] = create_actor_pedtype 4 model #MALE01 at 2488.562 -1666.865 13.8757end There's no actual "ELSEIF", however, we can do the same thing by putting the next IF inside the ELSE. if 056D: actor [email protected] definedthen 0762: AS_actor [email protected] dieselse if 0248: model #MALE01 available then 009A: [email protected] = create_actor_pedtype 4 model #MALE01 at 2488.562 -1666.865 13.8757 endend You could also shorten it to look more like "elseif"... if 056D: actor [email protected] definedthen 0762: AS_actor [email protected] dieselse if 0248: model #MALE01 available then 009A: [email protected] = create_actor_pedtype 4 model #MALE01 at 2488.562 -1666.865 13.8757 endend There are many ways to make basic SCM look a bit less like a table of hex Although in advanced SCM, that's probably what you want. Gosub Gosubs are a little different. They work like this: [email protected] = 0gosub @ChangeVar // the code will stop here until the "return" is made// [email protected] == 1end_thread:[email protected] = 1return This is kinda like a static function in programming. A function that just executes code, without taking or returning any values... SCM Functions are for that. Edited October 27, 2010 by Deji Link to comment Share on other sites More sharing options...
levenshtein Posted October 30, 2010 Author Share Posted October 30, 2010 You appear to be using Bartons Mission Builder format. I'd suggest using Sanny Builder instead. It shouldn't be too hard to learn basic SCM Coding when you already have previous coding experience. For me, learning SCM Coding also taught me the basics behind how code works, which I apply to other languages including PHP. Thanks you a lot. It works now Link to comment Share on other sites More sharing options...
levenshtein Posted October 30, 2010 Author Share Posted October 30, 2010 Syntax: if 0[condition]jf @label If 0 checks if something is true if or[condition][condition]jf @label 2-9 condtitions If or checks if one of some conditions is true 2 min 9 max if and[condition][condition]jf @label 2-9 condtitions If and checks if all conditions are true 2 min 9 max Ex: :1wait 0if [email protected] == 1jf @[email protected] = 23 That checks if [email protected] is equal to 1 if not the game engine jumps back to label 1 it's true then the game engine continues. :[labelname] Denotes a label @[labelname] Denotes the label which should be reached Thakns you. I was very usefull. 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