Example GTA 2 Script Not Working

Anything to do with GTA1/GTA2 modding (tools, scripts and more).
Post Reply
D.E.L.B.
Jaywalker
Jaywalker
Posts: 8
Joined: 01 Jul 2015, 22:03

Example GTA 2 Script Not Working

Post by D.E.L.B. »

Hi,

For some reason the code that I picked up from the NL GTA modding site doesn't work:
[mis]PLAYER_PED player1 = (129.5, 127.5, 255.0) 25 0

SET_GANG_INFO ( zaibgang , 8 , pistol , machine_gun , rocket_launcher , 3 , 127.5 , 129.5 , 2.0 , 1 , vtype , 2 )
SET_GANG_INFO ( krisgang , 9 , pistol , machine_gun , flame_thrower , 6 , 130.5 , 129.5 , 2.0 , 1 , krsnabus , -1 )

OBJ_DATA zaibgang_green_phone_1 = (127.5, 133.5) 270 GREEN_PHONE
OBJ_DATA zaibgang_green_phone_2 = (126.5, 133.5) 270 GREEN_PHONE
OBJ_DATA zaibgang_yellow_phone_1 = (125.5, 133.5) 270 YELLOW_PHONE
OBJ_DATA zaibgang_yellow_phone_2 = (124.5, 133.5) 275 YELLOW_PHONE
OBJ_DATA zaibgang_red_phone = (123.5, 133.5) 270 RED_PHONE

OBJ_DATA krisgang_green_phone_1 = (130.5, 133.5) 270 GREEN_PHONE
OBJ_DATA krisgang_green_phone_2 = (131.5, 133.5) 270 GREEN_PHONE
OBJ_DATA krisgang_yellow_phone_1 = (132.5, 133.5) 270 YELLOW_PHONE
OBJ_DATA krisgang_yellow_phone_2 = (133.5, 133.5) 270 YELLOW_PHONE
OBJ_DATA krisgang_red_phone = (134.5, 133.5) 270 RED_PHONE

OBJ_DATA zaibgang_info_phone = (127.5, 129.5) 270 PHONE
OBJ_DATA krisgang_info_phone = (130.5, 129.5) 270 PHONE

SAVED_COUNTER flag_passed_zaibgang_green_1 = 0
SAVED_COUNTER flag_passed_zaibgang_green_2 = 0
SAVED_COUNTER flag_passed_zaibgang_yellow_1 = 0
SAVED_COUNTER flag_passed_zaibgang_yellow_2 = 0
SAVED_COUNTER flag_passed_zaibgang_yellow_3 = 0
SAVED_COUNTER flag_passed_zaibgang_red_1 = 0
SAVED_COUNTER flag_passed_zaibgang_red_2 = 0

SAVED_COUNTER flag_passed_krisgang_green_1 = 0
SAVED_COUNTER flag_passed_krisgang_green_2 = 0
SAVED_COUNTER flag_passed_krisgang_yellow_1 = 0
SAVED_COUNTER flag_passed_krisgang_yellow_2 = 0
SAVED_COUNTER flag_passed_krisgang_yellow_3 = 0
SAVED_COUNTER flag_passed_krisgang_red_1 = 0
SAVED_COUNTER flag_passed_krisgang_red_2 = 0

SAVED_COUNTER flag_passed_final_mission = 0

//Oorspronkelijk waren deze flags bedoeld om ervoor te zorgen dat gefaalde missies niet nogmaals gespeeld konden worden.
//Dit is in GTA2 niet gebruikt: missies geven een secundaire flag op wanneer de missie gefaald wordt, waardoor er twee sets zijn.

SAVED_COUNTER flag_failed_zaibgang_green_1 = 0
SAVED_COUNTER flag_failed_zaibgang_green_2 = 0
SAVED_COUNTER flag_failed_zaibgang_yellow_1 = 0
SAVED_COUNTER flag_failed_zaibgang_yellow_2 = 0
SAVED_COUNTER flag_failed_zaibgang_yellow_3 = 0
SAVED_COUNTER flag_failed_zaibgang_red_1 = 0
SAVED_COUNTER flag_failed_zaibgang_red_2 = 0

SAVED_COUNTER flag_failed_krisgang_green_1 = 0
SAVED_COUNTER flag_failed_krisgang_green_2 = 0
SAVED_COUNTER flag_failed_krisgang_yellow_1 = 0
SAVED_COUNTER flag_failed_krisgang_yellow_2 = 0
SAVED_COUNTER flag_failed_krisgang_yellow_3 = 0
SAVED_COUNTER flag_failed_krisgang_red_1 = 0
SAVED_COUNTER flag_failed_krisgang_red_2 = 0

SAVED_COUNTER flag_failed_final_mission = 0

SAVED_COUNTER flag_failed_zaibgang_green_1a = 0
SAVED_COUNTER flag_failed_zaibgang_green_2a = 0
SAVED_COUNTER flag_failed_zaibgang_yellow_1a = 0
SAVED_COUNTER flag_failed_zaibgang_yellow_2a = 0
SAVED_COUNTER flag_failed_zaibgang_yellow_3a = 0
SAVED_COUNTER flag_failed_zaibgang_red_1a = 0
SAVED_COUNTER flag_failed_zaibgang_red_2a = 0

SAVED_COUNTER flag_failed_krisgang_green_1a = 0
SAVED_COUNTER flag_failed_krisgang_green_2a = 0
SAVED_COUNTER flag_failed_krisgang_yellow_1a = 0
SAVED_COUNTER flag_failed_krisgang_yellow_2a = 0
SAVED_COUNTER flag_failed_krisgang_yellow_3a = 0
SAVED_COUNTER flag_failed_krisgang_red_1a = 0
SAVED_COUNTER flag_failed_krisgang_red_2a = 0

SAVED_COUNTER flag_failed_final_missiona = 0

//Dit lijkt te zijn om te bepalen dat de eerste missie van een gele/rode telefoon reeds is gehaald. Preciese werking nog niet duidelijk.
//SAVED_COUNTER flag_played_zaibgang_yellow_3 = 0
//SAVED_COUNTER flag_played_zaibgang_red_2 = 0
//SAVED_COUNTER flag_played_zaibgang_yellow_3a = 0
//SAVED_COUNTER flag_played_zaibgang_red_2a = 0

//SAVED_COUNTER flag_played_krisgang_yellow_3 = 0
//SAVED_COUNTER flag_played_krisgang_red_2 = 0
//SAVED_COUNTER flag_played_krisgang_yellow_3a = 0
//SAVED_COUNTER flag_played_krisgang_red_2a = 0

SAVED_COUNTER flag_on_mission = 0
SAVED_COUNTER flag_on_zaibgang_mission = 0
SAVED_COUNTER flag_on_krisgang_mission = 0
SAVED_COUNTER flag_on_gang_3_mission = 0 //is nodig omdat GTA2 altijd uitgaat van drie gangs. Misschien twee keer dezelfde flag opgeven in PHONE_TEMPLATE?
SAVED_COUNTER flag_zaibgang_missions_passed = 0
SAVED_COUNTER flag_krisgang_missions_passed = 0
SAVED_COUNTER flag_zaibgang_missions_failed = 0
SAVED_COUNTER flag_krisgang_missions_failed = 0
SAVED_COUNTER flag_all_missions_passed = 0
SAVED_COUNTER flag_all_missions_failed = 0
SAVED_COUNTER flag_secrets_passed = 0
SAVED_COUNTER flag_secrets_failed = 0
SAVED_COUNTER flag_game_been_saved = 0

DECLARE_GANG_ONE_MISSIONS_PASSED_FLAG ( flag_zaibgang_missions_passed )
DECLARE_GANG_TWO_MISSIONS_PASSED_FLAG ( flag_krisgang_missions_passed )
DECLARE_MISSIONS_PASSED_FLAG ( flag_all_missions_passed )

DECLARE_FINISH_SCORE ( 5000 )
DECLARE_TOTAL_MISSIONS ( 2 )
DECLARE_TOTAL_SECRETS ( 5 )

DECLARE_GANG_ONE_MISSIONS_TOTAL ( 1 )
DECLARE_GANG_TWO_MISSIONS_TOTAL ( 1 )

DECLARE_SECRETS_PASSED_FLAG ( flag_secrets_passed )
DECLARE_SECRETS_FAILED_FLAG ( flag_secrets_failed )

DECLARE_MISSION_FLAG ( player1 , flag_on_mission )
DECLARE_GANG_ONE_MISSION_FLAG ( player1 , flag_on_zaibgang_mission )
DECLARE_GANG_TWO_MISSION_FLAG ( player1 , flag_on_krisgang_mission )
DECLARE_GANG_TWO_MISSION_FLAG ( player1 , flag_on_gang_3_mission ) //Misschien nodig, misschien niet.

DECLARE_GANG_ONE_DEATH_BASE_BRIEF ( player1 , 4200 )
DECLARE_GANG_TWO_DEATH_BASE_BRIEF ( player1 , 4210 )

SAVED_COUNTER counter_all_missions_passed = 0
SAVED_COUNTER true = 1
SAVED_COUNTER false = 0
COUNTER flag_reached_finish_score = 0

//Bedoeling van deze counters is nog onduidelijk
SAVED_COUNTER zaibgang_easy_phones_killed
SAVED_COUNTER zaibgang_med_phones_killed
SAVED_COUNTER zaibgang_hard_phones_killed
SAVED_COUNTER krisgang_easy_phones_killed
SAVED_COUNTER krisgang_med_phones_killed
SAVED_COUNTER krisgang_hard_phones_killed

FORWARD ans_zaibgang_green_phone_1:
FORWARD ans_krisgang_green_phone_1:

/*
FORWARD ans_zaibgang_green_phone_2:
FORWARD ans_zaibgang_yellow_phone_1:
FORWARD ans_zaibgang_yellow_phone_2:
FORWARD ans_zaibgang_red_phone:
FORWARD ans_krisgang_green_phone_2:
FORWARD ans_krisgang_yellow_phone_1:
FORWARD ans_krisgang_yellow_phone_2:
FORWARD ans_krisgang_red_phone:
*/

FORWARD savepoint_1:
FORWARD ans_zaibgang_info_phone:
FORWARD ans_krisgang_info_phone:

//XXXXXXXXXXXXXXXXXXXXXXXXXXXX GTA 2 TOKENS FOR KILL BONUS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

OBJ_DATA gta2_token = (128.5, 123.5) 0 BONUS_TOKEN // x50. Aantal badges lijkt niet gedeclareerd te worden. Wellicht hardcoded naar vijftig per level?

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX OBJECTS FOR KILL FRENZYS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

OBJ_DATA KF_icon1 = (120.0, 119.0) 0 KILL_FRENZY
OBJ_DATA KF_icon2 = (121.0, 119.0) 0 KILL_FRENZY
OBJ_DATA KF_icon3 = (122.0, 119.0) 0 KILL_FRENZY
OBJ_DATA KF_icon4 = (123.0, 119.0) 0 KILL_FRENZY
OBJ_DATA KF_icon5 = (124.0, 119.0) 0 KILL_FRENZY

BONUS kill_frenzy_1
BONUS kill_frenzy_2
BONUS kill_frenzy_3
BONUS kill_frenzy_4
BONUS kill_frenzy_5

ONSCREEN_COUNTER kf_counter
SAVED_COUNTER counter_total
SAVED_COUNTER kf_counter_total
TIMER_DATA kf_timer

FORWARD do_kill_frenzy_1:
FORWARD do_kill_frenzy_2:
FORWARD do_kill_frenzy_3:
FORWARD do_kill_frenzy_4:
FORWARD do_kill_frenzy_5:

//XXXXXXXXXXXXXXXXXXXXXXXXXXX Zaibatsu Corporation green mission 1 XXXXXXXXXXXXXXXXXXXXXXXXXXX

THREAD_TRIGGER thr_zaibgang_green_1 = THREAD_WAIT_FOR_ANSWER_PHONE ( player1 , zaibgang_green_phone_1 , ans_zaibgang_green_phone_1: )

ans_zaibgang_green_phone_1:
DO_EASY_PHONE_TEMPLATE ( 3118 , zaibgang_green_1.mis , flag_passed_zaibgang_green_1 , flag_failed_zaibgang_green_1a , flag_on_zaibgang_mission , flag_on_gang_3_mission , flag_on_krisgang_mission , zaibgang , 0 )
RETURN

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Hare Krishna green mission 1 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

THREAD_TRIGGER thr_krisgang_green_1 = THREAD_WAIT_FOR_ANSWER_PHONE ( player1 , krisgang_green_phone_1 , ans_krisgang_green_phone_1: )

ans_krisgang_green_phone_1:
DO_EASY_PHONE_TEMPLATE ( 3098 , krisgang_green_1.mis , flag_passed_krisgang_green_1 , flag_failed_krisgang_green_1a , flag_on_krisgang_mission , flag_on_gang_3_mission , flag_on_zaibgang_mission , krisgang , 0 )
RETURN

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Save point XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

THREAD_TRIGGER thr_savepoint_1 = THREAD_WAIT_FOR_CHAR_IN_AREA (player1, 126.5, 109.5, 2.0, 3.0, 1.0, savepoint_1:)
savepoint_1:
PERFORM_SAVE_GAME ( thr_savepoint_1 , 44.5 , 100.5 , 2.0 , 3.0 , 1.0 )
RETURN

//************************************** KILL FRENZY ONE ***********************************

THREAD_TRIGGER thr_kill_frenzy_1 = THREAD_WAIT_FOR_CHAR_IN_AREA (player1, 120.0, 119.0, 2.0, 0.2, 0.2, do_kill_frenzy_1:)

do_kill_frenzy_1:
START_BASIC_KF_TEMPLATE ( thr_kill_frenzy_1 , 4315 , KF_icon1 , player1 , machine_gun )
kill_frenzy_1 = START_BONUS_CHECK ( no_zone , 1800 , 40 , 0 , char , not_exclusive , by_gun , none , no_occupation )
DO_BASIC_KF_TEMPLATE ( kill_frenzy_1 , kf_timer , 60 , kf_counter , kf_counter_total , 40 , 4315 , player1 , lives , 1 )
RETURN



//************************************* PC KILL FRENZY TWO *********************************

THREAD_TRIGGER thr_kill_frenzy_2 = THREAD_WAIT_FOR_CHAR_IN_AREA (player1, 121.0, 119.0, 2.0, 0.2, 0.2, do_kill_frenzy_2:)

do_kill_frenzy_2:
START_BASIC_KF_TEMPLATE ( thr_kill_frenzy_2 , 4316 , KF_icon2 , player1 , machine_gun )
kill_frenzy_2= START_BONUS_CHECK ( no_zone , 2700 , 20 , 0 , char , not_exclusive , by_gun , none , any_law_enforcement )
DO_BASIC_KF_TEMPLATE ( kill_frenzy_2 , kf_timer , 90 , kf_counter , kf_counter_total , 20 , 4316 , player1 , lives , 1 )
RETURN

//************************************ PC KILL FRENZY THREE*********************************

THREAD_TRIGGER thr_kill_frenzy_3 = THREAD_WAIT_FOR_CHAR_IN_AREA (player1, 122.0, 119.0, 2.0, 0.2, 0.2, do_kill_frenzy_3:)

do_kill_frenzy_3:
START_BASIC_KF_TEMPLATE ( thr_kill_frenzy_3 , 4317 , KF_icon3 , player1 , molotov )
kill_frenzy_3 = START_BONUS_CHECK ( no_zone , 1800 , 20 , 0 , char , not_exclusive , by_molotov , none , no_occupation )
DO_BASIC_KF_TEMPLATE ( kill_frenzy_3 , kf_timer , 60 , kf_counter , kf_counter_total , 20 , 4317 , player1 , lives , 1 )
RETURN

//************************************ PC KILL FRENZY FOUR**********************************

THREAD_TRIGGER thr_kill_frenzy_4 = THREAD_WAIT_FOR_CHAR_IN_AREA (player1, 123.0, 119.0, 2.0, 0.2, 0.2, do_kill_frenzy_4:)

do_kill_frenzy_4:
START_BASIC_KF_TEMPLATE ( thr_kill_frenzy_4 , 4318 , KF_icon4 , player1 , molotov )
kill_frenzy_4 = START_BONUS_CHECK ( no_zone , 2700 , 30 , 0 , car , not_exclusive , by_molotov , none , none )
DO_BASIC_KF_TEMPLATE ( kill_frenzy_4 , kf_timer , 90 , kf_counter , kf_counter_total , 30 , 4318 , player1 , lives , 1 )
RETURN

//*********************************** PC KILL FRENZY FIVE **********************************

THREAD_TRIGGER thr_kill_frenzy_5 = THREAD_WAIT_FOR_CHAR_IN_AREA (player1, 124.0, 119.0, 2.0, 0.2, 0.2, do_kill_frenzy_5:)

do_kill_frenzy_5:
START_BASIC_KF_TEMPLATE ( thr_kill_frenzy_5 , 4319 , KF_icon5 , player1 , rocket_launcher )
kill_frenzy_5 = START_BONUS_CHECK ( no_zone , 1800 , 40 , 0 , char , not_exclusive , by_rocket_launcher , none , no_occupation )
DO_BASIC_KF_TEMPLATE ( kill_frenzy_5 , kf_timer , 60 , kf_counter , kf_counter_total , 40 , 4319 , player1 , lives , 1 )
RETURN

//XXXXXXXXXXXXXXXXXXXXXXXXX Zaibatsu Corporation information phone XXXXXXXXXXXXXXXXXXXXXXXXXXX

THREAD_TRIGGER thr_zaibgang_info_phone = THREAD_WAIT_FOR_ANSWER_PHONE (player1, zaibgang_info_phone, ans_zaibgang_info_phone:)

ans_zaibgang_info_phone:
DISPLAY_BRIEF ( 3724 ) //"We are the Hare Krishna."
DISPLAY_BRIEF ( 3725 ) //"We hate the Zaibatsu Corporation!"
RETURN

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXX Hare Krishna information phone XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

THREAD_TRIGGER thr_krisgang_info_phone = THREAD_WAIT_FOR_ANSWER_PHONE (player1, krisgang_info_phone, ans_krisgang_info_phone:)

ans_krisgang_info_phone:
DISPLAY_BRIEF ( 3728 ) //"We are the Zaibatsu Corporation."
DISPLAY_BRIEF ( 3729 ) //"We hate the Hare Krishna!"
RETURN

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

LEVELSTART

IF ( flag_game_been_saved = 0 )
DISPLAY_BRIEF ( 3230 ) // "Welcome to this level!"
SET flag_game_been_saved = 1
ENDIF

SET_GANG_KILL_REACTION ( krisgang , zaibgang , 1 )
SET_GANG_KILL_REACTION ( zaibgang , krisgang , 1 )

SET_DEATHARREST_STATE ( player1 , ON )

WHILE ( true = 1 )
IF ( ( counter_all_missions_passed = 14 )
AND ( flag_on_mission = 0 ) )
SET counter_all_missions_passed = 15
// LAUNCH_MISSION ( example_end.mis )
ENDIF

IF ( ( ( CHECK_SCORE_GREATER ( player1 , 4999 ) )
AND ( flag_on_mission = 0 ) )
AND ( flag_reached_finish_score = 0 ) )
LEVEL_END_POINT_ARROW_AT ( arrow , 126.5 , 108.5 , 2.0 )
SET flag_reached_finish_score = 1
DISPLAY_BRIEF ( 3752 )
ENDIF

IF ( ( ( flag_reached_finish_score = 1 )
AND ( flag_on_mission = 1 ) )
AND ( CHECK_SCORE_GREATER ( player1 , 4999 ) ) )
REMOVE_ARROW ( arrow )
SET flag_reached_finish_score = 0
ENDIF

IF ( ( ( flag_reached_finish_score = 1 )
AND ( flag_on_mission = 0 ) )
AND ( NOT ( CHECK_SCORE_GREATER ( player1 , 4999 ) ) ) )
REMOVE_ARROW ( arrow )
SET flag_reached_finish_score = 0
DISPLAY_BRIEF ( 3753 )
ENDIF

IF ( ( ( flag_reached_finish_score = 1 )
AND ( flag_on_mission = 0 ) )
AND ( LOCATE_CHARACTER_ANY_MEANS ( player1 , 126.5 , 108.5 , 2.0 , 1.0 , 1.0 ) ) )
FINISH_LEVEL ( BONUS_1 )
ENDIF
ENDWHILE

LEVELEND[/mis]

I know why the error happens and it says it doesn't recognise the "arrow" token which is located at line 302 and down.

What can I do to fix this error? I'd like to take this example as a base and then expand on it to make a mission of my own. I have coded for 2 or 3 years now but like pretty much any new language you're going to learn, there'll always be some sort of hurdle to get in your way.

Thanks.
User avatar
Sektor
Boss
Boss
Posts: 1423
Joined: 04 Mar 2008, 06:51
GH nick: Sektor
Location: GTAMP.com
Contact:

Re: Example GTA 2 Script Not Working

Post by Sektor »

Welcome to the forum. You need to delcare arrow. Add this to the top:

Code: Select all

ARROW_DATA arrow
D.E.L.B.
Jaywalker
Jaywalker
Posts: 8
Joined: 01 Jul 2015, 22:03

Re: Example GTA 2 Script Not Working

Post by D.E.L.B. »

Thanks and thanks :).

Okay so it compiled successfully but it says krisgang_green_1.scr is missing in data\wil for some reason...

Do you know where I can find that file?

It's got something to do with the phones it has, tried looking on here but nothing:
http://nl.m.wikigta.org/wiki/PHONEs_(GTA2)
User avatar
Sektor
Boss
Boss
Posts: 1423
Joined: 04 Mar 2008, 06:51
GH nick: Sektor
Location: GTAMP.com
Contact:

Re: Example GTA 2 Script Not Working

Post by Sektor »

I don't know where to get them. You could just comment out the zaibgang_green_1.mis and krisgang_green_1.mis lines by adding // in front of them.
D.E.L.B.
Jaywalker
Jaywalker
Posts: 8
Joined: 01 Jul 2015, 22:03

Re: Example GTA 2 Script Not Working

Post by D.E.L.B. »

I think there's going to be some more issues if I comment them out.

Are there any open source missions about that I can take a look at?
User avatar
Sektor
Boss
Boss
Posts: 1423
Joined: 04 Mar 2008, 06:51
GH nick: Sektor
Location: GTAMP.com
Contact:

Re: Example GTA 2 Script Not Working

Post by Sektor »

The Industrial scripts are open source and included with the official compiler: http://gtamp.com/GTA2/gta2script.7z

That might be a bit complex to use as a template. There are many open source scripts but most don't use separate scripts for each mission like the official scripts did.

This one has a few missions but it doesn't use phones: http://projectcerbera.com/gta/2/jailbreak/
D.E.L.B.
Jaywalker
Jaywalker
Posts: 8
Joined: 01 Jul 2015, 22:03

Re: Example GTA 2 Script Not Working

Post by D.E.L.B. »

I'll try it out. Thanks.
D.E.L.B.
Jaywalker
Jaywalker
Posts: 8
Joined: 01 Jul 2015, 22:03

Re: Example GTA 2 Script Not Working

Post by D.E.L.B. »

Sorry for double post but how do I get the bil scripts to launch when I've started a new game? The Industrial District is like the third section is it not?
User avatar
Sektor
Boss
Boss
Posts: 1423
Joined: 04 Mar 2008, 06:51
GH nick: Sektor
Location: GTAMP.com
Contact:

Re: Example GTA 2 Script Not Working

Post by Sektor »

Yes third district. I'd run gta2manager, debug tab, enter the map file names bil.gmp etc, tick skip frontend.
D.E.L.B.
Jaywalker
Jaywalker
Posts: 8
Joined: 01 Jul 2015, 22:03

Re: Example GTA 2 Script Not Working

Post by D.E.L.B. »

Hmm, I don't have a debug tab in my GTA2Manager. Any ideas why?

Sorry for asking so many questions.
User avatar
Sektor
Boss
Boss
Posts: 1423
Joined: 04 Mar 2008, 06:51
GH nick: Sektor
Location: GTAMP.com
Contact:

Re: Example GTA 2 Script Not Working

Post by Sektor »

http://gtamp.com/gta2/gta2-cheats/ , run the reg file to enable debug
D.E.L.B.
Jaywalker
Jaywalker
Posts: 8
Joined: 01 Jul 2015, 22:03

Re: Example GTA 2 Script Not Working

Post by D.E.L.B. »

Huh, not working... I do have the Steam version though. I'll just use the CHEATS.

How are the open source missions organised exactly? What name corresponds to what mission in the Industrial District?
User avatar
Sektor
Boss
Boss
Posts: 1423
Joined: 04 Mar 2008, 06:51
GH nick: Sektor
Location: GTAMP.com
Contact:

Re: Example GTA 2 Script Not Working

Post by Sektor »

k = Krishna
r = Redneck
z = Zaibatsu
e = easy
m = medium
h = hard

bil_end.scr
bil_ke1.scr
bil_ke2.scr
bil_kh1.scr
bil_kh2.scr
bil_km1.scr
bil_km2.scr
bil_km3.scr
bil_re1.scr
bil_re2.scr
bil_rh1.scr
bil_rh2.scr
bil_rm1.scr
bil_rm2.scr
bil_rm3.scr
bil_ze1.scr
bil_ze2.scr
bil_zh1.scr
bil_zh2.scr
bil_zm1.scr
bil_zm2.scr
bil_zm3.scr
User avatar
Cuban-Pete
Immortal
Posts: 909
Joined: 29 Jan 2010, 15:03
GH nick: Cuban-Pete

Re: Example GTA 2 Script Not Working

Post by Cuban-Pete »

GTA2 Steam version?
"Mmmm, your eyes are so beautiful."
D.E.L.B.
Jaywalker
Jaywalker
Posts: 8
Joined: 01 Jul 2015, 22:03

Re: Example GTA 2 Script Not Working

Post by D.E.L.B. »

Cuban-Pete wrote:GTA2 Steam version?
Yeah.

I found an example script on Ben Millard's site from the documentation:
[mis]// Example script
// waits for played ped to cross a 'trigger point' & then sends a 'dummy' ped to a point, and the player
// has to kill him before his arrival at the destination.


// data - these are 'read through' when the script is loaded & ped under player control is created.

PLAYER_PED player = (90.5,133.5,255.0) 180 0
PED_DATA target_ped // ped for the player to kill
LOC_DATA target_location // where we're going to send target_ped
THREAD_DATA threadinfo // for storing new thread info

// trigger data - coords, width + height of trigger, and the function it 'starts'
TRIGGER triggerpoint = (95.5,133.5,2.0) 1 1 assasin_mission:

// this is where we'll store the length of time it takes for ped to arrive
COUNTER timer = 0

// general purpose 'flag'
COUNTER flag = 0

/* send_and_wait_for_ped
* ------------------------------
* function : send target_ped to target_location & wait for his arrival
* Will store the number of cycles it took in timer
*
*/

send_and_wait_for_ped:
// send ped to block - travels by any means necessary to get there
SEND_PED_TO_BLOCK (target_ped, target_location)
// if ped hasn't arrived at target yet, inc counter + try again next cycle
WHILE (NOT (IS_PED_IN_BLOCK(target_ped, target_location)) )
INC (timer)
ENDWHILE
return


//
// assasin_mission
// --------------------
// function : Player has to go kill a ped before ped reaches a target
//

assasin_mission:
// order played to kill ped
DISPLAY_BRIEF (23)
// create second thread that will deal with sending the target_ped to target
// while we continue working, checking for deaths etc
threadinfo = CREATE_THREAD send_and_wait_for_ped:

// while ped hasn't arrived - do this block. EXEC means it runs through ALL
// the checks each cycle, rather than one line at a time
WHILE_EXEC (finish == 0)
{
// check if target_ped has died
IF (IS_PED_DEAD(target_ped))
// check if player managed to kill him
IF (DID_PLAYER_KILL_PED(target_ped))
// congratulate player!
DISPLAY_BRIEF (25) // "Well done, you've killed the target"
ADD_SCORE(10000)
MISSION_SUCCESS // store that we've succeeded a mission
finish = 1
ELSE
// player didn't kill ped, so mission failed
DISPLAY_BRIEF (26) // "You screwed up.. Still, he's dead."
MISSION_FAIL // store that we've failed…
finish = 1
ENDIF
ENDIF

// if second thread has finished, ped reached target
IF (NOT (CHECK_THREAD_ALIVE(threadinfo)) )
// failed!
DISPLAY_BRIEF (27) // "He's reached the base! You've failed"
MISSION_FAIL
finish = 1
ENDIF
ENDWHILE_EXEC

// finished mission, do clear up

// make sure thread is killed
IF (CHECK_THREAD_ALIVE(threadinfo))
KILL_THREAD (threadinfo)
ENDIF
return

// main game loop
//
// there should only ever be one 'level_start … Level_end' loop in the scriptfile, and GBH will
// automatically start the program from this line.

level_start
// first off, create dummy ped & target location
target_ped = CREATE_PED (80.5,55.5,255.0) 90 4
target_loc = CREATE_LOC (200.5,33.5,2.0) 1 1

// switch on trigger - after this point, if player crosses this block, the
// assasin_mission is started
SWITCH_ON_TRIGGER (triggerpoint)

// this is the main game 'loop' doing any basic work that needs done each cycle, or
// general work.

// here, as an example, the level keeps running until the player runs out of lives
WHILE (GET_PLAYER_LIVES > 0)
DO_NOWT // empty clause
ENDWHILE
level_end[/mis]

I get an error when I compile this file also:
unrecognised token in script file
CURRENT TOKEN='PED_DATA' on line 9

Why on Earth is it so difficult to get a simple script working? It also happens for LOC_DATA, THREAD_DATA and TRIGGER.

What file should I replace to get this working? bil.mis, wil.mis or ste.mis or something else altogether?

Also, Happy B-day Sektor!
User avatar
Sektor
Boss
Boss
Posts: 1423
Joined: 04 Mar 2008, 06:51
GH nick: Sektor
Location: GTAMP.com
Contact:

Re: Example GTA 2 Script Not Working

Post by Sektor »

That's not a real script, I think it's supposed to be pseudo code. There's really no reason for it to exist but it was just copied from the official script document.

At the top of the script on BenMillard's site it says:

"Now, here is a detailed GTA2script example (doesn’t work) of the structure & contents of a simple mission from beginning to end, with comments detailing what is happening."

Ben made a working example: http://projectcerbera.com/gta/2/tutorials/multiplayer
User avatar
Sektor
Boss
Boss
Posts: 1423
Joined: 04 Mar 2008, 06:51
GH nick: Sektor
Location: GTAMP.com
Contact:

Re: Example GTA 2 Script Not Working

Post by Sektor »

The mission in the first post isn't a good template to work from since it's missing files.
Post Reply