Topic hỏi đáp (tập 4) về cách làm map

Status
Không mở trả lời sau này.
Em vừa mới down 1 map Diablo 3 warcraft, trong phần trigger ko thấy trigger nào mà chỉ thấy 1 file map .w3x, vậy là sao ?? làm sao để xem code của map đó ??
 
Người ta protect map rồi thì sao mà xem đc ? Có cố cũng chả xem đc :-j.
Mà đây là vấn đề deprotect, post lên đây làm gì :-ss.
 
Vậy cho hỏi cách làm skill dash đến vị trí đã định, dùng cách slide của anh Tom thì chỉ bay đến 1 khoảng nào đó thôi chứ ko xác định rõ đc. Thanks
 
Lấy khoảng cách giữa vị trí lúc trước so với vị trí lúc sau là xong .



Kiểm tra unit có 2 item giống nhau kia ko , nếu có thì xóa cả 2 rồi cho cái mới vào .

Bạn hướng dẫn cụ thể chút ko, mình ko hiểu lắm :(
 
Làm sao để summon 2 con khác loại như Demonic Summoning trong DotA được các bạn nhỉ? với cả cái chiêu Doom và sở hữu item riêng cho từng người nữa :">
 
Em làm 1 skill kiểu như Rupture của bloodseeker trong DOTA code như thế này đc. k anh
PHP:
// A0LH = Rupture
function Trig_Bloodseeker_Spell_Rupture_Conditions takes nothing returns boolean
	if(not (GetSpellAbilityId()=='A0LH'))then
		return false
	endif
	return true
endfunction

// A0LH = Rupture
function oIoI takes nothing returns nothing
	local timer t=GetExpiredTimer()
	local string fTT=H2S(t)
	local unit ojj=GetStoredDTAXUnit(fTT,"RuptureCaster")
	local unit oJJ=GetStoredDTAXUnit(fTT,"RuptureTarget")
	local location okk=GetStoredDTAXLocation(fTT,"RuptureOldLoc")
	local location oKK=GetUnitLoc(oJJ)
	local real n66=.2*GetUnitAbilityLevel(ojj,'A0LH')*DistanceBetweenPoints(okk,oKK)
	if(n66>200)then
		set n66=0
	endif
	if(n66>5)then
		call DestroyEffect(AddSpecialEffectTarget("Objects\\Spawnmodels\\Human\\HumanBlood\\BloodElfSpellThiefBlood.mdl",oJJ,"origin"))
	endif
	if(n66>0)then
		call UnitDamageTargetBJ(ojj,oJJ,n66,ATTACK_TYPE_HERO,DAMAGE_TYPE_MAGIC)
	endif
	call RemoveLocation(okk)
	call StoreDTAXObject(fTT,"RuptureOldLoc",oKK)
endfunction

// A0LH = Rupture
// e01R = Buff Placer
// A0NH = Rupture Buff
function Trig_Bloodseeker_Spell_Rupture_Actions takes nothing returns nothing
	local unit ojj=GetTriggerUnit()
	local unit oJJ=GetSpellTargetUnit()
	local location oLL=GetUnitLoc(oJJ)
	local integer Jhh=GetUnitAbilityLevel(ojj,'A0LH')
	local timer t=CreateTimer()
	local string fTT=H2S(t)
	local unit MQQ
	call UnitDamageTargetBJ(ojj,oJJ,50+100*Jhh,ATTACK_TYPE_HERO,DAMAGE_TYPE_MAGIC)
	call StoreDTAXObject(fTT,"RuptureCaster",ojj)
	call StoreDTAXObject(fTT,"RuptureTarget",oJJ)
	call StoreDTAXObject(fTT,"RuptureOldLoc",oLL)
	call TimerStart(t,.25,true,function oIoI)
	set MQQ=CreateUnit(GetOwningPlayer(oJJ),'e01R',0,0,bj_UNIT_FACING)
	call UnitAddAbility(MQQ,'A0NH')
	call PolledWait(3+(2*Jhh))
	call RemoveUnit(MQQ)
	call UnitRemoveAbility(oJJ,'B067')
	call PauseTimer(t)
	call PolledWait(1)
	call FlushStoredMissionShell(fTT)
	call DestroyTimer(t)
endfunction

function StartTrigger_Bloodseeker_Spell_Rupture takes nothing returns nothing
	set gg_trg_Bloodseeker_Spell_Rupture=CreateTrigger()
	call TriggerRegisterAnyUnitEventBJ(gg_trg_Bloodseeker_Spell_Rupture,EVENT_PLAYER_UNIT_SPELL_EFFECT)
	call TriggerAddCondition(gg_trg_Bloodseeker_Spell_Rupture,Condition(function Trig_Bloodseeker_Spell_Rupture_Conditions))
	call TriggerAddAction(gg_trg_Bloodseeker_Spell_Rupture,function Trig_Bloodseeker_Spell_Rupture_Actions)
endfunction

function InitTrig_Bloodseeker_Spell_Rupture takes nothing returns nothing
endfunction
 
Ai chỉ giúp cái này đi:
Vậy cho hỏi cách làm skill dash đến vị trí đã định, dùng cách slide của anh Tom thì chỉ bay đến 1 khoảng nào đó thôi chứ ko xác định rõ đc. Thanks
Dạo này ít người post bài trả lời quá, mà số người hỏi càng tăng
 
Có ai biết cách chỉnh vị trí skill khi đã học không em để ulti học xong nó bay lên đứng trên skill 2 à.
 
Bạn cần tọa độ XY để xác định vị trí của nó. Trong phần Object, 2 dòng dưới đây nằm đầu tiên (vị trí bình thường). 4 cái tiếp theo là tọa độ vị trí cái spell khi Research(Vị trí spell khi ta bấm O để vào học) và Turn Off (Đối với Autocast)

Art - Button Position Normal (X)
Art - Button Position Normal (y)


Bạn có thể xem hình dưới để hình dung:
buttons.jpg

Chẳng hạn với 1 spell bạn muốn nó nằm ở ngay vị trí đầu tiên. Thì:

Art - Button Position Normal (X): 0
Art - Button Position Normal (y): 2

Art - Button Position Research (X): 0
Art - Button Position Research (y): 0
 
Chỉnh sửa cuối:
@anh Rex: Item Ice Revenant Summon 'AIir' > Summon unit với 2 Type.
Còn vụ "sở hữu item riêng cho từng người" thì đợi em chút, nhớ ngày xưa có cái Tut của anh Tom, để em tìm lại xem sao.

-----

À đây rồi, em tìm thấy map rồi. Giờ em kô có nhiều thời gian giải thích lắm nhưng mà em sẽ hướng dẫn anh cách dùng cái System này.
Trong Trigger 'IOR Get Item Cost' thì anh set số tiền mua của các Items vào đây.
Trigger 'Get Muted Version' là anh set các Items "fake" khi mà một Player khác nhặt vào (Item kô có tác dụng gì cả). Ngược lại với trigger 'Get non Muted Version', đây là trigger để anh set Items "thật" vào.
Btw... anh nên để các Items thuộc loại "Miscellaneous" thì mới dùng đc cái System này (nếu kô muốn edit cái system này).

http://www.thehelper.net/forums/showpost.php?p=948165&postcount=9 >> Link Tutorial của anh Tom.

@ZhengHe: Cái SlideDistance thì bằng tổng distance từ caster tới target point chia cho tick.
Mã:
Set SlideDistance = (Distance between (Position of Caster) and TargetPoint) / SlideTick
Cứ như thế mà áp dụng vào.
 

Attachments

Chỉnh sửa cuối:
Anh thấy cái trigger mỗi 0.01 giây pịc hết player như vậy có sao ko? ANh set biến rồi destroy như này có được ko nhỉ?
S.jpg
 
@Game_war48: nếu muốn cho hero slide với cùng vận tốc thì sao ??
 
@anh Rex: Tùy thôi, vào map thì anh Edit lại, chỉ pick những players cần dùng và destroy (thì càng tốt).
@ZhengHe: SlideDistance đc set ngay từ trigger "Start" ấy, chứ kô phải Set ở phần Timer, set ở Timer là bị lỗi.
Mã:
Set SlideDistance = (Distance between (Position of Caster) and TargetPoint) / TotalTick
 
Thanks anh Rex nhìu.
Em hỏi luôn chỉnh max lvl của hero ở chỗ nào vậy, chỉnh luôn cả lvl khi vào game của hero nữa chứ???
 
@Game_war48: nếu anh set vận tốc như trên thì khi chọn target point càng xa thì chạy càng nhanh, chọn càng gần chạy càng chậm.
 
@Game_war48: nếu anh set vận tốc như trên thì khi chọn target point càng xa thì chạy càng nhanh, chọn càng gần chạy càng chậm.

có khoảng cách, có tốc độ, có thời gian, chả nhẽ không tính toán theo ý thích được 8-}

Ghép như kiểu cái orchid trong dota ý :(( chỉnh loạn xà ngầu lên mà mua 1 cái nó lại cứ ra cai partial @_@

http://forum.gamevn.com/showpost.php?p=9847716&postcount=17 <--- bài viết này không ăn thua ?
 
em vận ko hỉu cái công thức cho lắm (dốt toán) anh Tom chỉ giúp em :D
 
Muốn move cố định theo một speed (khoảng cách mỗi lần move) thì lấy tổng khoảng cách (từ caster đến target point) chia cho speed sẽ ra đc tick. Giả sử speed là 50:
Mã:
Set SlideTick = (Distance between (Poisition of Caster) and TargetPoint) / 50
(Và tất nhiên là ở trigger "Start").
 
Status
Không mở trả lời sau này.
Back
Top