Topic hỏi đáp về cách làm map | version 11

Status
Không mở trả lời sau này.
Chủ yếu là cái Trigger nay` bị sai gì mà nó ko thể nào Save hay Test cả

---------- Post added at 21:27 ---------- Previous post was at 21:25 ----------

//===========================================================================
// Trigger: Knockback Knife
//===========================================================================
function Trig_Knockback_Knife_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A005' ) ) then
return false
endif
return true
endfunction

function Trig_Knockback_Knife_Func002C takes nothing returns boolean
if ( not ( GetLearnedSkillBJ() == 'A005' ) ) then
return false
endif
return true
endfunction

function Trig_Knockback_Knife_Actions takes nothing returns nothing
call KnockbackTarget(GetSpellAbilityUnit() , GetSpellTargetUnit() , GetUnitFacing(GetSpellAbilityUnit()) , 250.00 , 5.00 , true , true , true)
 
Chủ yếu là cái Trigger nay` bị sai gì mà nó ko thể nào Save hay Test cả

---------- Post added at 21:27 ---------- Previous post was at 21:25 ----------

//===========================================================================
// Trigger: Knockback Knife
//===========================================================================
function Trig_Knockback_Knife_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A005' ) ) then
return false
endif
return true
endfunction

function Trig_Knockback_Knife_Func002C takes nothing returns boolean
if ( not ( GetLearnedSkillBJ() == 'A005' ) ) then
return false
endif
return true
endfunction

function Trig_Knockback_Knife_Actions takes nothing returns nothing
call KnockbackTarget(GetSpellAbilityUnit() , GetSpellTargetUnit() , GetUnitFacing(GetSpellAbilityUnit()) , 250.00 , 5.00 , true , true , true)
Đây có phải là toàn bộ cái Trigger hay bạn chỉ copy 1 phần Trigger.???
ở Function này thiếu Endfunction nè:
function Trig_Knockback_Knife_Actions takes nothing returns nothing
 
đây ko phải là Trigger! GHi mình save cái map có trigger skill mình vừa làm thì nó báo lỗi như thế!! Ai giúp mình với
 
Sau một thời gian bỏ WE thì chợt nhận ra mình đã lạc hậu...vẫn mù mờ về jass, nay xin vào hỏi các tiền bối lẫn...hậu bối 1 câu nhỏ (có lẽ là quá đơn giản), mong nhận được sự giúp đỡ... :(
Mã:
function SWAct takes nothing returns nothing
    local SWdata data = SWdata.create()
    local timer SW = NewTimer()
    local unit SWCast = GetTriggerUnit()
    local location SWloc1 = GetUnitLoc(SWCast)
    local location SWloc2 = GetSpellTargetLoc()
    local group SWgroup1 =  GetUnitsInRangeOfLocMatching( 80, SWloc2
Tình hình là mình muốn set cái group đó với điều kiện là (unit phải là enemy của SWCast, ko invul, không phải structure, và còn sống) mà cứ set là nó lại lỗi tới lỗi lui...:-ss
 
Bà con cho xin cái demo = GUI dạng chọn mode game như kiểu X Hero Siege đầu vào map :|
 
cách 2! .. chia đều công việc.. mỗi timer làm việc nhẹ hơn 1 timer.. bộ nhớ phân từng vùng ra làm việc hiệu quả hơn trên 1 vùng

Câu trả lời là cách 1 bạn à, cách 1 hay 2 thì đều xử lí 1000 câu lệnh như nhau, nhưng cách 2 sẽ phải xử lí thêm 9 cái Timer điều này không nên.

Timer cũng là 1 dạng system trong hệ thống hardcode của Blizzard, nó hoạt động dựa trên tính toán tốc độ xử lí của CPU và tổng số xử lí của CPU => thời gian thực, mà việc truy cập vào bộ file .dll của Window (chính xác là tập kernel32.dll) theo Kan được biết là "chậm". Tóm lại là Timer cũng là 1 dạng tập hợp các lệnh để xử lí của Blizzard, dùng nhiều Timer đồng nghĩa là tăng lượng xử lí cho game lên -> FPS sẽ giảm phần nào.

Mặc dù vậy nhưng Timer cũng là 1 phần không thể thiếu trong map, vì vậy nên xử dụng Timer 1 cách tối ưu hóa (nhất là những map lớn, thường hay dùng khá nhiều Timer, hoặc các system mà Timer chạy suốt game).

Ví dụ trong việc làm Spell/Skill, để tối ưu mọi người nên sử dụng system T32 (Timer32) By Jesus4Lyf, rất hay, chỉ dùng 1 timer, vì vậy tất cả các skill/spell đều chạy chung 1 timer này với FPS mặc định là 32 (tức 0.03125), tránh việc sử dụng mỗi Skill/Spell 1 Timer.

Hi vọng những điều trên sẽ giúp ích phần nào mọi người trong việc tối ưu hóa map.

Sau một thời gian bỏ WE thì chợt nhận ra mình đã lạc hậu...vẫn mù mờ về jass, nay xin vào hỏi các tiền bối lẫn...hậu bối 1 câu nhỏ (có lẽ là quá đơn giản), mong nhận được sự giúp đỡ... :(
Mã:
function SWAct takes nothing returns nothing
    local SWdata data = SWdata.create()
    local timer SW = NewTimer()
    local unit SWCast = GetTriggerUnit()
    local location SWloc1 = GetUnitLoc(SWCast)
    local location SWloc2 = GetSpellTargetLoc()
    local group SWgroup1 =  GetUnitsInRangeOfLocMatching( 80, SWloc2
Tình hình là mình muốn set cái group đó với điều kiện là (unit phải là enemy của SWCast, ko invul, không phải structure, và còn sống) mà cứ set là nó lại lỗi tới lỗi lui...:-ss

WE nên vào Tut GUI to Jass, Tom có hướng dẫn phần Pick Group ở XII
 
Cho mình hỏi cái ô: Data - Stack Flags của abi "Cold Arrow" nghĩa là gì vậy
 
nghĩa là nếu nhiều unit cùng dùng Cold Arrow vào một unit, cái gì sẽ stack.
 
@Kun.. cái Timer32 ông đưa ra có giống TimerUtils không ?? Nếu không giống thì dùng Timer32 như thế nào?
Nếu được gữi tui cái demo luôn :D. Tks

---------- Post added at 13:05 ---------- Previous post was at 12:32 ----------

đây ko phải là Trigger! GHi mình save cái map có trigger skill mình vừa làm thì nó báo lỗi như thế!! Ai giúp mình với

không phải JASS thì đưa Copy cái Trigger GUI bạn ghi đó lên để xem nó sai cái j.. đưa code JASS lên chỉ thấy thiếu endfunction thôi
 
Bà con cho xin cái demo = GUI dạng chọn mode game như kiểu X Hero Siege đầu vào map :|

Easy, hard đó á. Tạo dialog, rồi events là dialog button click action turn on trigger cần thiết......
 
Cái đó ai không biết, ý là làm sao tạo ra 3 cái nút Easy Normal Hard ?
 
@FlameDrake: Cái đó ai không biết, ý là làm sao tạo ra 3 cái nút Easy Normal Hard ?
Của cậu đây
Có bonus hẳn hoi nhé ;))
 
Ai chỉ mình cách ép đồ mà đầy vẫn ép được đi
 
KuKuIKan cho mình hỏi cách làm trigger ép ngọc vào items, có tỉ lệ thành công hoặc thất bại làm trigger ( dạng GUI ) như thế nào ?? có bản demo cho mình xin nhé
 
Cho em hỏi về 1 lỗi:
_Storm bolt có 41 lv (Lv1: 0.01 / 0.1/ 0.2/ 0.3/ 0.4...... 4.0)

Em có 1 spell như sau, mỗi khi giết 1 creep, tăng level của storm bolt lên +1 (và khi cast, reset xuống level 1), giới hạn creep có thể kill của mỗi level:
Lv1: tối đa 10 creep (1.0s)
Lv2: tối đa 20 creep (2.0s)
Lv3: tối đa 30 creep (3.0s)
Lv4: tối đa 40 creep (4.0s)

Nhưng hiện giờ em ko biết tại sao, cách tính giới hạn của em lại bị lỗi và ko chính xác được, xin mọi người xem qua cho

Trigger 1
Unit - A unit Learns a skill

(Learned Hero Skill) Equal to (==) Doom Stun

Unit - Add Doom Stun 2 to (Triggering unit)
Trigger - Turn off (This trigger)
Trigger - Turn on Trigger2 <gen>

Trigger 2
Unit - A unit Dies

(Level of Doom Stun for (Killing unit)) Greater than or equal to (>=) 1

Actions
Set DoomStunLevel = (DoomStunLevel + 1)
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
DoomStunLevel Less than (<) (1 + (10 x (Level of Doom Stun for (Killing unit))))
Then - Actions
Unit - Increase level of Doom Stun 2 for (Killing unit)
Else - Actions

Trigger3

Unit - A unit Starts the effect of an ability

(Ability being cast) Equal to (==) Doom Stun 2

Set DoomStunLevel = 1
Unit - Set level of Doom Stun 2 for (Triggering unit) to 1

Phiền mọi người fix dùm em :(
 
@Kun.. cái Timer32 ông đưa ra có giống TimerUtils không ?? Nếu không giống thì dùng Timer32 như thế nào?
Nếu được gữi tui cái demo luôn :D. Tks

---------- Post added at 13:05 ---------- Previous post was at 12:32 ----------



không phải JASS thì đưa Copy cái Trigger GUI bạn ghi đó lên để xem nó sai cái j.. đưa code JASS lên chỉ thấy thiếu endfunction thôi

Events
A unit start the efect ò an abillity
Conditions
Abillity being cast equal to Knockback Knife
Actions
EGUI-Knockback Unit-Target Unit of abillity being cast facing Unit-Facing angles.

Thế thôi mà lai. bị error
 
Cho em hỏi về 1 lỗi:
_Storm bolt có 41 lv (Lv1: 0.01 / 0.1/ 0.2/ 0.3/ 0.4...... 4.0)

Em có 1 spell như sau, mỗi khi giết 1 creep, tăng level của storm bolt lên +1 (và khi cast, reset xuống level 1), giới hạn creep có thể kill của mỗi level:
Lv1: tối đa 10 creep (1.0s)
Lv2: tối đa 20 creep (2.0s)
Lv3: tối đa 30 creep (3.0s)
Lv4: tối đa 40 creep (4.0s)

Nhưng hiện giờ em ko biết tại sao, cách tính giới hạn của em lại bị lỗi và ko chính xác được, xin mọi người xem qua cho







Phiền mọi người fix dùm em :(
Tui đọc mà tui ko hĩu ý skill này muốn gì bạn có thể nói rõ hơn đc ko :|
 
Trigger 2
Unit - A unit Dies

(Level of Doom Stun for (Killing unit)) Greater than or equal to (>=) 1

Actions
Set DoomStunLevel = (DoomStunLevel + 1)
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
DoomStunLevel Less than (<) (1 + (10 x (Level of Doom Stun for (Killing unit))))
Then - Actions
Unit - Increase level of Doom Stun 2 for (Killing unit)
Else - Actions
Trigger3

Unit - A unit Starts the effect of an ability

(Ability being cast) Equal to (==) Doom Stun 2

Set DoomStunLevel = 1
Unit - Set level of Doom Stun 2 for (Triggering unit) to 1

Nói rõ hơn thử xem : 1 hero sở hữu 2 skill này luôn à.Và cái nào là tăng điểm ?
Còn ở đây giải thích là : Nếu Doom Stun 2 cast thì sẽ reset level nhưng nếu Doom Stun 2 mà kill đc creep thì nó sẽ set level khác chứ không phải level 1 (tùy theo số creep kill trong lần cast )
Unit - Increase level of Doom Stun 2 for (Killing unit)
Thay cái này bằng Unit - Set level of Doom Stun 2 for (Killing unit) to DoomStunLevel thử
 
Có nghĩa là skill này có 1 cái là Atribute Bonus (dùng để learn), sau khi learn xong thì add storm bolt vào cho hero

Mỗi khi kill 1 creep thì nó sẽ tăng lên 1lv, nếu dùng để giết chết 1 creep thì mình nghĩ nó trở về 1 cũng hợp lí.
Nhưng vấn đề ở đây là nhw Trigger 2, dòng DoomStunLevel Less than (<) (1 + (10 x (Level of Doom Stun for (Killing unit)))) thì mình ko biết tại sao mà giới hạn mỗi level lại là 9/6/18/23 hoặc có khi nhảy cao hơn. (Theo như bản gốc phải là 11/21/31/41)
 
Status
Không mở trả lời sau này.
Back
Top