接下來是【戰鬥選項】
另外先提醒下,由於個人懶因,小事詳細不多教,各位請自己研究。(不過依舊可以發問)
我們這次就用兩個隊友(A,B)和一個敵人(Z)來做示範
在地圖上遇到怪物后就傳送到這兒(演出效果就不教了)
首先你或要讓人物按照順序配置吧?
當你選擇A進入隊伍位置a的話,在這裏也要讓他順著配置出現。
*char1
[if exp="f.base[1]!=0"]
[if exp="f.hp[f.base[1]]<=0"]
[jump target=*char2]
[endif]
xxx
[elsif exp="f.base[1]==0"]
[jump target=*char2]
[endif]
*char2
這裏的意思是:
若位置a(f.base[1])存在某個人物,但血條歸0(f.hp[f.base[1]]),就跳過位置a而執行位置b的代碼。(這樣玩家就無法選擇蜇人物的戰鬥方式)。
又或若位置a不存在任何人的話,也照樣跳到*char2。
那麽,進入戰鬥選項了。
提醒:我的游戲里是每個人都有自己專用的畫面選項。
在xxx這一行放入你要的呼喚代碼(jump/call,新檔案/同樣檔案)
然後裏面就寫入:
[if exp="f.base[1]==1"] //若位置a裏的人物是人物A的話
//這裏放入顯示人物A的HP,MP,EXP等等的代碼。
//然後再一次放入呼喚代碼(新檔案/同樣檔案任何一個都可)
在新地方再放入這些:
[iscript]
for(var i=1; i<=f.char.length; i++){
if(f.base[1]==i){
kag.tagHandlers.locate(%[x:85,y:297]);
kag.tagHandlers.button(%[graphic:"atkbutton.png" , exp:"f.atk[" + i + "] =1" , target:"*enemies"]);
kag.tagHandlers.locate(%[x:85,y:360]);
kag.tagHandlers.button(%[graphic:"defbutton.png" , exp:"f.def[" + i + "] =1" , target:"*enemies"]);
if(f.mp[i]>=180){
kag.tagHandlers.locate(%[x:260,y:665]);
kag.tagHandlers.button(%[graphic:rebutton1 , exp:"f.skill[" + i + "] =1, target:"*enemies"]);}
else{kag.tagHandlers.locate(%[x:260,y:665]); kag.tagHandlers.button(%[graphic:rebutton1 , enabled:"false"]);}
......
[endscript]
for這兒不多解釋。
再一次確認位置a里的人物。(而if裏面的代碼是確認了在於位置a的是人物A)
第一個是攻擊按鈕,一旦點擊,【攻擊的命令】就發動(f.atk[ i ] = 1),然後去*enemies選擇要攻擊的敵人。
第二個是防禦按鈕。第三個是技能按鈕。若擁有的MP是多餘180(f.mp[i]>=180),玩家就可以點擊此按鈕。相反的話,按鈕變得點擊不能。
*enemies
for( var i = 1; i <= f.char.length; i++ ){
for( var j = 1; j <= f.enemy.length; j++ ){
if( f.atk[i] == 1 ){
if(f.base[7]==j){
kag.tagHandlers.locate(%[x:54,y:140]);
kag.tagHandlers.button(%[normal:"mon"+i+".png" , exp:"f.aimmob[f.base[" + k + "]] =" + i + "" , target:"*char2"]);
break;}
}
}
}
若人物A的攻擊命令是TRUE的話(即 f.atk[1]==1),接下來就看看我們的敵人的位置。
f.base[7~12等等]是敵人的隊伍,若位置7擁有敵人的話,這裏的敵人的按鈕就會顯示出來讓玩家點擊。
一旦點擊后,我們就保存“ 位置7的敵人將被位置a的人物攻擊 ”的命令。(f.aimmob[ f.base[ k ] ] = j)然後回去*char2
break;是爲了防止程式繼續執行下去。一旦找到要點了后就抛棄其他代碼。
好,暫時就這些,我寫的或許有點太少了,大家就別介意發問題吧。
下一(終?)章就是戰鬥篇了