Létrehozása vice city
Készítsen küldetések GTA Vice City.
A szerkezet a misszió forgatókönyvet.
Hagyományosan az összes kódot osztható 4 blokk
1. A memória egység csak egy sort - meghatározzák a MEMORY megy, és a számát fenntartott memória byte-ban.
2. blokk meghatározása 3D-objektumok, kezdődik a sor objektumok meghatározását 204-204 a teljes objektumok száma. Ezután jön a meghatározása a tárgyak maguk - meghatározzák az objektum vagy objektum nevét.
Miért tárgyak pontos meghatározása a kódot. amely kezelni, például a kaput a sziget StarFish kezdetben zárt, majd a múló játék nyitnak.
3. A blokk meghatározás a misszió, feladatok meghatározását - az összes küldetések és a listán a küldetések és mutatókat kezdetét jelöli a misszió. DEFINE misszió 1 ЈЈMission1 - ez a vonal határozza meg a misszió az 1 számot a címkén: Mission1.
4. A blokk kód valójában ebben a mondatban már írt kódját küldetések.
Most, a parancsnoki struktúra.
03CB: beállított kamera $ X $ Y $ Z - Ez a parancs beállítja a kamerát a megadott koordinátákat.
03SB - műveleti kód.
set kamera - parancs figyelmen kívül hagyja a fordító.
$ X $ Y $ Z - paraméterek, ebben az esetben ez a kamera koordinátáit.
A fentiekben leírtak szerint maga a parancs figyelmen kívül hagyja a fordító, hogy van, a 03CB Compiler: beállított kamera $ X $ Y $ Z és 03CB: $ X $ Y $ Z ugyanaz. Akkor miért van szükségünk a parancsokat magukat, de nagyon egyszerűen kedvéért, ez sokkal könnyebb megjegyezni, mint egy parancs opkódot. Írókészlet kamera, nyomja meg az F1 és műveleti kód és a paraméterek csatolt magukat.
Változókat.
Minden nyelv Vysokova szintű programozási változók felhasználásával
és a Mission Builder sem kivétel. A változók azt jelöli $ jel. Miért változók ismét szükség a kényelem kódot írni. Például a fenti látja a következő sort 03CB: beállított kamera $ X $ Y $ Z - a koordináták a kamrát a változó $ X $ Y $ Z, akkor írj egy olyan - 03CB: beállított kamera 3,0 1,0 4,0, de ha továbbra is használni fogja ezeket a koordinátákat, akkor könnyebb, hogy őket a változókat:
0005: $ X = 3,0. Ez a parancs a változó $ X lesz egyenlő 3,0
0005: $ Y = 1,0. Ez a parancs a változó $ Y lenne egyenlő 1,0, stb
Emellett az összes matematikai műveletek, összeadás, osztás lehet végezni csak a változókat. A változók kötni nemcsak a száma, de általában bármilyen tárgyat
009A: $ ACTOR1 = create_actor 4 #COP 1,0 1,0 1,0 - ez a csapat, hoztunk létre egy rendőr egy változó $ ACTOR1.
Matematikai műveleteket.
Változtatható Ma már tudjuk, a matematikai műveletek.
A Mission Builder koordinátákat univerzálisan alkalmazható. Hozzon létre egy játékos adja meg a koordinátákat, ami küld egy talicska oda, majd a koordinátákat újra. Utility Player Pos, folyton a gomb F4 a jelenlegi helyzetben a játékos. letöltés
Kétféle számokat használják az MB:
Egész - egész szám. 100 közötti egész szám.
Float - lebegőpontos szám, 3.0.
Utasításból dolgozni különböző szám különböző.
0004: $ X = 10, megállapítja, hogy a változó $ X 10.
0008: $ X + = 5, a kifejezés a változó 5 ÖSSZESEN 15.
0010: $ X * = 2, szorozzuk két, összesen 30.
000C: $ X - = 10, kivonni 10 Összesen 20.
0014: $ X / = 4, ossza el 4 összesen 5.
Most utasításokra lebegőpontos számokat.
0009: - összeadás.
000D: - kivonás.
0011: - szorzás.
0015 - Division.
Típusai használt MB.
Itt figyelembe vesszük, hogy milyen típusú szimbólumok, amelyek használják az MB.
Az egyik típus már tudjuk, egy $ jelzik változó.
Használt másik típusú változók, jelöljük jele @. Ő használt 16 bites értékeket általában a belső időzítő. A változó neve csak egy szám, amely nem CAR @ és PED @, csak számokat.
0006: @ 2 = 100, állítsa be a változó @ 2, amelynek értéke 100.
Írja JJ - amint azt az átmenetet a védjegyet semmiféle kódot.
0002: ugrás ЈЈLabel1, az átmenetet a címkén: Label1
J típus - jelentése átmenet egy címkét egy adott blokk.
# Jellel kijelölt gép Pedy fegyvereket.
A jele átmenet a címke - J, sok aranyér, ez kapcsolódik a Windows kódolás, nem csak a Windows 9x, hogy általában megjelenik egy másik, jobb, hogy másolja a jel az előző sor, vagy nem lesz képes lefordítani a kódot.
Most, hogy van egy általános képet a változók típusát írunk az igénytelen küldetés. A misszió az, hogy meg kell előzni oborzevschego rendőr a versenyen.
Továbbá, a futamot nyert megtöri az autó ellenfél. A verseny kerül sor a sziget StarFish. Run VC Mission Builder, ha dob ez az első alkalom, hogy meg kell határozni a mappát Vice City.Chtoby nem írja a kódot a semmiből, mi lesz az alapja a fájl, amelyben a vágás az összes történetet küldetések, nyomja meg a Ctrl + O és megnyitja a fájlt Stripped_complete.txt amely MissionBuilder \ Stripped script mappát. Kezdeni, meg kell adni a küldetésünk a misszió csomagot. A Szerkesztés menüből válassza ki a Keresés (search), és a nyitott ablakon írási feladatok meghatározását, most találtunk egy helyet, ahol a meghatározott küldetés. Módosítása az összes küldetések feladatok meghatározását a 2. és hozzáadása után 0 DEFINE MISSION összhangban küldetésünket, határozza MISSION ЈЈMyMission 1 AT. Tehát rámutatott arra, hogy a küldetése, hogy a címkén. MyMission.
Menj a legvégén a fájlt, mielőtt a vonal 004E: end_thread, hozzátéve, csak egy sort - 0417: kezdődik misszió 1, ezért indul a küldetésünket. És most a móka, a kód maga a mi küldetésünk.
Írás: MyMission - Start címke küldetés. Hozzon létre egy küldetés patak nevű MISSION, 03A4: name_thread „küldetés”, biztos, hogy hozzon létre egy patak a szükséges memóriát, miután létrehozta azt. Készíts egy kis késés a 1000ms - 0001: várjon 1000 ms. Ezután veszi a játékos az elején a verseny 0055: put_player $ PLAYER_CHAR meg -273,507 -489,287 10,063. $ PLAYER_CHAR - csak utal a játékos, majd megy a koordinátákat a tengelyek X, Y, Z.Teper létre kell hozni egy autót a számunkra, és az ellenfél, és az ellenfél maga oborzevschego rendőr :) iránti kérelmet nyújt egy modellt.
: RequestModels; jel
0247: kérésre modell #DELUXO; Arra kérünk az autó modell Deluxo
0247: kérésre modell #COP; Kérünk egy modell rendőr
Továbbá azt is ellenőrizni kell, hogy egy ilyen modell létezik.
: CheckCars
00D6: ha 21; ha
8248: NEM modell #DELUXO áll rendelkezésre; Deluxo modell nem létezik
8248: NEM modell #COP áll rendelkezésre; és Sop modell nem létezik
004D: jump_if_false ЈCreateCars; ha van
0001: várjon 0 ms; késés
0002: ugrás ЈCheckCars; megy a címkén: CheckCars
Nézzük részletesebben ezt a blokkot, ha a modell autók és a rendőrök ott, akkor lépjen a következő jelet, ha nem ott, akkor menj vissza a mondat elején, és minden ismétlődik újra. Ha észrevette a ha érdemes 21 mert azonnal ellenőrizze a 2 feltétel. Ezután elkészítünk autók és a rendőrök.
: CreateCars
Törölje a területen, ahol az autók jönnek létre.
0395: világos terület 1 át -274,309 -486,170 tartományban 10,0 10,0
valóban létre autók magukat
00A5: $ PLAYER_CAR = create_car #DELUXO meg -274,309 -486,170 10,071
00A5: $ OPP_CAR = create_car #DELUXO meg -272,837 -476,868 10,095
Mi ezért hoztuk létre két autó Deluxo, a változó $ PLAYER_CAR - gép lejátszó és $ OPP_CAR - az ellenfél autóját. #DELUXO - megállapítja, hogy létre kell hozni egy talicska Deluxo és nem valami mást. Elvileg lehet helyettesíteni # PCJ600 majd a verseny lesz a motor, de ne felejtsük el, hogy kérésre és ellenőrzése is # PCJ600 szállítani.
Ezután kapcsolja autók kilencven fokkal.
0175: set_car $ PLAYER_CAR z_angle_to 90.
0175: set_car $ OPP_CAR z_angle_to 90,0
ami egy rendőr a kormány mögött a talicska $ OPP_CAR
0129: $ OPP_COP = create_actor 4 #COP in_car $ OPP_CAR driverseat
Ezután állítsa be a tulajdonságokat a talicska.
Mi a maximális sebességet az autók.
00AD: set autó $ OPP_CAR maximális sebesség 50,0
Tedd az ellenfél figyelmen kívül hagyta az autót fények
00AE: unknown_set_car $ OPP_CAR to_ignore_traffic_lights 2
Tesszük ketrecben őrült :)
00A8: set autó $ OPP_CAR pszicho vezető
Reset zászlók rendőr
01ED: Reset színész $ OPP_COP zászlók
Van egy hiba után azonnal létrehozását egy talicska vezetett, hogy minden alkalommal próbál -Szóval, hová menjen, még ha mi nem megengedett. Ezért a write vonalon
02C2: autó $ OPP_CAR meghajtó pont -272,837 -476,868 10,095
így jelzik, hová menjen talicska $ OPP_CAR. De a koordinátákat kell megtenniük, ez a helyzet, ha létrehoztunk egy talicska. Így az autó nem megy sehova, de megszabadultak a hiba.
Ezután, amikor az összes gép által létrehozott, itt az ideje, hogy indítsa el a versenyt.
De nem azonnal, és amint a játékos ül egy talicska.
: CheckInCar
0001: várjon 0 ms; késés
00D6: ha 0; ha
80DC: NEM játékos $ PLAYER_CHAR vezetés $ PLAYER_CAR; A játékos nem a kocsiban
004D: jump_if_false ЈBackCount; Ha a gép megy a címke
0001: várjon 0 ms; késés
0002: ugrás ЈCheckInCar; Menj a címkén: CheckInCar
Ebben a kódot, akkor ellenőrizze, hogy a játékos ($ PLAYER_CHAR) az autó ($ PLAYER_CAR), akkor lépjen a következő jelet, ha nem, akkor mozog a mondat elején. Így, miközben a lejátszó a kocsiban ülve nem indul a versenyen. Azt, hogy miért kell beszúrni késések 0001: várjon 0 ms. akkor ezt a kódrészletet - ciklust. És ha ez a ciklus megismétlődik haladéktalanul, a játék csak lefagy.
Ezután elkezd számolás 3, 2, 1, akkor kezdjük a versenyt.
Először is, befagyasztja a játékos, vagyis az időt nem fogják ellenőrizni.
01B4: set játékos $ PLAYER_CHAR fagyott állapotban 0
A rendőrök azt mondják, egy cég sem :)
01F7: set_player $ PLAYER_CHAR ignored_by_cops_state_to 1
és elkezd számolás
00BA: text_styled "RACE2" 1500 ms 4; megjelenik egy üzenet 3
018C: play_sound 7 0,0 0,0 0,0; hang lejátszása
0001: várjon 1500 ms; Arra számítunk, 1500 ms
0395: világos terület 1 át -274,309 -486,170 tartományban 11,0 1,0; törölje a területen
így ismételje meg ezt a kódot 3-szor a változó csak a képernyőn megjelenő szöveget.
Ezután megjelenik egy üzenet az elején a versenyt, és felolvasztjuk lejátszó.
00BA: text_styled "RACE1" 1200 ms 4; üzenetet jelenít meg az elején a verseny
01B4: set játékos $ PLAYER_CHAR fagyott állapotban 1; "Unfreezes Player"
Végül kezdődik a verseny.
0001: várjon 0 ms; Arra számítunk,
0186: $ OPP_MRK = létre marker felett autó $ OPP_CAR; hozzon létre a marker a radar körül az ellenfél autó
02C2: autó $ OPP_CAR meghajtó pont -696,092 -489,462 9,890; rámutatnak, hogy az ellenfél autó volt a koordinátákat a küldetés befejezése
018A: $ F_CHECK = létre ellenőrzőpont -696,092 -489,462 9,890; ami egy ellenőrzőpont a radaron is jelzi a helyét a futam finálé
további feltételeinek ellenőrzése megnyerte a versenyt, ha az ellenfél halott, vagy egy játékos először jött a célvonalon.
: CheckWin;
00D6: ha 0; ha
8118: NEM színész $ OPP_COP meghalt; ellenfél zsaru él
004D: jump_if_false ЈEndMission; ha meghalt, akkor menj a címke Mission teljes
00D6: ha 0; ha
; A játékos az autó nem vezet a koordinátákat, hogy győzni fogunk a misszió sugárral X Y Z
80F7: NEM játékos $ PLAYER_CHAR 0 pont közelében az autó -696,092 -489,462 9,890 sugara 6,0 6,0 6,0
004D: jump_if_false ЈEndMission; ha a koordináták perehodm a befejezése a verseny
0001: várjon 0 ms; késés
Mi ellenőrizze a vesztes, ha az ellenfél először jött a célvonalon.
: CheckFailed
00D6: ha 0; ha
; ellenfél a versenyautó nem teljes koordinátákat
81AF: NOT autó $ OPP_CAR 0 () pont közelében -696,092 -489,462 9,890 sugara 6,0 6,0 4,0
004D: jump_if_false ЈMissFailed; ha azok, akkor már elvesztette a küldetés, és lépni a címkén veszteség
0001: várjon 0 ms; késés
0002: ugrás ЈCheckWin; megy a címkén: CheckWin
További jel, a játékos nyert vagy vesztett
; veszít
: MissFailed
00BA: text_styled "M_FAIL" 5000 ms 1; Üzenetet jelenít meg proygryshe misszió
0002: ugrás ЈEnd; Menj a címkén: End
; won
: endMission
0394: play_music 1; zenélni
01E3: text_1number_styled „M_PASS” 3000 5000 ms 1 üzenetet jelenít meg a befejezése a misszió
és teljes.
: vége
034F: elpusztítani színész elhalványul $ OPP_COP; Mi tönkre a színész $ OPP_COP, ellenfelünk
00A6: elpusztítani autó $ OPP_CAR; megsemmisíti az ellenfél autó
0164: disable_marker $ F_CHECK; tiltsa le a marker a radaron
01F7: set játékos $ PLAYER_CHAR figyelmen kívül hagyja a rendőrök állítják, 0 (true);
004E: end_thread; Befejezés a patak
Most már tudja lefordítani a kódot az SCM - fájlt, nyomja meg az F9, Mission Builder main.scm másolja a Vice City-mappát, és indítsa el a játékot.
Ez a cikk végén már fáradt kezét, kopog az clave :).
Nem is olyan régen GTA San Andreas és azt akarom mondani, hogy a kódolási küldetések számára,
nem különbözik írásban misszió helyettes város. És persze ezt a témát a küldetés nem zárt, és hamarosan közzétesz egy cikket írt bonyolultabb küldetések. És ott kevés gondolat, hogy utasításból online adatbázis adatait azok leírását és beállításait, de ez mind a jövőben ... Az eredeti küldetése a kód lehet innen letölthető. Ha problémába ütközik, a Mission Builder'u írj nekem [email protected]. de nem nyomják rám kérések spam-típusú „és írási mód alapján a film Brigade” egy ilyen levél, azonnal dobja a szemétbe. Én csak segíteni egy adott kérdésben.