Minggu, 10 Oktober 2010

Perintah-perintah AI dalam game DOOM 3

Pada penulisan ini akan dijabarkan perintah-perintah AI dalam permainan DOOM 3 seperti dibawah ini:


findEnemy [useFOV]Menampilkan musuh yang aktor dapat lihat. IfuseFOV benilai benar maka hanya akan menampilkan musuh dalam jarak pandang aktor. Returns null jika aktor berada di luar PVS pemain.
findEnemyAI [useFOV]Membuat musuh hidup yang dapat dilihat oleh aktor (bukan musuh pertama, maupun musuh yang terdekat)
findEnemyInCombatNodesMembuat musuh yang hidup membidik aktor saat terlihat oleh musuh

closestReachableEnemyOfEntity [entity]
Membuat musuh berhenti bergerak dengan suatu entitas tertentu. Penjaga menggunakan ini untuk menyerang aktor
heardSound [ignore_team]Jika suara peringatan diciptakan di daerah aktor, fingsi ini mengembalikan suara. jika tidak kembali null, ignore_team akan melewati suara yang dibuat oleh anggota lain
setEnemy [entity]Mengatur musuh jika aktor melakukan sesuatu dengan entity
clearEnemyMengatur aktor ini untuk tidak memiliki musuh
muzzleFlash [jointname]Trigger pengabungan nama dengan moncong senjata api
createMissile [jointname]Membuat proyektil (ditentukan oleh "def_projectile" dalam entityDef aktor) 
attackMissile [jointname]Meluncurkan proyektil pada musuh dan mengembalikan entity proyektil
fireMissileAtTarget [jointname],
[targetname]
Meluncurkan proyektil pada entitas tujuan yang ditetapkan. Jika tidak seperti attackMissile
launchMissile [origin], [angles]Meluncurkan proyaktil dari asal tertentu dan sudut tertentu
attackMelee [meleeDef]Melakukan serangan jarak dekat menggunakan damageDef ( lihat melee_commandoTentacle dalam actor_zombie_commando.def untuk contoh definisi). Mengembalikan nilai true jika menemukan sesuatu
directDamage [target], [damageDef]Melakukan serangan langsung ke badan target, menggunakan damageDef ditentukan oleh damageDef.
radiusDamageFromJoint [jointname],
[damageDef]
Melakukan pengerusakan radius menggunakan damageDef. Pusat radius melekat pada sendi yang ditetapkan oleh jointname
attackBegin [damageDef]Mulai serangan, jika sesuatu menyentuh aktor selama serangan tersebut, ia akan mengangani kerusakan langsung ke objek menggunakan damageDef yang spesifik
attackEndBerhenti menyerang.
meleeAttackToJoint [jointname],
[damageDef]
Deal langsung melakukan pengrusakkan menggunakan damageDef yang telah ditentukan untuk setiap entitas antara posisi mata dan sendi yang ditentukan. Ini digunakan oleh komando untuk kerusakan apapun yang menyentuk tentacle
randomPathPemilihan jalan kembali yang acak.
canBecomeSolidMengembalikan nilai true apabila tidak ada yang berpotongan geometri saat pelaku tabrakan
becomeSolidMembuat aktor padat. Mengaktifkan dan link model klip aktor dan memungkinkan aktor untuk mendapatkan kerusakan (asumsi "noDamage" tidak diatur)
becomeRagdollMengubah aktor menjadi sebuah Ragdoll. Digunakan untuk membuat Ed(ilmuah dengan lampu) mati diakhir
stopRagdollMenonaktifkan Ragdoll dan mengembalikan kontrol ke animator. Digunakan untuk monster yang dibangkitkan oleh Archvile.
setHealth [health]Mengatur kesehatan aktor.Digunakan untuk hal-hal membangkitkan, dan juga untuk ilmuan di MC Underground yang berubah menjadi zombie
getHealthMengembalikan kesehatan aktor
allowDamageMemungkinkan aktor mendapatkan kerusakan
ignoreDamageMembuat aktor tidak dapat dirusak
getCurrentYawMengembalikan sudut yam saat ini (pos, menghadap arah) dari aktor
turnTo [angle]Mengatur yaw ideal untuk aktor (tidak benar-benar mengatur yaw, aktor akan berubah selama beberapa frame)
turnToPos [position]Mengatur yaw ideal untuk actor jadi dia dapat melihat di posisi yang terperinci
turnToEntity [entity]Mengatur yaw ideal untuk actor jadi dia dapat entity di posisi yang terperinci
moveStatusMengembalikan status bergerak aktor, salah satunya sebagai berikut :
MOVE_STATUS_DONE, MOVE_STATUS_MOVING, MOVE_STATUS_WAITING, MOVE_STATUS_DEST_NOT_FOUND, MOVE_STATUS_DEST_UNREACHABLE, MOVE_STATUS_BLOCKED_BY_WALL, MOVE_STATUS_BLOCKED_BY_OBJECT, MOVE_STATUS_BLOCKED_BY_ENEMY, MOVE_STATUS_BLOCKED_BY_MONSTER
stopMoveMembuat status jalan menjadi MOVE_STATUS_DONE.
moveToCoverMemberikan arahan pada aktor untuk pindah ke daerah yang musuh tidak dapat melihat
moveToEnemyMemberikan arahan pada aktor untuk mencoba bergerak menuju musuh, atau posisi musuh yang terakhir diketahui.
moveToEnemyHeightPindah ke tempat yang lebih tinggi sama dengan musuh ( digunakan untuk para penjaga)
moveOutOfRange [entity], [range]Katakan aktor untuk menjauh dari entity yang ditentukan oleh sedikitnya unit jangkauan
moveToAttackPosition [entity],
[animation]
Katakan pada aktor untuk pindah ke beberapa posisi idmana dia dapat menyerang entitas menggunakan animasi yang ditentukan. Digunakan oleh penjaga karena dia harus masuk pada mode serang sebelum dia dapat mulai menembak
wanderKatakan aktor hanya secara acak berkeliaran tanpa arah tertentu
moveToEntity [entity]Katakan aktor untuk mendekat sedekat mungkint ke entuty
moveToPosition [pos]Katakan aktor untuk bergerak sedekat mungkin ke posisi terntentu
slideTo [pos], [time]Geser aktor ke posisi atas timeseconds. Digunakan untuk membuat aktor memastikan berada ditempat yang tepat sebelum mentrigger sesuatu. waktu biasanya cukup kecil (0,25) tetapi tidak harus
facingIdealMengembalikan nilai true apabila aktor menghadap sudut yaw ideal (sebagaimana ditetapkan oleh turnTo atau fungsi yang sama)
faceEnemyKatakan pada aktor untuk terus mengubah arah posisi musuh terakhir diketahui
faceEntity [entity]Katakan pada aktor untuk terus mengubah arah entity tertentu
getCombatNodeMengembalikan node tempur yang lebih dekat dengan musuh dari posisi aktor saat ini
enemyInCombatCone [combatCone],
[useCurrentEnemyPosition]
Mengembalikan nilai trus jika musuh berada dalam pertempuran kerucut ditentukan. Jika useCurrentPosition benar maka akan menggunakan posisi musuh yang sebenarnya, selain itu akan menggunakan posisi terakhir yang diketahui.
waitMoveTidak kembali saat pergerakan selesai.
getJumpVelocity [pos], [speed], [maxHeight]Mengembalikan vektor kecepatan yang akan menyebabkan aktor mendarat diposisi. Menghasilkan vektor nol jika loncat adalah mustahil. jumpHeight adalah melompat tinggi maksimum yang diijinkan untuk mendapatkan.
entityInAttackCone [entity]Mengembalikan nilai true jika entity pada penyerangan kerucut
canSee [entity]Mengembalikan nilai true jika entity dalam lapangan kita terlihat dan tidak berada di balik dinding
setTalkTarget [entity]Menatur target berbicara dengan entity tertentu dan AI_TALK set ke true (jika entity null maka AI_TALK set ke false)
getTalkTargetMengembalikan target bicara saat ini
setTalkState [state]Beberapa perintah Talk :TALK_NEVER, TALK_DEAD, TALK_OK, TALK_BUSY
enemyRangeMengembalikan jarak antara musuh
enemyRange2DMengembalikan jarak antara musuh 2 dimensi (tidak menggunakan kordinat z)
getEnemyMengembalikan entity musuh saat ini
getEnemyPosMengembalikan posisi terakhir yang diketahui dari musuh saat ini
getEnemyEyePosMengembalikan posisi terakhir yang diketahui dari mata musuh saat ini
predictEnemyPos [time]Mengembalikan prediksi posisi detik enemytime saat ini dari sekarang
canHitEnemyMengembalikan nilai true jika tidak ada di antara aktor dan musuhnya (atau aktor dan orang lain di tim musuh)
canHitEnemyFromAnim [animation]Mengembalikan nilai true jika proyektil yang diluncurkan dengan menggunakan animasi yang ditentukan akan memukul musuh
canHitEnemyFromJoint [jointname]Mengembalikan nilai true jika sebuah peluru diluncurkan dari sambungan yang ditentukan akan memukul musuh
enemyPositionValidMengembalikan nilai false jika aktor mengetahui bahwa tidak ada musuh diposisi terakhir yang diketahui
chargeAttack [damageDef]Memanggil attackBegin(damageDef) kemudian bergerak langsung menuju posisi musuh
testChargeAttackMengembalikan waktu yang dibutuhkan untuk menyerang musuh jika aktor berlaru lurus ke arah tersebut. Mengembalikan 0 jika ada sesuatu dijalan
testMoveToPosition [position]Mengembalikan nilai true jika tidak ada aktor dan posisi
testAnimMoveTowardEnemy [animation]Mengembalikan nilai true jika aktor dapat menekan musuh sambil menjalankan animasi yang ditentukan tanpa mendapatkan apa-apa dijalan
testAnimMove [animation]Mengembalikan nilai true jika aktor dapat melakukan animasi tanpa mendapatkan sesuatu dijalan
testMeleeAttackMengembalikan nilai trus apabila serangan dekat mengenai musuh
testAnimAttack [animation]Mengembalikan nilai true jika melakukan animasi tertentu ketika memukul pemain
shrivel [time]Modifies shaderparm 8 from 1.0 to 0.5 over time(will return after multiple frames). Not used in Doom 3.
burnPenyebab aktor untuk membakar dan pergi semakin melemah
clearBurnMenghilangkan luka bakar pada aktor(jadi aktor tidak lagi terbakar)
preBurnMengatur tampa bayangan
setSmokeVisibility [smokeSystem], [state]Mengatur sistem partikel asap yang ditentukan atau meninaktifkan (dengan menetapkan state true atau false)
numSmokeEmittersMengembalikan jumlah emitter asap pada aktor
waitAction [action]Tidak kembali sampai selesai tindakan yang ditetapkan. Dalam konteks ini tindakan umumnya nama animasi
stopThinkingPenyebab thread untuk mengakhiri dan aktor untuk pergi tertidur
getTurnDeltaMengembalikan sudut dalam derajat antara yaw saat ini dan yaw yang ideal
getMoveTypeTerdapat beberapa jenis gerak, salah satunya terdapat dibawah ini:
MOVETYPE_DEAD, MOVETYPE_ANIM, MOVETYPE_SLIDE, MOVETYPE_FLY, MOVETYPE_STATIC
setMoveTypeMengatur tipe bergerak saat ini
saveMoveMenimpan pindah saat ini ke variabel internal.
restoreMoveMengembalikan pergerakan yang lalu yang telah disimpan
allowMovement [flag]Membiarkan aktor bergerak di sekitar
enableClipAktifkan geometri tabrakan aktor
disableClip"Menonaktifkan geometri tabrakan aktor
enableGravity"Membuat aktor mematuhi hukum fisika
disableGravity"Membuat aktor mengapung di sekitar seperti gravitasi tidak ada
enableAFPush"Mengatur "af_push_moveables" ke true.
disableAFPush"Mengatur "af_push_moveables" ke false.
setFlySpeed [speed]Mengatur "fly_speed".
setFlyOffset [offset]Mengatur "fly_offset".
clearFlyOffsetMengatur ulang "fly_offset" untuk apa pun itu dalam menelurkan agrs.
getClosestHiddenTarget [type]Mengembalikan entity terdekat dari jenis tertentu bahwa pemain tidak dapat melihat. Digunakan untuk menemukan node memerangi hilang ke pemain yang tidak dapat melihat
getRandomTarget [type]Secara acak mengembalikan target dari jenis tertentu
travelDistanceToPoint [pos]Mengembalikan jarak perjalanan sebenarnya untuk posisi yang ditetapkan(SLOW).
travelDistanceToEntity [entity]Mengembalikan jarak perjalanan sebenarnya ke entity tertentu(SLOW).
travelDistanceBetweenPoints [pointa], [pointb]Mengembalikan jarak perjalanan yang sebenarnya dari sebuah titik ke titik b(SLOW).
travelDistanceBetweenEntities [ent1], [ent2]Mengembalikan jarak perjalanan yang sebenarnya dari entity 1 ke antity 2(SLOW).
lookAt [entity], [duration]Tujuan sebuah kepala dan mata aktor pada entity untuk beberapa jumlah waktu
lookAtEnemy [duration]Tujuan sebuah kepala dan mata aktor pada musuhnya untuk beberapa jumlah waktu 
setBoneMod [flag]Mengaktifkan atau menonaktifkan pencarian
killMembunuh aktor
wakeOnFlashlight [flag]Terjaga ketika aktor mengaktifkan senter yang bersinar diatasnya
locateEnemyUpdate posisi musuh yang terakhir diketahui
kickObstacles [entity], [force]Menerapkan beberapa kekuatan tendangan benda di depan aktor, dengan fokus perhatian ekstra pada entitas ( yang dapat null)
getObstacleMengembalikan entity yang menghalangi gerakan aktor (kandidat kemungkinan akan ditendang)
pushPointIntoAAS [pos]Mencoba untuk mendorong posisi ke daerah AAS valid. Mengembalikan posisi baru
getTurnRateMengembalikan "turn_rate"
setTurnRate [rate]Mengatur "turn_rate"
animTurn [maxAngle]Mengaktifkan atau menonaktifkan animasi dikendalikan berputas. Mengirimkan derajat maksimum animasi berubah , atau 0 untuk meninaktifkan
allowHiddenMovement [flag]Menjalankan hukum fisika bahkan ketika aktor tersembunyi
findActorsInBounds [mins], [maxs]Mengembalikan seorang aktor didalam batas-batas yang ditentukan
canReachPosition [pos]Mengembalikan nilai true jika mungkin bagi aktor untuk pindah keposisi yang ditetapkan
canReachEntity [entity]Mengembalikan nilai true jika mungkin bagi aktor untuk pindah ke entity yang ditetapkan
canReachEnemyMengembalikan nilai true jika mungkin bagi aktor untuk pindah ke musuhnya
getReachableEntityPosition [entity]Kembali posisi entity dalam AAS jika mungkin atau hanya posisi sebaliknya


Sumber : http://www.iddevnet.com/doom3/script_ai.php

Tidak ada komentar:

Posting Komentar