2011年10月15日 星期六

簡單CLEO怪物指令講解~~~

此教學只適用於想寫怪物cleo的人~需要用到的工具有:Sanny Builder3(可編寫main cs cm檔的工具)  可以測座標的工具
這些工具只要你肯找絕對都找的到,但切記找不到時要用"其他語言",不管是找模組還是教學都一樣,我就是這樣過來的~

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------  (以上就是寫cleo時必須打的指令)
thread 'KIL' (你的總指令名稱///全部的指令都只能有英文不能有中文出現!)

:KIL_11
wait 0
if
   Player.Defined($PLAYER_CHAR)  這裡定義主角一進遊戲就開始以下的指令
jf @KIL_11
if
018B: set_marker 1@ radar_mode 2
03BC: 1@ = create_sphere_at 381.825 -2026.77 9.5 radius 10.0 設置一個紅點在x座標381.825 y座標-2026.77 z座標9.5 並定義為1@ 紅點大小10.0
jump @KIL_74

:KIL_74
wait 0
if
00EC:   actor $PLAYER_ACTOR 0 near_point 381.825 -2026.77 radius 5.0 5.0這裡定義如果主角走到這個紅點半徑5.0以內便開始以下指令,如果沒有走到便會一直循環以上指令
jf @KIL_74
jump @KIL_123

:KIL_123
03BD: destroy_sphere 1@ 刪除紅點1@
Marker.Disable(1@) 刪除紅點1@  (兩個都是一樣的東西,但如果沒有上面那段指令,將會無效~!!! 03BD: destroy_sphere 1@這段)
023C: load_special_actor 'KIL' as 4 // models 290-299 讀取模型並給予屬性為special4  kil是模型的名子,如果沒有在gta3.img加入檔名為kil的模型檔和貼圖檔,便會當機~!!!
Model.Load(#SPECIAL04)  讀取原有屬性模型(因為你上一段有給這個屬性模型任務所以這裡就必須讀取原模型~!!)
Model.Load(#CHNSAW) 讀取電鋸模型
060A: create_decision_maker_type 0 store_to 10@ // decision\allowed\m_.ped files
07E5: copy_decision_maker 10@ to 11@
038B: load_requested_models 這段是讀取遊戲要執行的其他東西,這段是一定要有的
jump @KIL_175

:KIL_175
wait 0
if
   Model.Available(#SPECIAL04)  定義模型可以用
   Model.Available(#CHNSAW) 定義模型可以用
jf @KIL_175
2@ = Actor.Create(CivMale, #SPECIAL04, 385.203, -2025.01, 9.5) 把屬性
special4模型放到x座標385.203 y座標-2025.01 z座標9.5並定義為2@
Actor.SetImmunities(2@, 0, 1, 1, 1, 0)這段是定義2@的人物其他屬性,這樣預設為正常,如果把全部的0改為1便會變成無敵  0為關掉屬性 1為打開屬性
Actor.Health(2@) = 5000 定義2@人物的血量為5000
060B: set_actor 2@ decision_maker_to 11@
0446: set_actor 2@ immune_to_headshots 0
01B2: give_actor 2@ weapon 9 ammo 1 // 這段是給2@人物武器9彈藥1
wait 3000  等待3000秒
05E2: AS_actor 2@ kill_actor $PLAYER_ACTOR 定義2@殺了主角
jump @KIL_397

:KIL_397
wait 0
if
   Actor.Dead(2@) 這裡定義如果2@人物死了,就往下一段指令走
jf @KIL_424
jump @KIL_451

:KIL_424
wait 0
if
   Actor.Dead($PLAYER_ACTOR) 這裡定義如果主角死了,就往下一段指令走
jf @KIL_397
jump @KIL_510

:KIL_451
wait 0
0394: play_music 2 撥放遊戲原有的任務完成音效
wait 3000
Player.Money($PLAYER_CHAR) += 5000 任務完成後給予主角金錢5000
Actor.RemoveReferences(2@) 移除人物2@
jump @KIL_553

:KIL_510
Actor.RemoveReferences(2@) 移除人物2@
wait 15000
jump @KIL_11    (這裡是第二段指令,也就是任務失敗後的定義,這裡我沒有給太多指令救指是循環到一開始而已)

:KIL_553
wait 0
0A93: end_custom_thread 任務結束,但這段指令一進遊戲後會再度啟動,因為前面定義為主角一進遊戲就開始的關西


這樣算結束了,因為寫cleo的範圍很大我也不知道到底該先教哪一種比較好,建議如果真的要寫去學c++會比較快,還有教學裡的指令不多,我砍了一部分,因為怕有些人只有這段就不懂了,所以我已經盡量簡單化教學了~

此教學為本人自己編寫
by Final  Ken

沒有留言:

張貼留言