[觸發編輯]射擊系統求救

Galaxy Map Editor

版主: crassorz, zilch

[觸發編輯]射擊系統求救

文章白努比 » 2011年11月07日 8:47 pm

目前射擊系統是這樣的

.jpg


.jpg


2.jpg


整串語法是這樣的

TriggerEnable(TriggerGetCurrent(), false);
if ((CameraGetPitch(4) > 270.0)) {
lv_targetZTan = (Tan((360.0 - CameraGetPitch(4))) * lv_bulletDistance);
lv_bulletStepZ = ((lv_targetZTan - lv_targetCheckZ) / 500.0);
}
else {
if ((CameraGetPitch(4) < 90.0)) {
lv_targetZTan = (Tan(CameraGetPitch(4)) * (lv_bulletDistance * -1.0));
lv_bulletStepZ = ((lv_targetZTan + lv_targetCheckZ) / 500.0);
}
else {
}
}
libNtve_gf_PlayAnimation(libNtve_gf_MainActorofUnit(gv_playerUnit[4]), c_animNameDefault, "Attack", c_animFlagNonLooping, 0.0);
libNtve_gf_SetAnimationDuration(libNtve_gf_MainActorofUnit(gv_playerUnit[4]), c_animNameDefault, 0.95);
while ((lv_checkDistance <= lv_bulletDistance)) {
lv_checkTargetPointXY = PointWithOffsetPolar(UnitGetPosition(gv_playerUnit[4]), lv_checkDistance, CameraGetYaw(4));
PointSetHeight(lv_checkTargetPointXY, lv_targetCheckZ);
libNtve_gf_MakeUnitFacePoint(gv_playerUnit[4], lv_checkTargetPointXY, 0.3);
lv_targetUnit = libNtve_gf_ClosestUnitToPoint(lv_checkTargetPointXY, UnitGroup(null, c_playerAny, RegionCircle(lv_checkTargetPointXY, 0.275), UnitFilter(0, 0, (1 << c_targetFilterSelf) | (1 << c_targetFilterStasis), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)) | (1 << (c_targetFilterInvulnerable - 32))), 1));
if ((lv_targetUnit != null) && (lv_targetUnit != gv_playerUnit[4])) {
if ((libNtve_gf_UnitMoverExists(UnitGetType(lv_targetUnit), "Fly") == true)) {
lv_targetHeightZ = (WorldHeight(c_heightMapGround, UnitGetPosition(lv_targetUnit)) + UnitGetHeight(lv_targetUnit));
}
else {
lv_targetHeightZ = (WorldHeight(c_heightMapGround, UnitGetPosition(lv_targetUnit)) + Tan(lv_checkDistance));
}
lv_heightBoolean = gf_HeightCheck(lv_targetCheckZ, lv_targetHeightZ);
if ((lv_heightBoolean == true)) {
gv_targetUnit[4] = lv_targetUnit;
UnitCreateEffectUnit(gv_playerUnit[4], "GuassRifle", lv_targetUnit);
UnitCreateEffectUnit(gv_playerUnit[4], "SpecterU", lv_targetUnit);
TriggerEnable(gt_AttackCheckPlayer04, true);
return true;
}
else {
}
}
else {
}
lv_checkDistance=lv_checkDistance + lv_bulletStepXY;
lv_targetCheckZ=lv_targetCheckZ + lv_bulletStepZ;
}
UnitCreateEffectPoint(gv_playerUnit[4], "GuassRifle", libNtve_gf_PointFromXYZ(PointGetX(lv_target), PointGetY(lv_target), WorldHeight(c_heightMapGround, lv_target)));
UnitCreateEffectPoint(gv_playerUnit[4], "SpecterU", libNtve_gf_PointFromXYZ(PointGetX(lv_target), PointGetY(lv_target), WorldHeight(c_heightMapGround, lv_target)));

紅字是系統一直說錯誤的地方,我改了老半天結果還是一直錯誤,到底是錯在哪啊?_?
大大們請幫我一下,感謝 :cry:

另外,我附檔案上來了,因為語法會有錯誤,所以無法存檔,下載後,請直接copy整串語法到 攻擊→自訂腳本 裡貼上
對了,我還不曉得這樣會不會有準星,沒有的話幫我加加看準星,我繼續研究了/_\
頭像
白努比
農民
農民
 
文章: 88
註冊時間: 2006年03月19日 10:15 pm

Re: [觸發編輯]射擊系統求救

文章crassorz » 2011年11月08日 9:29 am

gf_HeightCheck是...啥?
後面似乎還有不少東西被你遺漏了
圖檔
我決定不再對伸手牌起反應
除非很有趣
頭像
crassorz
死亡騎士
死亡騎士
 
文章: 2338
註冊時間: 2008年04月06日 5:40 pm
來自: 什麼都有的雜物間

Re: [觸發編輯]射擊系統求救

文章白努比 » 2011年11月08日 11:52 am

別的論壇找來的,我看了一下,應該是圖片裡的最後一行,只是寫法跟圖片一樣,不曉得哪邊出錯 :?

a438ea38a91183f9a89a29be34c8530c.JPG
頭像
白努比
農民
農民
 
文章: 88
註冊時間: 2006年03月19日 10:15 pm

Re: [觸發編輯]射擊系統求救

文章crassorz » 2011年11月08日 12:26 pm

內建函數不會有gf_
gf_是指自己寫的函數
圖檔
我決定不再對伸手牌起反應
除非很有趣
頭像
crassorz
死亡騎士
死亡騎士
 
文章: 2338
註冊時間: 2008年04月06日 5:40 pm
來自: 什麼都有的雜物間

Re: [觸發編輯]射擊系統求救

文章白努比 » 2011年11月08日 1:01 pm

痾~~~這部份我真的搞不太懂,那不是gf,是要用什麼呢?_? 我試過 lv、gv都不行

另外~~~以下是在其他論壇某網友所說的

這是萬惡的變數。區域變數(Local Variables 編輯器裡面簡稱 lv_XXX)。底下都用編輯器原始程式碼的命名方式,並不是說一定要這樣命名。這是區域變數在程式碼裡面的代號而已。同理可證全域變數:Global Variables 簡稱 gv_XXX。
頭像
白努比
農民
農民
 
文章: 88
註冊時間: 2006年03月19日 10:15 pm

Re: [觸發編輯]射擊系統求救

文章crassorz » 2011年11月08日 1:06 pm

全域函數gf_XXXX
右鍵->創造 觸發器/動作/函數/變數/註解.................

你就沒這個函數 再怎麼改名字他也不會就這樣生出來啊=v="
圖檔
我決定不再對伸手牌起反應
除非很有趣
頭像
crassorz
死亡騎士
死亡騎士
 
文章: 2338
註冊時間: 2008年04月06日 5:40 pm
來自: 什麼都有的雜物間

Re: [觸發編輯]射擊系統求救

文章白努比 » 2011年11月17日 7:38 am

幫我把這篇刪掉吧,用了一陣子沒能成功,我再找其它方法試試
頭像
白努比
農民
農民
 
文章: 88
註冊時間: 2006年03月19日 10:15 pm

Re: [觸發編輯]射擊系統求救

文章crassorz » 2011年11月18日 10:03 pm

在星海編輯器中
創造一個函數就跟創造一個觸發器一樣的簡單
相信你只要試一下就知道了
gf_HeightCheck.jpg

代碼: 選擇全部
bool gf_HeightCheck (fixed lp_targetCheckZ, fixed lp_targetHeightZ) {
    // Implementation
    return true;
}

//--------------------------------------------------------------------------------------------------
// Trigger: test
//--------------------------------------------------------------------------------------------------
bool gt_test_Func (bool testConds, bool runActions) {
    // Variable Declarations
    fixed lv_targetCheckZ;
    fixed lv_targetHeightZ;
    bool lv_heightBoolean;

    // Variable Initialization
    lv_targetCheckZ = 0.0;
    lv_targetHeightZ = 0.0;
    lv_heightBoolean = gf_HeightCheck(lv_targetCheckZ, lv_targetHeightZ);

    return true;
}
圖檔
我決定不再對伸手牌起反應
除非很有趣
頭像
crassorz
死亡騎士
死亡騎士
 
文章: 2338
註冊時間: 2008年04月06日 5:40 pm
來自: 什麼都有的雜物間

Re: [觸發編輯]射擊系統求救

文章crassorz » 2012年01月27日 10:38 am

過了這麼久我才發現我框到的是動作不是函數......
圖檔
我決定不再對伸手牌起反應
除非很有趣
頭像
crassorz
死亡騎士
死亡騎士
 
文章: 2338
註冊時間: 2008年04月06日 5:40 pm
來自: 什麼都有的雜物間


回到 地圖製作主題討論版

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客