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

Thảo luận trong 'World Editor' bắt đầu bởi Tom_Kazansky, 12/6/12.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. lonewolf020291

    lonewolf020291 T.E.T.Я.I.S

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    set Real = Real +0.25
    if ( Real mod 4 ) == 0.00 then Show Text else Do nothing
     
  2. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812
    ^ Sao ko thấy gì hiện lên nhỉ?
    Mã:
        Events
            Unit - A unit Dies
        Conditions
            ((Triggering unit) is A Hero) Equal to True
            (Level of Critical Strike10  for (Killing unit)) Greater than 0
        Actions
            Set YUReal[(Custom value of (Killing unit))] = (YUReal[(Custom value of (Killing unit))] + 0.25)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    (YUReal[(Custom value of (Killing unit))] mod 4.00) Equal to 0.00
                Then - Actions
                    Floating Text - Create floating text that reads (+ + ((String((Integer(YUReal[(Custom value of (Killing unit))])))) + %)) above (Killing unit) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                    Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
                    Floating Text - Change (Last created floating text): Disable permanence
                    Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                    Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
                Else - Actions
     
    Chỉnh sửa cuối: 17/8/12
  3. ZhengHe

    ZhengHe T.E.T.Я.I.S

    Tham gia ngày:
    4/1/09
    Bài viết:
    623
    Ai sửa giúp mình spell này:
    [SPOIL]
    Mã:
    scope GroundStorm initializer Init
    
    globals
       
       integer SPELL_ID = 'A007'
       string  SFX      = "Abilities\\Spells\\Orc\\EarthQuake\\EarthQuakeTarget.mdl"
    
    endglobals
    
    private function Conds takes nothing returns boolean
        return GetSpellAbilityId() == SPELL_ID
    endfunction
    
    private function Check takes unit a returns boolean
        if  GetWidgetLife(GetEnumUnit()) >= 0.405 and IsUnitVisible(GetEnumUnit(), GetOwningPlayer(a)) == true and IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(a)) == true then
        return true
        endif
    endfuntion
    
    private function Actions takes nothing returns nothing
        local unit u = GetTriggerUnit()
        local real x = GetUnitX(u)
        local real y = GetUnitY(u)
        local real dbase = GetRandomReal(((GetHeroStr(u,true)*2)+2)+0, ((GetHeroStr(u, true)*2)+(2*6))+0)))
        local real dbonus = (GetHeroStr(u, true)*((GetUnitAbilityLevel(u, SPELL_ID)*60)+100))/100
        local unit dumy = CreateUnit(GetOwningPlayer(u), 'u000', x, y, 0.)
        local group g = CreateGroup()
        local unit p
        local integer i = 6
        call DestroyEffect(AddSpecialEffect(SFX, x, y))
        call GroupEnumUnitsInRange(g, GetUnitX(dumy), GetUnitY(dumy), 400., Condition(function Check(u)))
        loop
            set i = i-1
            exitwhen i <= 0
            loop
                set p = FirstOfGroup(g)
                exitwhen p == null
                call UnitDamageTarget(u, p, (dbase+dbonus)/6, false, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FIRE)
                set p = null
            endloop
            call TriggerSleepAction(1)
        endloop
        call GroupClear(g)
        call DestroyGroup(g)
        set u = null
        set dumy = null
    endfunction
    
    //===========================================================================
    private function Init takes nothing returns nothing
        local trigger t = CreateTrigger()
        call TriggerRegisterAnyUnitEventBJ( gg_trg_Ground_Storm, EVENT_PLAYER_UNIT_SPELL_EFFECT )
        call TriggerAddCondition(t, Condition(function Conds)
        call TriggerAddAction(t, function Actions )
    endfunction
    
    endscope
    [/SPOIL]

    Khi save thì nó hiện ra lỗi này

    Error.jpg
     
  4. Tom_Kazansky

    Tom_Kazansky Quy ẩn giang hồ

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    khi nào giá trị thành số nguyên thì hiện text <--- với vụ này quả thực tôi ko hiểu tại sao lại dùng "chia dư cho 4" để giải quyết

    để giải quyết thì, điều kiện:

    Mã:
    Real( Integer( YUReal ) ) equal to YUReal
    tức là: convert YUReal ra Integer rồi convert ra Real để so sánh với YUReal

    nếu không có phần thập phân thì bằng nhau => hiện text



    function Check thiểu "return" ở cuối function, cụ thể: return false

    nếu điều kiện trong if thỏa mãn thì trả về true => ok
    nhưng không thỏa mãn (tức là action trong "then" ko chạy) thì không có "return" => lỗi
     
  5. WordEditor

    WordEditor C O N T R A GVN Veteran

    Tham gia ngày:
    8/9/08
    Bài viết:
    1,509
    Nơi ở:
    Leaf Village
    Sao không làm cách đơn giản hơn, tạo thêm 1 biến Integer...
    -Mỗi khi set Real thì set luôn Integer = Integer + 1
    -Khi Integer = 4 thì hiện text, set lại Integer = 0 :|
     
  6. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812

    Cũng đã nghĩ tới. Nhưng thử nghĩ xem cái nào hay hơn? Chỉ cần dùng 1 biến với phải tạo đến 2 biến? =)) Và cái quan trọng là nó ko giải quyết được vấn đề hiện text theo ý muốn, vd nó hiện được +1 +2 +3... chẳng hạn. Nếu làm như kia thì lấy cái gì để "hiện"? Nếu chỉ đơn giản là "4 lần thì hiện text" thì cần quái gì biến real? =))
     
    Chỉnh sửa cuối: 17/8/12
  7. Ryanpzo9

    Ryanpzo9 Donkey Kong

    Tham gia ngày:
    20/10/08
    Bài viết:
    326
    Chia cho 0.25 trc' rồi mới mod với 4 = 0 thì mới hiện chứ :|
     
  8. WordEditor

    WordEditor C O N T R A GVN Veteran

    Tham gia ngày:
    8/9/08
    Bài viết:
    1,509
    Nơi ở:
    Leaf Village
    Sao ko hiện được hả cậu :-L
    Như cậu nói là mỗi lần thì +0.25, như vậy cứ mỗi 4 lần thì lại hiện text, int = 4 chả còn gì
    (trừ khi biến real đc cộng thêm 1 số khác với 0.25 :@))
    ...nếu cậu ngại việc dùng nhiều biến quá thì thôi, mình thì chỉ thấy cách đó đơn giản, dễ nhìn nên nói ra thôi :-ss
     
    Chỉnh sửa cuối: 17/8/12
  9. lonewolf020291

    lonewolf020291 T.E.T.Я.I.S

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    Hớ, nhầm =))

    Bảo thủ tí: dùng biến integer Int, mỗi lần +1, muốn hiện thì (Int mod 4) == 0 và hiện text I2S(Int/ 4). Như vậy ko cần đổi Custom value thành real nhiều lần =)). 1 biến, 1 lần convert , ko cần gọi hàm rắc rối như cái đám trên =))
     
  10. _Wild__Wolf_

    _Wild__Wolf_ Youtube Master Race

    Tham gia ngày:
    4/8/11
    Bài viết:
    80
    cho em xin đoạn crip move unit k0 làm mất animation với.. có hướng dẫn sử dụng luôn ah...
    em xài XDP thì còn cách nào khác để move k0? (ít rối hơn là customcrip ấy..)
     
  11. Evil_Hunter

    Evil_Hunter Mario & Luigi

    Tham gia ngày:
    18/9/11
    Bài viết:
    786
    Nơi ở:
    Evil Forest
    quote lần 2 :|
    .................................................
     
  12. lonewolf020291

    lonewolf020291 T.E.T.Я.I.S

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    ^
    Cái này hơi crap vì cũ và ko sửa, nhưng đạt ý cậu là caster đi đâu nó cũng "về"
    Mà sao hive ko có được nhỉ ??

    Có, làm jass hết. XDP hình như chưa thêm cái này vào :-"
    Với 2 biến Unit, Loc:
    Mã:
    set [COLOR="#FF0000"]Unit[/COLOR] = <unit cần move>
    set [COLOR="#FF0000"]Loc[/COLOR] = <điểm cần move tới>
    customscript    call SetUnitX( udg_[COLOR="#FF0000"]Unit[/COLOR], GetLocationX( udg_[COLOR="#FF0000"]Loc[/COLOR]) )
    customscript    call SetUnitY( udg_[COLOR="#FF0000"]Unit[/COLOR], GetLocationY( udg_[COLOR="#FF0000"]Loc[/COLOR]) )
    2 dòng thế chưa rối đâu bạn. Nhưng đọc ko hiểu xem như tớ chưa nói gì nhá
     
    Chỉnh sửa cuối: 18/8/12
  13. ZhengHe

    ZhengHe T.E.T.Я.I.S

    Tham gia ngày:
    4/1/09
    Bài viết:
    623
    Cho hỏi cách tạo đệ đi theo mình, đánh phụ mình, nhưng ko select đc. thanks
     
  14. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Với Ability Locust (Aloc)

    Create con đệ,gán biến,gán cái Locust cho nó

    Every sc cho nó đi theo Hero,sáng tạo thì cho nó sử dụng kỹ năng tùy vào từng trường hợp,ví dụ khi máu mình còn ít thì nó bơm máu.... Như kiểu AI ấy
     
  15. truongdzuy

    truongdzuy Mr & Ms Pac-Man

    Tham gia ngày:
    25/1/09
    Bài viết:
    274
    Nơi ở:
    Tp.HCM
    cho hỏi cách biến hero này thành hero khác với skill hoàn toàn khác (tức k fải các skill transform thì fải vì chỉ add và remove dc các skill Unit, skill Hero k đổi dc )
     
  16. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Replace Unit - Thay thế bằng một unit khác,ngoài ra thì chắc là không có :-??
     
  17. ZhengHe

    ZhengHe T.E.T.Я.I.S

    Tham gia ngày:
    4/1/09
    Bài viết:
    623
    @Leo: Mình muốn nó đánh đc và có thể bị đánh, chỉ là ko select đc thôi.
     
  18. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Vậy thì mình nghĩ là bất khả thi rồi ^^

    Chỉ còn cách là Every sc hoặc mỗi khi có ai select nó thì unselect nó thôi
     
  19. LeoNguyen112

    LeoNguyen112 Dragon Quest

    Tham gia ngày:
    22/5/10
    Bài viết:
    1,438
    Nơi ở:
    TP.HCM
    ^ Dùng local player

    Mã:
    Set TempPlayer = Owner of ...
    Custom script: if IsPlayerAlly( GetLocalPlayer(), udg_TempPlayer ) then
    Unit - Add Locust to ...
    Custom script: endif
    Thêm đoạn code trên vào sau chỗ create con đệ.
     
  20. Tom_Kazansky

    Tom_Kazansky Quy ẩn giang hồ

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    2 cách:

    - chỉnh selection scale của nó = 0.00 xem sao (shift + click) <-- vẫn select được = drag
    - add / remove locust (đúng, add sau đó remove ngay)

    Mã:
    Actions
        Unit - Create 1 Rifleman for Player 1 (Red) at (Center of Region 002 <gen>) facing Default building facing degrees
        Set TU = (Last created unit)
        Custom script:   call UnitAddAbility( udg_TU, 'Aloc')
        Custom script:   call UnitRemoveAbility( udg_TU, 'Aloc')
    
    thử chưa mà chỉ bậy? desync đấy =))
     
    Chỉnh sửa cuối: 18/8/12
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này