Jass, ngôn ngữ cơ bản của War 3 - Các bạn vào tham khảo

Thảo luận trong 'World Editor' bắt đầu bởi hyaTHa_dk, 9/8/06.

  1. hyaTHa_dk

    hyaTHa_dk Mr & Ms Pac-Man

    Tham gia ngày:
    10/4/05
    Bài viết:
    235
    Nơi ở:
    Hà Nội
    Thực ra mình lập topic này để cho bạn Rex và Zeka, những bạn vẫn còn để ý đến box này thôi..... CÒn những bạn khác có thể vào tham khảo thêm

    Mình định giới thiệu cho 2 bạn một chút rất dễ của Jass để các bạn có thể nắm được nó 1 cách đơn giản nhất
    Mình sẽ post map spell của mình lên + nói sơ qua cách thức làm của nó. 2 bạn mở ra xem rồi có gì hỏi thì hỏi luôn đi nhớ.

    Yêu cầu đừng post bài lung tung ở dưới này !!!
    Only Question thôi nha !
     
  2. hyaTHa_dk

    hyaTHa_dk Mr & Ms Pac-Man

    Tham gia ngày:
    10/4/05
    Bài viết:
    235
    Nơi ở:
    Hà Nội
    đầu tiên, mình nói qua 1 đoạn code làm mờ Unit của mình
    ------------------------------------------------------------------------
    -Hiệu ứng tỏ ra rất chuyên nghiệp tùy từng người làm nó
    -Có thể tham khảo thêm map CAT's defense(có cây gậy Staff of Moon thì phải). Hay phép Spirit of the Moon trong CAT's Team

    Mục đích chỉ tạo hiệu ứng thêm cho bất kỳ Unit Effect nào chứ ko cứng nhắc như ở map của các bạn là từng Unit một (mới cả lại còn có khi ko làm được)
    ------------------------------------------------------------------------
    * Map dưới sẽ cho các bạn xem hiệu ứng làm mờ áp dụng cho bất kỳ Unit nào và dùng 1 đoạn Trigger chung
    ------------------------------------------------------------------------
    2 Unit để các bạn theo dõi sự khác biệt(Lưu ý là mình chú tâm vào cái làm mờ trước đã nha)
    **Unit bên trái : khi dùng phép
    - tạo 1 Unit di chuyển xung quanh và ko có hiệu ứng gì cả
    **Unit bên trái : khi dùng phép
    - tạo 1 Unit di chuyển xung quanh và có hiệu ứng làm mờ
    ------------------------------------------------------------------------
    Các bạn xem sự khác biết như thế nào !

    Lưu ý là thỉnh thoảng rỗi mình mới lên được, đừng ai post nhảm ơ đây nhớ !
    Dùng winrar giải nén
    Map đây:
     

    Các file đính kèm:

  3. hyaTHa_dk

    hyaTHa_dk Mr & Ms Pac-Man

    Tham gia ngày:
    10/4/05
    Bài viết:
    235
    Nơi ở:
    Hà Nội
    ơ, ko có ai hỏi gì à ?
    Vậy là mọi người hiểu hết rồi chứ gì !!!
    Vậy mình chuyển sang chủ đề khác nhớ
    --------------------------------------------------------------------------
    Giờ mình xin chuyển qua một cái ko phải Jass nhưng nghĩ qua thì cũng nên nói một chút: Unit Caster Spell
    --------------------------------------------------------------------------
    Đây hầu như là Unit quan trọng cho bạn để tạo 1 spell mà bạn muốn = trigger
    Unit này tùy từng spell mà chia ra ít nhất làm 3 loại mà mọi người thường dùng

    + Loại 1 là phổ biến nhất
    ------ Unit có Skill LOCUST
    + Loại 2 là loại mọi người ít dùng nhưng theo mình loại này mới là quan trọng
    ------ Unit ko có Skill LOCUST
    + Loại 3 là con lai của 2 loại trên nhưng là yếu tố quan trọng góp phần làm đẹp và mở rộng phạm vi của phép :D
    ------ Unit ko có Skill LOCUST và là 1 Unit bay có vận tốc cực lớn

    Nếu bạn có thể sử dụng cả 3 loại trên thì coi như đã lên đẳng cập Prồ rồi đó :D
    --------------------------------------------------------------------------
    Đó là giới thiệu tổng quát cho các bạn biết, còn tùy từng lúc mình sẽ nói sâu vào từng loại
    --------------------------------------------------------------------------
    Giờ nói về loại 1: Loại này chỉ nói qua thôi vì mình nghĩ ai cũng biết rõ rồi, cũng ko cần nói nhiều lắm. Nhưng mình cũng làm 1 phép ví dụ cho mọi người rõ thêm về nó + tăng kiến thức về thời gian chênh lệch và tọa độ trong map

    Phép mô phỏng chút ít của spell gì gì đó trong dday: của 1 Unit bên quỷ, có khả năng phân thân và phép cuối của nó là phép gọi lên 1 quả cầu vàng rồi phóng shockwave lần lượt ra 8 hướng ấy.... Tạm thời gọi là Orb of ShockWave. Phép có sử dụng Caster Unit loại 1

    Spell là = trigger và chỉ có tác dụng cho 1 Hero trong map. Ko có thể tác dụng lên tất cả các Hero có phép này được.

    Đậy chính là mặt yếu kém của trigger :((. Nếu bạn sang đến Jass, bạn chỉ cần sửa "một chút" thôi là spell này sẽ có tác dụng lên tất cả các Hero cast nó. Nên hầu như các map bạn chơi, bạn ko thể chọn Hero nào mà người khác đã lấy rồi được, đây cũng chính là cách biện mình cho người làm map đó mà hầu hết giờ mọi người đều làm theo cách này để tránh được việc chọn 2 hero sẽ làm spell này coi như bỏ đi.

    Các bạn cũng có thể tham khảo thêm phép Orb of Light trong map CAT's Defense của mình
    --------------------------------------------------------------------------
    + Ko có gì giải thích cách làm của spell này cả, vì nó khá đơn%2
     

    Các file đính kèm:

  4. dntnguyen

    dntnguyen Mario & Luigi

    Tham gia ngày:
    21/8/04
    Bài viết:
    733
    Cho em hỏi cái phần này

    Khi làm bất cứ trigger nào thì cũng bắt đầu với vài thứ như

    Function [ Function name ] takes [ ] returns [ ]

    Endfunction

    Cái phần Function name hình như không quan trọng . Còn 2 phần kia thì chưa hiểu nó nói gì >_< . Có thể nào diễn giải nghĩa đơn giản của nó được không :|

    Còn một vài cái như constant function

    Và khi mình làm Jass trình tự cũng có thể giống như trigger bình thường phải không ^^ .

    ===============

    Xin chỉ bảo . Em mới mở tài liệu ra đọc nên chưa hiểu nhiều >_<
     
  5. hyaTHa_dk

    hyaTHa_dk Mr & Ms Pac-Man

    Tham gia ngày:
    10/4/05
    Bài viết:
    235
    Nơi ở:
    Hà Nội
    Trước hết mình xin nhắc bạn câu hỏi post dưới chỉ trong phạm vi chủ để của những bài mình đã post thôi !!! Nếu hỏi gì ngoài thì post sang bên topic hỏi đáp nha
    ----------------------------------------------------------------------------
    Còn về cái Function thì cũng giống như bao ngôn ngữ lập trình khác, ko có gì khó hiểu lắm cả

    ----------------take------- returns nothing
    Function trên nhận 1 Unit và làm 1 số việc cho bạn
    + Giết Unit đó
    + Tạo dòng chữ Vĩnh Biệt thế giới màu đỏ ở tại vị trí Unit đó
    + Làm cho dòng chữ bay lên
    + Tạo 1 effect là cái đầu lâu được giải thoát
    + Đợi 5s
    + bỏ xác của Unit đó đi

    Nó cũng tương tự như 1 hàm trong lập trình ấy

    Function Nha^n take (Real a, Real b) return c
    ----c=a*b
    end
    Ví dụ như Function này nhận 2 số và trả về cho bạn tích của 2 số đó
    a = Nha^n(10,2)
    ==> a = bao nhiêu vậy ? :D
    Hiểu chưa bạn ?
    Nếu ko hiểu rõ lắm thì xem map này nhớ
    --------------------------------------------------------------------------
    Xin mọi người lưu ý là trong map này mình đã cho các bạn thêm 2 hệ thống cũng giống như hệ thống làm mờ :
    ++ Xóa 1 Text bay trong War (delay = 2.5)
    ++ Xóa 1 Effect trong war (delay = 3)

    Cách sử dụng tương tự như hệ thống làm mờ, ko có gì để nói nhiều lắm !
    -------------------------------------------------------------------------
    Map hoạt động như sau:
    _ Mình đã để Event là Player 1 Select 1 Unit nào đó
    _ Lúc này hàm "GetTriggerUnit()" sẽ trả về cho các bạn Unit được bạn selected
    _ Action: Chạy hàm MessageDeath cho Unit đó
    -------------------------------------------------------------------------
    Bạn chỉ việc select và xem Function đó hoạt động như thế nào

    Yêu cầu lần sau đừng hỏi vấn đề gì ngoài chủ để mà mình đã post. Thực gia các bạn mới học thì theo mình ko nên học phần này trước
    Map đây:
     

    Các file đính kèm:

  6. hyaTHa_dk

    hyaTHa_dk Mr & Ms Pac-Man

    Tham gia ngày:
    10/4/05
    Bài viết:
    235
    Nơi ở:
    Hà Nội
    ơ, tự nhiên có 3 bài ko hiểu sao lại có ở đây ???
    và cũng sorry bà con, mấy hôm này bận cầy trả nợ cho thằng em maple nên cứ online là....... :(
    giờ mới có chút time post tiếp cho bà con
    --------------------------------------------------------------------------
    Tiếp, tôi sẽ bàn về Spell-Trigger và Spell-Jass, mối quan hệ của chúng với "Unit Caster Spell"
    Đầu tiên hãy xem 1 ví dụ đơn giản về 1 Spell:
    Khi cast spell: Gọi 1 cục đá rơi xuống, nó phát nổ và bắn ra 1 quả shockwave về phía Bắc

    Mọi chuyện ko có gì khó khăn cho lắm với những Effect trên và chỉ có 1 Hero hay Unit có thể cast nó ra

    Tôi sử dụng 3 Effect và 1 Effect do War3 quản lý
    Lấy spell cơ bản là Silence của Dark Ranger với Effect là Inferno(cái này do War3 quản lý)

    -Tiếp đó, căn thời gian tảng đá Inferno rơi xuống rồi tạo 3 Special Effect tại điểm nó rơi: StarFall, FlameStrike-Special, FlamStrike-Effect
    -Gán biến cho 3 effect vừa tạo
    -Gọi 1 Unit Caster Spell và Order nó bắn ShockWave theo hướng 90 độ
    -Đợi khoảng 2s, Hủy 3 Effect vừa tạo đi

    Ko có gì đáng nói cả. Nhưng vấn đề phát sinh ở đây là như sau:
    -Bạn muốn khi Hero của bạn cầm 1 Item gì đó, khi tấn công cũng có khả năng bắn ra được phép đó, hay là tạo 1 chùm mưa element, lấy 1 hạt mưa là spell đó chẳng hạn vv....

    Lúc đó công việc của bạn là 1 Trigger Order cho nhiều CASTER SPELL bắn phép đó. Có thể diễn giải như sau:

    -Vòng lặp
    -Tạo 1 Unit Caster Spell
    -Add phép Silence cho Unit CasterSpell
    -Order nó bắn và chính vị trí đang đứng của nó chẳng hạn(Order tất nhiên là Silence - Dark Ranger)
    -Hết vòng lặp

    Như vậy, cứ lúc nào bạn cần bắn phép này thì add spell Silence cho CasterSpell và ra lệnh cho nó bắn...
    Nhưng mọi việc không đến nỗi dễ như thế :(

    Như Zeddy đã từng quan tâm, việc đồng thời(chỉ là tương đối) có 2,3,4...100 unit cùng bắn phép đó thì sao đây ???
    Trigger cũng sẽ nhận đủ và làm đủ 100 lần spell trên, nhưng kết quả thì ko như ta mong đợi :(

    Tại sao lại vậy ?
    Đơn giản vì 1 lý do: spell trên có dùng 3 biến Effect để gắn + thời gian WAIT đã phá hỏng cách hiểu của WAR về Trigger khi sử lý những dòng lệnh đó
    Tôi đảm bảo với các bạn nếu xóa những dòng WAIT 2s hay 1s vv.. thì nó sẽ có tác dụng với CASTERSPELL. Các bạn có thể thử

    Nhưng được mấy spell mà ko cần căn thời gian cho chính xác(đấy là tôi mới nói về riêng spell Simple này đấy)
    Và 1 lý do nữa mà các bạn cũng cần quan tâm là về Level của spell đó.

    Ví dụ 2 hero cùng cast spell đó. Hero1 với level 2 cast trước, Hero2 với level 10 cast sau.
    Nếu sử dụng đoạn trigger trên thì đố bạn biết cả 2 spell được bắn ra sẽ mang level bao nhiều ? Level 10 là câu trả lời

    Vì khi dùng lệnh Wait, War sẽ hiểu sai về Casting Unit. Thực chất, đây là 1 biến luôn được gán cho bất kỳ Unit nào vừa mới cast 1 spell nào đó.
    Do có lệnh wait nên khi đoạn trigger1 của Hero1 dừng lại wait, Trigger2 của hero2 chạy sau sẽ gán biến Casting Unit vào Hero thứ 2
    => đương nhiên khi đến lúc Trigger1 đã wait hết thời gian, nó sẽ chạy tiếp nhưng với Casting Unit là Hero2 ko phải Hero1 nữa

    Mọi chuyện sẽ còn rắc rối cho bạn hơn nữa khi các bạn làm những spell phức tạp hơn nhiều so với cái spell đơn giản này

    Nhưng trước hết, hãy down cái map Trigger này về đã :D
    Map đây:
     

    Các file đính kèm:

  7. hyaTHa_dk

    hyaTHa_dk Mr & Ms Pac-Man

    Tham gia ngày:
    10/4/05
    Bài viết:
    235
    Nơi ở:
    Hà Nội
    Tiếp nào !!! sau đây sẽ là phiên bản Jass của phép trên, và nó hoạt động được với tất cả mọi hoàn cảnh kể cả khi wait bao nhiêu, có bao nhiều Unit cùng cast phép đó
    Đây cũng chính là điểm mạnh của Jass

    Ta hãy xem lại đoạn Trigger chính của spell trên và chuyển nó sang Jass:
    Bạn thử nghĩ xem: trigger này có lưu 3 biến Effect1,2,3. Nếu có nhiều 3 Hero cùng cast phép này thì bạn sẽ phải có 3x3 = 9 biến, 4 Hero thì 3x4 = 12 vvv....
    Thì với Jass, bạn có thể yên tâm là sẽ ko cần khi báo biến như làm với spell Trigger :D

    Sau đây là đoạn Jass của spell này:
    Bạn sẽ thấy điểm khác giữa 2 đoạn code trên là Jass có thêm phần
    local ......

    set .... = null

    đây là phần khai báo biến và phần hủy biến khi ko còn dùng nó nữa
    Còn mọi thứ còn lại vẫn nguyên đai, nguyên kiện :D

    Tuy nhiên đây mới chỉ là phiên bản Jass Dài dòng của phép này... Đợi mấy hôm nữa tôi sẽ post tiếp những phiên bản ngắn hơn của phép này

    Còn đây là map Jass:
     

    Các file đính kèm:

  8. Kigami

    Kigami Youtube Master Race

    Tham gia ngày:
    24/7/06
    Bài viết:
    38
    Anh Hythadk ơi, anh có bản dịch của cái hướng dẫn sử dụng Jass không? Nếu có send em.
    Tiện thể em hỏi luôn, nếu em muốn làm chưởng như sau thì làm thế nào:
    Khi em dùng, lập tức em biến mất, thay vào đó là một một thằng quân nó(unit hay hero). Nhưng nó lại ở dưới hình dạng của em, và ăn đòn được của đồng đội nó và cả quân em trong 1 thời gian nhất định rồi mới hiện nguyên hình là nó. Lúc ấy hero em tàng hình.
    Tiện thể anh cho em xin cả YM nữa nhé
     
  9. hyaTHa_dk

    hyaTHa_dk Mr & Ms Pac-Man

    Tham gia ngày:
    10/4/05
    Bài viết:
    235
    Nơi ở:
    Hà Nội
    nhân dịp topic đóng cửa vào 11-9 sì pam cái

    nói nghe khá khó hiểu nên ko giúp được bạn !!! Kể tỷ mỷ hơn được ko ?

    Mình phép mimic như sau: chỉ có tác dụng giả dạng và khá độc đáo
    - Copy chính xác hình dạng của đối tượng + ability của nó nữa
    - Sau đó có thể lọt vào đội ngũ của quân địch để do thám
    - Sẽ mất tác dụng trong 1 phút hoặc tấn công quân hoặc thành của đối phương
    Đợi để mình nhớ lại cách làm đã :D sẽ nhanh thôi !
     
  10. Kigami

    Kigami Youtube Master Race

    Tham gia ngày:
    24/7/06
    Bài viết:
    38
    anh Hythadk ơi, em cần nik YM của anh mà. Hay anh add nik em đi. Nik em là [email protected]

    Còn chi tiết chưởng em muốn làm là như sau
    Khi dùng nó, chọn muc tiêu là một unit bất kì(quân nó, quân ta và cả hero 2 bên nữa) trong một khoảng cách nhất định(tầm 700range). Rồi khi ta sử dụng phép, hero với mục tiêu đổi chỗ cho nhau. Mục tiêu mang hình dạng của hero, bị ăn của cả 2 bên quân địch và cả quân ta. Còn hero ta thì tàng hình tại vị trí của mục tiêu. Tuy nhiên skill thì không đổi. Sau 3s thì mục tiêu trở lại hình dạng bình thường. Còn sau 1 phút, ta mới hết tàng hình.
     
  11. silverfang

    silverfang Youtube Master Race

    Tham gia ngày:
    2/5/06
    Bài viết:
    22
    anh hương dẫn cách làm multiboard đi anh...
     
  12. DuongKyMinh

    DuongKyMinh The Warrior of Light

    Tham gia ngày:
    13/5/03
    Bài viết:
    2,439
    Nơi ở:
    Đào Hoa Đảo
    Tớ muốn làm 1 hệ thống Select Heroes theo kiểu các Heroes xếp hàng sẵn, người xem click vào con Hero đó sẽ xem được các chiêu thức và có 1 button để khi hài lòng có thể click và chọn con Hero đó không biết viết như thế nào nhỉ.
     
  13. Zekareisoujin

    Zekareisoujin C O N T R A

    Tham gia ngày:
    24/8/04
    Bài viết:
    1,899
    Nơi ở:
    Everywhere in Nowhere
    Không biết hỏi thế này là có ý j` nhỉ TTM? ;))
     
  14. VTTRoseRed

    VTTRoseRed Youtube Master Race Lão Làng GVN

    Tham gia ngày:
    21/3/05
    Bài viết:
    20
    Ko biết ý bạn có phải là thế này ko : zzz khi mình click vào hero thì sẽ nhìn thấy icon cùng với description của spell ở dưới, và có 1 button để khi mình click vào đó sẽ select đc hero đó, nếu vậy thì theo mình có thể làm như sau : tạo 1 con hero(neutral passive), set is building=true, tạo các spell passive ( kiểu như mấy cái aura ) với icon và description của spell hero. Sau đó set sell unit=hero mình muốn, chỉnh max stock=1 rồi làm 1 cái trigger remove sau khi select zzz. Mình có kèm theo cái map để test :http://d.turboupload.com/d/940791/SelectHeroTest.w3x.html
    Mà hình như bạn đang đùa :D, vì mình nghe nói Dương Kỵ Minh pro map maker lắm mà zzz
     
  15. hyaTHa_dk

    hyaTHa_dk Mr & Ms Pac-Man

    Tham gia ngày:
    10/4/05
    Bài viết:
    235
    Nơi ở:
    Hà Nội
    hệ thống đây nhan nhản ở ngoài đường ấy, đầy, hầu hết là copy từ hệ thống select của Verxorian
    Còn anh ấy Pro là ở thế kỷ trước rồi, còn giờ ở thế kỷ này thì cũng ko rõ lắm !
    Theo xét đoán thì cỡ chỉ = zeka
     
  16. DuongKyMinh

    DuongKyMinh The Warrior of Light

    Tham gia ngày:
    13/5/03
    Bài viết:
    2,439
    Nơi ở:
    Đào Hoa Đảo
    uhm, tại nghe nói box War đang tổ chức thánh chiến zì đấy ghé wa thăm Zeddy. Sẵn xem gã devil và zeka còn làm map ko. Coi mòi AR ko ghé box nữa nhỉ.

    Câu hỏi trên để tìm hiểu xem các bạn code jass có hiểu về jass ko hay chỉ copy system của người khác đó mà :p sorry. Anyway, thánh chiến thành công nhé :D
     
  17. hyaTHa_dk

    hyaTHa_dk Mr & Ms Pac-Man

    Tham gia ngày:
    10/4/05
    Bài viết:
    235
    Nơi ở:
    Hà Nội
    àh mà hóa ra là thế !!
    Mà bạn có làm được cái đó ko mà nói ghê thế ? Có thể bỏ chút thời gian làm lại cái đó cho mọi người cùng xem được ko zậy ?
    Vì sẵn tiện chưa ai làm cái đó mà
     
  18. VTTRoseRed

    VTTRoseRed Youtube Master Race Lão Làng GVN

    Tham gia ngày:
    21/3/05
    Bài viết:
    20
    Cái select hero của vexorian thì trên mạng có đầy, đọc trong đó thì cũng dễ hiểu thôi mà, có gì đâu zzz, còn làm thì cũng làm đc, nhưng nghĩ ra và chuẩn hóa thì vexorian làm trước rồi, làm lại làm gì nữa.
    Mà tìm đc cái hệ thống phóng missle của vexorian rồi, hóa ra cũng không phức tạp lắm zzz
    Nhân tiện cho hỏi bạn đang dùng tool gì vậy, JassShopPro à ?
    Hình như forum này hơi ít người biết JASS zzz, có lẽ sắp tới cố gắng viết với dịch cái tutorial về JASS lên cho mọi người zzz
     
  19. DuongKyMinh

    DuongKyMinh The Warrior of Light

    Tham gia ngày:
    13/5/03
    Bài viết:
    2,439
    Nơi ở:
    Đào Hoa Đảo
    bỏ làm map cũng 2 năm rồi, giờ thì đế cái hotkey convert Trigger ấy xang text tôi còn quên. Ngày xưa code jass thì tôi ko dùng tool, nhưng còn nhớ thuật toán.

    Ai chả biết kiến thức là bất tận nhưng coi mòi các bạn quá giỏi và thấy chẳng ai bằng mình rồi đấy. Trình độ tôi thì ko dám so sánh với các cậu, tôi chỉ cỡ = 1/10 Zeka hay Devil hay Amount Reaper thôi. Tức là thuộc vào hạng con gà cúm trong những con gà đang họp làm map ^^ Chúc các cậu mãi sống trên đỉnh vinh quang và tự mãn mãi nhé.
     
  20. VTTRoseRed

    VTTRoseRed Youtube Master Race Lão Làng GVN

    Tham gia ngày:
    21/3/05
    Bài viết:
    20
    Ấy ấy đại ca đừng nói thế đàn em tổn thọ zzz, đùa thôi chứ về làm map thì mình vẫn luôn biết là còn kém mà ( hỏi dnt thì bít, mình còn hỏi nó ym của bạn để vào học hỏi mà :D )ko bít đã có câu nào để bạn nghĩ mình tự mãn chưa nữa zzz, mà nếu chẳng may có thì cho mình sry nhá :(
    Mà nhân tiện hỏi luôn bạn có cái script tính sin, cos ko, dùng cái deffault của WE thì hình như nó bị lag !
     

Chia sẻ trang này