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

http://www.mediafire.com/?vbv5m5b43iyqzbt

trên là bản đã deprotect rồi , bạn rảnh mà biết cách thì chỉ giùm mình nhé .... THX !!!!

Vui lòng đọc nội quy box :
Nghiêm cấm:
- spam: post các vấn đề không liên quan đến topic như: chào hỏi nhau (nếu muốn chào hỏi xin hãy dùng Visitor Message hoặc Private Message), hỏi kiểu "bao giờ có map" (xin hãy dùng VM hoặc PM để hỏi), hỏi "link down map ở đâu" mà rõ ràng trong bài viết đã có link,...
- tiếng mọi, chém gió: <- nói chung là bốc phét...
- khóc mếu: bạn ko tạo đc cái này, cái kia, xin hãy hỏi HẲN HOI, đừng khóc mếu, chả cần thiết.
- xin rep: :o
- bàn về cheat/hack: xin lỗi, Tom rất bất mãn với cái vụ này nên... nếu muốn bàn về hack/cheat thì hãy dùng VM hoặc PM
- (mới update): cả deprotect cũng ko được thảo luận.
 
Ai chỉ mình cách check terrain ở location hoặc x,y là cliff với,thanks nhiều
 
Ai chỉ mình cách check terrain ở location hoặc x,y là cliff với,thanks nhiều
 cậu tìm hiểu SYS này đi :-?

Mã:
library TerrainPathability initializer Init
//******************************************************************************
//* BY: Rising_Dusk
//* 
//* This script can be used to detect the type of pathing at a specific point.
//* It is valuable to do it this way because the IsTerrainPathable is very
//* counterintuitive and returns in odd ways and aren't always as you would
//* expect. This library, however, facilitates detecting those things reliably
//* and easily.
//* 
//******************************************************************************
//* 
//*    > function IsTerrainDeepWater    takes real x, real y returns boolean
//*    > function IsTerrainShallowWater takes real x, real y returns boolean
//*    > function IsTerrainLand         takes real x, real y returns boolean
//*    > function IsTerrainPlatform     takes real x, real y returns boolean
//*    > function IsTerrainWalkable     takes real x, real y returns boolean
//* 
//* These functions return true if the given point is of the type specified
//* in the function's name and false if it is not. For the IsTerrainWalkable
//* function, the MAX_RANGE constant below is the maximum deviation range from
//* the supplied coordinates that will still return true.
//* 
//* The IsTerrainPlatform works for any preplaced walkable destructable. It will
//* return true over bridges, destructable ramps, elevators, and invisible
//* platforms. Walkable destructables created at runtime do not create the same
//* pathing hole as preplaced ones do, so this will return false for them. All
//* other functions except IsTerrainWalkable return false for platforms, because
//* the platform itself erases their pathing when the map is saved.
//* 
//* After calling IsTerrainWalkable(x, y), the following two global variables
//* gain meaning. They return the X and Y coordinates of the nearest walkable
//* point to the specified coordinates. These will only deviate from the
//* IsTerrainWalkable function arguments if the function returned false.
//* 
//* Variables that can be used from the library:
//*     [real]    TerrainPathability_X
//*     [real]    TerrainPathability_Y
//* 
    globals
        private constant real MAX_RANGE = 10.
        private constant integer DUMMY_ITEM_ID = 0x776f6c67
    endglobals

    globals
        private item Item = null
        private rect Find = null
        private item array Hid
        private integer HidMax = 0
        public real X = 0.
        public real Y = 0.
    endglobals

    function IsTerrainDeepWater takes real x, real y returns boolean
        return not IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY) and IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY)
    endfunction
    function IsTerrainShallowWater takes real x, real y returns boolean
        return not IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY) and not IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY) and IsTerrainPathable(x, y, PATHING_TYPE_BUILDABILITY)
    endfunction
    function IsTerrainLand takes real x, real y returns boolean
        return IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY)
    endfunction
    function IsTerrainPlatform takes real x, real y returns boolean
        return not IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY) and not IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY) and not IsTerrainPathable(x, y, PATHING_TYPE_BUILDABILITY)
    endfunction

    private function HideItem takes nothing returns nothing
        if IsItemVisible(GetEnumItem()) then
            set Hid[HidMax] = GetEnumItem()
            call SetItemVisible(Hid[HidMax], false)
            set HidMax = HidMax + 1
        endif
    endfunction
    function IsTerrainWalkable takes real x, real y returns boolean
    //Hide any items in the area to avoid conflicts with our item
        call MoveRectTo(Find, x, y)
        call EnumItemsInRect(Find , null, function HideItem)
    //Try to move the test item and get its coords
        call SetItemPosition(Item, x, y) //Unhides the item
        set X = GetItemX(Item)
        set Y = GetItemY(Item)
        static if LIBRARY_IsTerrainWalkable then
        //This is for compatibility with the IsTerrainWalkable library
            set IsTerrainWalkable_X = X
            set IsTerrainWalkable_Y = Y
        endif
        call SetItemVisible(Item, false)//Hide it again
    //Unhide any items hidden at the start
        loop
            exitwhen HidMax <= 0
            set HidMax = HidMax - 1
            call SetItemVisible(Hid[HidMax], true)
            set Hid[HidMax] = null
        endloop
    //Return walkability
        return (X - x) * (X - x) + (Y - y) * (Y - y) <= MAX_RANGE * MAX_RANGE and not IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY)
    endfunction

    private function Init takes nothing returns nothing
        set Find = Rect(0., 0., 128., 128.)
        set Item = CreateItem(DUMMY_ITEM_ID, 0, 0)
        call SetItemVisible(Item, false)
    endfunction
endlibrary
 
 cậu tìm hiểu SYS này đi :-?

Mã:
library TerrainPathability initializer Init
//******************************************************************************
//* BY: Rising_Dusk
//* 
//* This script can be used to detect the type of pathing at a specific point.
//* It is valuable to do it this way because the IsTerrainPathable is very
//* counterintuitive and returns in odd ways and aren't always as you would
//* expect. This library, however, facilitates detecting those things reliably
//* and easily.
//* 
//******************************************************************************
//* 
//*    > function IsTerrainDeepWater    takes real x, real y returns boolean
//*    > function IsTerrainShallowWater takes real x, real y returns boolean
//*    > function IsTerrainLand         takes real x, real y returns boolean
//*    > function IsTerrainPlatform     takes real x, real y returns boolean
//*    > function IsTerrainWalkable     takes real x, real y returns boolean
//* 
//* These functions return true if the given point is of the type specified
//* in the function's name and false if it is not. For the IsTerrainWalkable
//* function, the MAX_RANGE constant below is the maximum deviation range from
//* the supplied coordinates that will still return true.
//* 
//* The IsTerrainPlatform works for any preplaced walkable destructable. It will
//* return true over bridges, destructable ramps, elevators, and invisible
//* platforms. Walkable destructables created at runtime do not create the same
//* pathing hole as preplaced ones do, so this will return false for them. All
//* other functions except IsTerrainWalkable return false for platforms, because
//* the platform itself erases their pathing when the map is saved.
//* 
//* After calling IsTerrainWalkable(x, y), the following two global variables
//* gain meaning. They return the X and Y coordinates of the nearest walkable
//* point to the specified coordinates. These will only deviate from the
//* IsTerrainWalkable function arguments if the function returned false.
//* 
//* Variables that can be used from the library:
//*     [real]    TerrainPathability_X
//*     [real]    TerrainPathability_Y
//* 
    globals
        private constant real MAX_RANGE = 10.
        private constant integer DUMMY_ITEM_ID = 0x776f6c67
    endglobals

    globals
        private item Item = null
        private rect Find = null
        private item array Hid
        private integer HidMax = 0
        public real X = 0.
        public real Y = 0.
    endglobals

    function IsTerrainDeepWater takes real x, real y returns boolean
        return not IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY) and IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY)
    endfunction
    function IsTerrainShallowWater takes real x, real y returns boolean
        return not IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY) and not IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY) and IsTerrainPathable(x, y, PATHING_TYPE_BUILDABILITY)
    endfunction
    function IsTerrainLand takes real x, real y returns boolean
        return IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY)
    endfunction
    function IsTerrainPlatform takes real x, real y returns boolean
        return not IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY) and not IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY) and not IsTerrainPathable(x, y, PATHING_TYPE_BUILDABILITY)
    endfunction

    private function HideItem takes nothing returns nothing
        if IsItemVisible(GetEnumItem()) then
            set Hid[HidMax] = GetEnumItem()
            call SetItemVisible(Hid[HidMax], false)
            set HidMax = HidMax + 1
        endif
    endfunction
    function IsTerrainWalkable takes real x, real y returns boolean
    //Hide any items in the area to avoid conflicts with our item
        call MoveRectTo(Find, x, y)
        call EnumItemsInRect(Find , null, function HideItem)
    //Try to move the test item and get its coords
        call SetItemPosition(Item, x, y) //Unhides the item
        set X = GetItemX(Item)
        set Y = GetItemY(Item)
        static if LIBRARY_IsTerrainWalkable then
        //This is for compatibility with the IsTerrainWalkable library
            set IsTerrainWalkable_X = X
            set IsTerrainWalkable_Y = Y
        endif
        call SetItemVisible(Item, false)//Hide it again
    //Unhide any items hidden at the start
        loop
            exitwhen HidMax <= 0
            set HidMax = HidMax - 1
            call SetItemVisible(Hid[HidMax], true)
            set Hid[HidMax] = null
        endloop
    //Return walkability
        return (X - x) * (X - x) + (Y - y) * (Y - y) <= MAX_RANGE * MAX_RANGE and not IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY)
    endfunction

    private function Init takes nothing returns nothing
        set Find = Rect(0., 0., 128., 128.)
        set Item = CreateItem(DUMMY_ITEM_ID, 0, 0)
        call SetItemVisible(Item, false)
    endfunction
endlibrary

Thanks cậu,nhưng mình thử cái này rồi mà ko đc cậu à

P/s: mò đc rồi nha :D
 
Chỉnh sửa cuối:
cho mềnh hỏi tại sao cái Action Wait lại k có tác dụng gì nhỉ? map này có 1 đoạn jass khá dài, như kiểu đã dc deprotect bằng xdep ý??

Cho mình hỏi cách tạo 1 trigger mà khi 1 player chat, nó sẽ hiện thông báo chỉ cho player đấy thôi?
 
cho mềnh hỏi tại sao cái Action Wait lại k có tác dụng gì nhỉ? map này có 1 đoạn jass khá dài, như kiểu đã dc deprotect bằng xdep ý??

Cho mình hỏi cách tạo 1 trigger mà khi 1 player chat, nó sẽ hiện thông báo chỉ cho player đấy thôi?

Wait thì có tác dụng Wait chứ trừ khi code bạn có problem thôi! map mà 1 đoạn jass khá dài thì chắc chắn là deproect rồi :-??
 
cho e hỏi: là làm để nào để move dummy every second, trong cùng 1 trigger Jass
 
Cho mình hỏi có cách nào để làm unit đi xuyên mọi thứ, trừ destructibles,... (như windwalk) = trigger ko? :-?
 
Hix e đang làm một map đánh nhau nhưng ko bik nhiều lắm nên đang cần thêm skill ai chỉ e làm 1 số skill như sau dc ko
-1 skill target nếu giết được mục tiêu sẽ tăng số máu tối đa của hero + thêm 90 mỗi lần ( tối Đa 6 lần) mà 1 lần như thế sẽ làm hero to thêm
- Skill omilash giống như con gì bên dota ấy
- Skill phóng 1 cây kiếm đến điểm đã chọn và đợi 2s tạo nên 1 loc xoáy trong 5s
- 1 skill khi sử dụng hero chạy đến phía trước như trâu hút rùi làm văng mấy mục tiêu trong phạm vi skill
Hix ai giúp mình nhé nếu có thêm demo mình thanks vạn lần
 
thanks a EH nhieu lam nha ~~ skill ma hat doi phuong la lam dong tac giong bo huc nha a ~~
 
Oài.Hiểu rùi.hóa ra mỗi người hiểu spell theo 1 kiểu.Spell Evil_Hunter làm là Deal 1 lượng Damage/s và có 30% deal thêm 1 lượng Damage khác /s.Thế còn hay hơn cái ý của mình.
Mình cần thêm 1 số spell này nữa :
#1:Skill passive có 20% tạo nên 1 quầng lửa(tại vị trí các unit bị ảnh hưởng)tấn công mục tiêu và các unit xung quanh mục tiêu Aoe 300,gây damage = hero damage + lv skill x streg x 1.5 và có 50% cơ hội làm chúng bị bỏng trong 2s gây damage trên s = streng.
#2:Skill passive 20% caster trượt đến mục tiêu và gây damage mục tiêu và các unit xung quanh mục tiêu Aoe 300,damage = hero damage + lv skill x streng,làm chậm tốc chạy 20%) tương tự skill 1 mà hero trực tiếp dash đến vị trí chỉ định.
#3:Bắn ra 1 sợi tơ trói mục tiêu và làm chậm 50% tốc độ chạy trong 3s,nếu mục tiêu là đồng đội thì tăng armor = 3 6 10.(Cái này có vẻ đơn giản vừa tự làm vừa nhờ giúp rồi so sánh)
#4:Tạo 1 luồng sóng siêu âm bắn vào khu vực chỉ định,địch trên đường đi của sóng ko thể tấn công trong 1 2 3 s,sóng có Aoe 200.
#5:Bắn 2 cây kim độc vào mục tiêu,gây damage = Agi x lv skill x 1.5,nếu mục tiêu có buff shadow strike trên người thì gây thêm damage trêm s =lv skill x intel,tồn tại 4s và cứ 2s thi stun target 1s.
Nhờ mọi người làm giúp bằng Trigger nha :D

Copy y nguyên bản nháp của mình zô mà.Skill nó là Supersonic nên ghi sóng âm ^^.Nói chung chỉ cần chức năng skill thôi.hiệu ứng sao cũng đc.sửa sau.20% đó là mình attack mục tiêu.Như kiểu skill Ilvurize j đó của con Tauren bên đạo Orc.2 cái spell 1 2 xài cái Barrage có đc ko nhỉ.Để thử với spell 1.Còn cái 2 phải dash đến nữa >> tịt.Còn chỗ miêu tả thiếu nữa để mình sửa.
Cái này post topic model mấy bữa hok ai replyl:Mắt quỷ Kyo trong truyện cơ bạn ơi.Kiếm hoài chắc ko có.Ai có model Pokemon No152-384 ko,với mấy con này nữa Cubone (con cầm khúc xương dạng 1),Kangaskhan (chuột túi),Rhydon (tê giác đá dạng 2),Doduo Dodrio (2 dạng con đà điểu),Farfetch'd(con vẹt ninja).Ai có post dùm nha.

Ai sửa giúp cái skill trong này thành khi cast ko phải đứng im 1 chỗ chaneling
http://www.hiveworkshop.com/forums/...107217/?prev=search=rooting&d=list&r=20&c=114

Post lại mấy cái này,ai jup với:8cool_cry:
 
Cho mình hỏi có cách nào để làm unit đi xuyên mọi thứ, trừ destructibles,... (như windwalk) = trigger ko? :-?

Tạo 1 cái rect nhỏ,check trên rect đó có destructibles thì ko cho phép đi qua,còn ko thì dùng windwalk để transition time lên max thì ko tàng hình nhưng vẫn đi xuyên qua các unit khác đc,nhưng có cảm giác hơi delay unit một chút.
 
ai chỉ mình làm skill biến hình lúc biến hình gây damge ra xung quanh 800 phạm vi gây 4x agi
 
ai chỉ mình làm skill biến hình lúc biến hình gây damge ra xung quanh 800 phạm vi gây 4x agi

Tạo 2 biến:
- Point: Point
- Group: Unit Group
Làm trigger như sau:
Mã:
Spells
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to [COLOR="#FF0000"]Metamorphosis[/COLOR]
    Actions
        Set Point = (Position of (Casting unit))
        Set Group = (Units within 800.00 of Point matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True))))
        Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                Unit - Cause (Casting unit) to damage (Picked unit), dealing (4.00 x (Real((Level of [COLOR="#FF0000"]Metamorphosis[/COLOR] for (Casting unit))))) damage of attack type Spells and damage type Normal
        Custom script:   call RemoveLocation(udg_Point)
        Custom script:   call DestroyGroup(udg_Group)

Thay skill Metamorphosis thành skill của bạn.
 
Bạn ơi ý mình muốn nói là trong lúc biền hình gây damge xung quanh 5xagi và lúc đó tạo ra 1 dummy tại chỗ biến hình như là dummy co model vòng tròn... Mong bạn chỉ giúp
 
Back
Top