Quantcast

Jump to content

» «
Photo

Gta 2 Scripting ! !Help!

5 replies to this topic
Andrew_Thiago
  • Andrew_Thiago

    http://dyom.gtagames.nl/profile/12409

  • Members
  • Joined: 15 Feb 2015
  • Brazil

#1

Posted 26 October 2015 - 12:17 AM Edited by Andrew_Thiago, 26 October 2015 - 12:41 AM.

Hi, i'm trying to create a simple mission in my gta 2, using scriptpad. But the point is: I just can't make the player answer a telephone properly. I'm trying to use the  (WHILE_EXEC) command to  answer the phone, and receive the first brief, then the game should point a truck and i would begin the mission. 

 

  1. **When i answer the phone, he tell the initial brief and the second brief: ''drive carefully'' after sucefully answered the phone. But the commands between  he aren't executing.

Take a look and see if you can help me guys. That's just the first code after LEVEL START :(  : 

 

 

PLAYER_PED boy = (82.10,148.3,2.0) 8 0

 

/////COUNTERS////
 
COUNTER onmission1 = 0
COUNTER inside_truck1 = 0
COUNTER mission1_completed = 0
COUNTER mission1_failed = 0
 
/////Vehicles///
CAR_DATA  truck1  =   ( 84.7,149.8,2.0 )  23 090  TRUKCAB2 TRUKTRNS 
 
/////Phones////
OBJ_DATA phone1 = (82.7,148.255) 090 GREEN_PHONE
 
///Arrows//
ARROW_DATA ar1
ARROW_DATA ar2
ARROW_DATA ar3
ARROW_DATA ar4
 

 

LevelStart
-----------------------------------------------------------------------------------------------------------------------------------------
 
Phone1_mission1:      ///Mission label
 
POINT_ARROW_AT ( ar1, phone1 )
DISPLAY_BRIEF (1019)                             //  Go and answer the phone, must be your boss!
CHANGE_CAR_LOCK (truck1,LOCKED)
ANSWER_PHONE ( boy  , phone1 , 2000 )
    
     
    WHILE_EXEC (onmission1 = 0)
 
   IF (CHECK_ANSWERED_PHONE(phone1)) 
               SET onmission1 = 1               // Now, the counter named ''onmission1''  should have the VALUE equal to = 1
               REMOVE_ARROW(ar1)
               STOP_PHONE ( phone1 ) 
               DISPLAY_BRIEF (1020)         //Hello my dear! Today, we have a lot of work to do, get ready!
               ++onmission1                         //I really do not know why we have to put that (++onmission) command!!
   ENDIF
   ENDWHILE
 
 
IF (onmission1 = 0)                       //If he did not answered the phone
       
             DISPLAY_BRIEF (1019)             //You failed to answer the phone!
     ENDIF
      
 
     REMOVE_ARROW(ar1)     
     CHANGE_CAR_LOCK (truck1,NO_LOCK)
     POINT_ARROW_AT ( ar1, truck1 )     
     DISPLAY_BRIEF (1022)      //After answered the phone, he just say this brief, but doesn't unlock my truck or point him, etc...
 
 
 
LEVELEND

Sektor
  • Sektor

    GTAMP.com

  • GTA Series Staff
  • Joined: 28 Jan 2003
  • None

#2

Posted 26 October 2015 - 01:34 AM Edited by Sektor, 26 October 2015 - 01:45 AM.

Interesting bug with the POINT_ARROW_AT command.  It doesn't work with trucks with trailers unless they are created after LEVELSTART.  I also changed NO_LOCK to UNLOCKED to unlock the truck.

PLAYER_PED boy = (82.10,148.3,2.0) 8 0

/////COUNTERS////

COUNTER onmission1 = 0
COUNTER inside_truck1 = 0
COUNTER mission1_completed = 0
COUNTER mission1_failed = 0

/////Vehicles///
CAR_DATA truck1

/////Phones////
OBJ_DATA phone1 = (82.7,148.255) 090 GREEN_PHONE

///Arrows//
ARROW_DATA ar1
ARROW_DATA ar2
ARROW_DATA ar3
ARROW_DATA ar4

LEVELSTART
//-----------------------------------------------------------------------------------------------------------------------------------------

truck1 = CREATE_CAR ( 84.7,149.8,255.0 ) 23 90 TRUKCAB2 TRUKTRNS END

Phone1_mission1:      ///Mission label

POINT_ARROW_AT ( ar1, phone1 )
DISPLAY_BRIEF (1019)                             //  Go and answer the phone, must be your boss!
CHANGE_CAR_LOCK (truck1,LOCKED)
ANSWER_PHONE ( boy  , phone1 , 2000 )
    
WHILE_EXEC (onmission1 = 0)

   IF (CHECK_ANSWERED_PHONE(phone1)) 
               SET onmission1 = 1               // Now, the counter named ''onmission1''  should have the VALUE equal to = 1
               REMOVE_ARROW(ar1)
               STOP_PHONE ( phone1 ) 
               DISPLAY_BRIEF (1020)         //Hello my dear! Today, we have a lot of work to do, get ready!
   ENDIF
ENDWHILE

IF (onmission1 = 0)                       //If he did not answered the phone
       
             DISPLAY_BRIEF (1019)             //You failed to answer the phone!
ENDIF
      
     REMOVE_ARROW(ar1)     
     CHANGE_CAR_LOCK (truck1,UNLOCKED)
     POINT_ARROW_AT ( ar1, truck1 )     
     DISPLAY_BRIEF (1022)

LEVELEND

Andrew_Thiago
  • Andrew_Thiago

    http://dyom.gtagames.nl/profile/12409

  • Members
  • Joined: 15 Feb 2015
  • Brazil

#3

Posted 26 October 2015 - 01:44 AM

Thank you so much! i'M seeing the cerbera tutorials and a lot of stuff at same time here,right now. I'm really understanding very well since i began to study this deep codes yesterday. I was also since yesterday trying to find out what was the problem with this code, and just like you said: i changed the truck spawn to after levelstart and it works now. Now almost everything makes sense! Thank you!!!!


Andrew_Thiago
  • Andrew_Thiago

    http://dyom.gtagames.nl/profile/12409

  • Members
  • Joined: 15 Feb 2015
  • Brazil

#4

Posted 26 October 2015 - 01:55 AM

SEKTOR, could you help me in another thing? what is the corret write to check a negative action? Look my script that doesn't work:

 

WHILE_EXEC (phone01_atendido = 1)
 
   IF (IS_CHARACTER_IN_CAR  (  boy  ,  truck1  ) )  // that code is working fine!
   
      SET inside_truck1 = 1
      DELAY_HERE (10) 
      DISPLAY_BRIEF (1023)   //We gonna have our vegeneance!! Let's take our car back from a customer that did not pay his bills
      REMOVE_ARROW (ar1)
 
ENDIF
 
   IF ( ( NOT (IS_CHARACTER_IN_CAR  (  boy  ,  truck1  ) ) )         //Why that code not working? How i use that (not) properly? 
    
      DISPLAY_BRIEF (1022) //Get in the truck! 
      POINT_ARROW_AT ( ar1, truck1 )   
   
   
   
   ENDIF
   ENDWHILE

Sektor
  • Sektor

    GTAMP.com

  • GTA Series Staff
  • Joined: 28 Jan 2003
  • None

#5

Posted 26 October 2015 - 02:04 AM Edited by Sektor, 26 October 2015 - 02:10 AM.

Too many brackets.  This should work:

 

 IF (NOT(IS_CHARACTER_IN_CAR  (  boy  ,  truck1 )))
      DISPLAY_BRIEF (1022) //Get in the truck! 
      POINT_ARROW_AT ( ar1, truck1 )   
 ENDIF

Andrew_Thiago
  • Andrew_Thiago

    http://dyom.gtagames.nl/profile/12409

  • Members
  • Joined: 15 Feb 2015
  • Brazil

#6

Posted 26 October 2015 - 08:08 PM

thank you man!!!





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users