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

Status
Không mở trả lời sau này.
Cho mình hỏi về ability bắn theo vòng tròn và bắn theo hình bán nguyệt với

Bán nguyệt thì chưa rõ nhưng tròn thì xem map sẽ hiểu.
MF: http://www.mediafire.com/?wtaq0bkk3m1ux1w
(Không biết đính kèm chỗ nào, thông cảm nhé :))

---------- Post added at 12:50 ---------- Previous post was at 11:47 ----------

Mọi người cho em hỏi, làm cách nào để tăng lv của dummy khi mình học 1 skill gọi là abcxyz?

Vd: Skill có thể tạo ra 1 dummy có ability áo lửa, tăng dmg cho mỗi lv
Event:
Khi học 1 skill
Condition:
+Skill equal to abcxyz
Action:
+Tăng lv áo lửa của dummy unit lên +1 ?

Nghĩ được thế rồi mà còn hỏi à cậu :-/
Unit - Set level of áo lửa for (Last created unit) to (Level of abcxyz for (Casting unit))

---------- Post added at 13:00 ---------- Previous post was at 12:50 ----------

À mà chắc bán nguyệt là thế này :))
http://www.mediafire.com/?y6b69vxe67hgt78
 
Mấy bạn xem dùm mình đoạn Code JASS này với..
[spoil]
PHP:
scope ShockWave initializer ShockWave

globals
        private integer IdSpell = 'A010'
        private integer IdSpellDum = 'A03F'
        private integer IdDummy = 'h01B'
endglobals

private function Conditions takes nothing returns boolean
    return GetSpellAbilityId() == IdSpell
endfunction

private function Actions takes nothing returns nothing
        local unit caster = GetSpellAbilityUnit()
        local unit u
        
        local real x = GetUnitX(caster)
        local real y = GetUnitY(caster)
        
        local real tx = GetSpellTargetX()
        local real ty = GetSpellTargetY()

        local real angle = bj_RADTODEG*Atan2(ty-y,tx-x)
        local real dx
        local real dy
        local real cx
        local real cy
        
        local integer lv = GetUnitAbilityLevel(caster,IdSpell)
        local integer lvl = GetUnitLevel(caster)
        local integer A = -lv
    
                loop
                        exitwhen A>lv
                            if A!=0 then
                                set dx = x+256*A*Cos((angle+90*A)*bj_DEGTORAD) 
                                set dy = y+256*A*Sin((angle+90*A)*bj_DEGTORAD) 
                            
                                set cx = dx+128*Cos(angle*bj_DEGTORAD) 
                                set cy = dy+128*Sin(angle*bj_DEGTORAD)
                            
                                set u = CreateUnit(GetOwningPlayer(caster),IdDummy,dx,dy,angle)
                                call SetUnitPathing(u,false)
                                call SetUnitVertexColor(u,255,255,255,50)
                                call UnitAddAbility(u,IdSpellDum)
                                call SetUnitAbilityLevel(u,IdSpellDum,lv)
                                call IssuePointOrder(u,"shockwave",cx,cy)
                                call UnitApplyTimedLife(u,'BTLF',1)
                           
                                set u = null
                            endif
              
                            set A=A+1
                endloop
                
set caster = null
set u = null

endfunction

//===========================================================================
private function ShockWave takes nothing returns nothing
local trigger t = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( t, Condition( function Conditions ) )
    call TriggerAddAction( t, function Actions )
endfunction

endscope
[/spoil]
Mình muốn Spell này làm sao cho mấy con Dummy được call ra sẽ đứng thành 1 hàng ngang cạnh Caster .. nhưng mà không hiểu sao nó không như ý muốn mà nó cứ hiện 1 con kế bên và 1 con thì nằm sau caster không à chứa 2 con không chịu đứng kề Caster.
Ai rành JASS hướng dẫn cách khắc phục với.. mình thử nhiều lần rồi mà toàn ra thế này thế kia không .. bí quá lên đây hỏi +_+
Hình em nó[spoil]
attachment.php
[/spoil]
 

Attachments

  • WC3ScrnShot_091811_122937_02.jpg
    WC3ScrnShot_091811_122937_02.jpg
    75 KB · Đọc: 69
Chỉnh sửa cuối:
Mấy bạn xem dùm mình đoạn Code JASS này với..

PHP:
scope ShockWave initializer ShockWave

globals
        private integer IdSpell = 'A010'
        private integer IdSpellDum = 'A03F'
        private integer IdDummy = 'h01B'
endglobals

private function Conditions takes nothing returns boolean
    return GetSpellAbilityId() == IdSpell
endfunction

private function Actions takes nothing returns nothing
        local unit caster = GetSpellAbilityUnit()
        local unit u
        
        local real x = GetUnitX(caster)
        local real y = GetUnitY(caster)
        
        local real tx = GetSpellTargetX()
        local real ty = GetSpellTargetY()

        local real angle = bj_RADTODEG*Atan2(ty-y,tx-x)
        local real dx
        local real dy
        local real cx
        local real cy
        
        local integer lv = GetUnitAbilityLevel(caster,IdSpell)
        local integer lvl = GetUnitLevel(caster)
        local integer A = -lv
    
                loop
                        exitwhen A>lv
                            if A!=0 then
                                set dx = x+256*A*Cos((angle+90*A)*bj_DEGTORAD) 
                                set dy = y+256*A*Sin((angle+90*A)*bj_DEGTORAD) 
                            
                                set cx = dx+128*Cos(angle*bj_DEGTORAD) 
                                set cy = dy+128*Sin(angle*bj_DEGTORAD)
                            
                                set u = CreateUnit(GetOwningPlayer(caster),IdDummy,dx,dy,angle)
                                call SetUnitPathing(u,false)
                                call SetUnitVertexColor(u,255,255,255,50)
                                call UnitAddAbility(u,IdSpellDum)
                                call SetUnitAbilityLevel(u,IdSpellDum,lv)
                                call IssuePointOrder(u,"shockwave",cx,cy)
                                call UnitApplyTimedLife(u,'BTLF',1)
                           
                                set u = null
                            endif
              
                            set A=A+1
                endloop
                
set caster = null
set u = null

endfunction

//===========================================================================
private function ShockWave takes nothing returns nothing
local trigger t = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( t, Condition( function Conditions ) )
    call TriggerAddAction( t, function Actions )
endfunction

endscope

Mình muốn Spell này làm sao cho mấy con Dummy được call ra sẽ đứng thành 1 hàng ngang cạnh Caster .. nhưng mà không hiểu sao nó không như ý muốn mà nó cứ hiện 1 con kế bên và 1 con thì nằm sau caster không à chứa 2 con không chịu đứng kề Caster.
Ai rành JASS hướng dẫn cách khắc phục với.. mình thử nhiều lần rồi mà toàn ra thế này thế kia không .. bí quá lên đây hỏi +_+
Hình em nó
attachment.php

Mình ko hiểu jass cho lắm, nhưng mà skill của bạn như thế nào để mình làm bằng GUI.
 
Mình ko hiểu jass cho lắm, nhưng mà skill của bạn như thế nào để mình làm bằng GUI.
GUI thì đơn giản rồi.. mình chỉ cần chỉnh JASS kìa.. nhưng cứ để bạn thử làm mình sẽ mô tả cho ...
Khi con bò chính Cast ShockWave thì theo level Spell sẽ có 2 4 6 8 con bò (shadow) hiện ra cast spell.. cast sao cho đường đi của các ShockWave nằm trên 1 đường song song nhau.. đơn giản vậy thôi. nhưng không hiểu sao đoạn code trên lại chả làm được.. chưa biết bị chỗ nào +_+
 
Thank bạn Evil_Hunter. cái mình muốn tạo là 1 skill autocast tạo ra nhiều dummy đứng xung quanh rồi bắt nó chạy theo vòng tròn hoặc bán nguyệt như nan quạt kiểu như CB Rồng ấy. mình tạo đc nhiều kiểu đi rất đẹp nhưng cứ bị vướng cái lỗi dummy cứ chạy đi 1 đoạn thì lại quay trở lại hoặc chạy theo hướng khác rất bực.
Ai có thể làm skill autocast bắn ra dummy chạy hình bán nguyệt hộ mình với...
 
Mấy bác cho em hỏi, set cái biến variable dạng Point như thế nào để cho nó create dummy random xung quanh Caster theo dạng vòng Loop A ? Em thấy có cái Offer X, Y ko biết phải nó ko, nếu là nó hay ko fải thì xin mấy bác chỉ em :|
 
Mấy bác cho em hỏi, set cái biến variable dạng Point như thế nào để cho nó create dummy random xung quanh Caster theo dạng vòng Loop A ? Em thấy có cái Offer X, Y ko biết phải nó ko, nếu là nó hay ko fải thì xin mấy bác chỉ em :|

Mã:
Untitled Trigger 008
    Events
    Conditions
    Actions
        Set Point = ((Position of (Triggering unit)) offset by (Random real number between -400.00 and 400.00) towards (Random angle) degrees)

P/S Point Variables=Real
 
Gần đúng rồi ko fải thế này bác, cái của bác là nó chọn 1 địa điểm quanh Caster rồi create random ngay chỗ đó , còn em cần là quanh Caster @@! ví dụ Loop 10 thì 10 con đó random quanh caster chứ ko fải chọn 1 địa điểm quanh caster mới random 10 con đó @@!
 
GUI thì đơn giản rồi.. mình chỉ cần chỉnh JASS kìa.. nhưng cứ để bạn thử làm mình sẽ mô tả cho ...
Khi con bò chính Cast ShockWave thì theo level Spell sẽ có 2 4 6 8 con bò (shadow) hiện ra cast spell.. cast sao cho đường đi của các ShockWave nằm trên 1 đường song song nhau.. đơn giản vậy thôi. nhưng không hiểu sao đoạn code trên lại chả làm được.. chưa biết bị chỗ nào +_+

Chà chà, skill của cậu xem vậy mà khó quá, trình tôi chắc ko làm được. sorry nhé :">
Mà GUI cậu làm hoàn chỉnh chưa? :-?
 
Mấy bạn xem dùm mình đoạn Code JASS này với..
[spoil]
PHP:
scope ShockWave initializer ShockWave

globals
        private integer IdSpell = 'A010'
        private integer IdSpellDum = 'A03F'
        private integer IdDummy = 'h01B'
endglobals

private function Conditions takes nothing returns boolean
    return GetSpellAbilityId() == IdSpell
endfunction

private function Actions takes nothing returns nothing
        local unit caster = GetSpellAbilityUnit()
        local unit u
        
        local real x = GetUnitX(caster)
        local real y = GetUnitY(caster)
        
        local real tx = GetSpellTargetX()
        local real ty = GetSpellTargetY()

        local real angle = bj_RADTODEG*Atan2(ty-y,tx-x)
        local real dx
        local real dy
        local real cx
        local real cy
        
        local integer lv = GetUnitAbilityLevel(caster,IdSpell)
        local integer lvl = GetUnitLevel(caster)
        local integer A = -lv
    
                loop
                        exitwhen A>lv
                            if A!=0 then
                                set dx = x+256*A*Cos((angle+90*A)*bj_DEGTORAD) 
                                set dy = y+256*A*Sin((angle+90*A)*bj_DEGTORAD) 
                            
                                set cx = dx+128*Cos(angle*bj_DEGTORAD) 
                                set cy = dy+128*Sin(angle*bj_DEGTORAD)
                            
                                set u = CreateUnit(GetOwningPlayer(caster),IdDummy,dx,dy,angle)
                                call SetUnitPathing(u,false)
                                call SetUnitVertexColor(u,255,255,255,50)
                                call UnitAddAbility(u,IdSpellDum)
                                call SetUnitAbilityLevel(u,IdSpellDum,lv)
                                call IssuePointOrder(u,"shockwave",cx,cy)
                                call UnitApplyTimedLife(u,'BTLF',1)
                           
                                set u = null
                            endif
              
                            set A=A+1
                endloop
                
set caster = null
set u = null

endfunction

//===========================================================================
private function ShockWave takes nothing returns nothing
local trigger t = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( t, Condition( function Conditions ) )
    call TriggerAddAction( t, function Actions )
endfunction

endscope
[/spoil]
Mình muốn Spell này làm sao cho mấy con Dummy được call ra sẽ đứng thành 1 hàng ngang cạnh Caster .. nhưng mà không hiểu sao nó không như ý muốn mà nó cứ hiện 1 con kế bên và 1 con thì nằm sau caster không à chứa 2 con không chịu đứng kề Caster.
Ai rành JASS hướng dẫn cách khắc phục với.. mình thử nhiều lần rồi mà toàn ra thế này thế kia không .. bí quá lên đây hỏi +_+
Hình em nó[spoil]
attachment.php
[/spoil]

Chà chà, skill của cậu xem vậy mà khó quá, trình tôi chắc ko làm được. sorry nhé :">
Mà GUI cậu làm hoàn chỉnh chưa? :-?
+_+ mình bắt đầu từ JASS luôn.. trước kia có làm = GUI rồi nhưng giờ không biết quăn cái map đó ở đâu nữa.


Có ai giúp mình với :-s
 
Cho Em hõi map cũa Em lúc đầu vào chơi rất nhưng càng về sau nó càng lag ai chĩ Em cách khắc phục và lỗi này do cái gì gay ra
 
Có ai paste dùm e cái code UnitIndexingUtils :( Wc3 cứ bắt Reg nick mà reg r lại k đk ....
 
Cho e hỏi cái skill Wrath of Zeus của Prince.Zero bên hiveworkshop ý e copy về nhưng mà khi save map nó lại hiện lên cái lỗi

đã update JassHelper chưa?

Cho Em hõi map cũa Em lúc đầu vào chơi rất nhưng càng về sau nó càng lag ai chĩ Em cách khắc phục và lỗi này do cái gì gay ra

lag kiểu này thường là do leak, bạn hãy tham khảo: Memory Leak and Custom Script

Có ai paste dùm e cái code UnitIndexingUtils :( Wc3 cứ bắt Reg nick mà reg r lại k đk ....

link bài viết? người ta không post code?
 
Chỉnh sửa cuối:
Status
Không mở trả lời sau này.
Back
Top