Topic hỏi đáp (tập 3) về cách làm map

Status
Không mở trả lời sau này.
cho hỏi trong jass thì lệnh " private constant real DAMAGE = 200. " có nghĩa là gì ? mình sửa số damage 200 thành (100 + (100x lv abbilty " A " for Caster )) thì phải viết thế nào ạ

đó là vJass ko phải Jass
và cái đó là khai báo "1 hằng số là real với tên DAMAGE và có giá trị là 200", cách sửa thì chỉ mỗi một cách là chỉnh trong phần code đó tất cả DAMAGE thành (100 + (100x lv abbilty " A " for Caster ))
----
chưa đc bác ạ. Vẫn có số 100%.
À quên đố bác TOM câu này: HP và dam của bác trong Starcraft là bao nhiêu=))=)) bác mà không trả lời đc thì...bác đổi tên nhá=))

Số 100% thì phải chỉnh trong Game Interface, vui lòng đọc cái này: http://world-editor-tutorials.thehelper.net/cat_usersubmit.php?view=64640 ở phía dưới có phần unkeep đó
----
Off topic:
Mã:
Tom Kazansky:


HP: 500			Thời gian: 120
Shield: <ko có>		Minerals: 400
Armor: 4  		Gas: 200

Vũ khí (đất):  Burst Lasers
Damage: 16    Bonus: 1  Max hits: 1

Vũ khí (trời): Gemini Missiles
Danage: 40    Bonus: 2  Max hits: 1

đó là thông tin về "Tom Kazansky"
xin lỗi trước chứ Starcraft tôi vẫn còn (bản 1.15) =))
và kể cả ko trả lời được thì tôi cũng chả có lý do gì để phải "đổi tên" cả =))
ngoài ra xin hỏi cái tên "ghót9x" là gi thế ? hay chỉ là một cái nên "came out of nowhere" ? =))
 
đó là vJass ko phải Jass
và cái đó là khai báo "1 hằng số là real với tên DAMAGE và có giá trị là 200", cách sửa thì chỉ mỗi một cách là chỉnh trong phần code đó tất cả DAMAGE thành (100 + (100x lv abbilty " A " for Caster ))

ý em là nếu muốn change nó thành DAMAGE = ( 100 + 100x cấp skill A của casting unit ) thì viết thế nào ạ

tiện thể cho em hỏi sao để vjass không đc bật " Initally on "
 
Trả lời tui đi :( và hỏi thêm câu nữa:
Làm sao để Terrain có nhìu tile hơn bình thường và add được cả những tile không cho add?

Cái này mình có nói rồi mà, bắt đầu từ phần And More ấy

NGWE.jpg
1 - The JassNewGen Pack

-Giới thiệu:
bộ công cụ này bao gồm grimoire (1.5), the jasshelper compiler (0.9.E.0), PJass (1.0k) và Grim Extension pack 1.0b, TESH 0.7 và Risc's Colorizer. Công cụ không thể thiếu đối với những mapper thường xuyên làm việc với
VJASS, một ngôn ngữ lập trình rất mạnh được phát minh bởi Vexorian. Cần nói thêm là đa phần các hệ thống (system) và spell tiên tiến hiện nay đều được code bằng VJASS cả, bạn sẽ thiệt thòi và thậm chí không thể sử dụng chúng một cách hiệu quả mà không có JassNewGen. Nhưng nếu bạn không thích VJASS thì sao? bạn vẫn có thể trung thành với World Editor của Blizzard và thực hành với GUI (Graphics User Interface) mà vẫn có map ngon như thường, tuy nhiên bạn NÊN dùng công cụ này, bởi nó còn bao gồm khá nhiều tiện ích khác nữa, giúp công việc của bạn thuận tiện và nhanh chóng hơn, bạn chỉ được lợi chứ không mất mát gì hết.

-Cách sử dụng
: sau khi tải về bạn giải nén ra, trong đó sẽ bao gồm khá nhiều file và thư mục con nhưng cái bạn cần quan tâm là: NewGen WE, send nó ra Desktop để lần sau thao tác nhanh hơn. Từ bây giờ mỗi khi muốn tạo hay edit map thì bạn chỉ cần khởi động tool này là được. Sau khi khởi động, bạn sẽ ngó qua thanh menu một lát, có khá nhiều thứ hay ho.
+Các tùy chọn đối với Grimoire:(không cần thắc mắc cái này là cái gì)

Start war3 with -window: khi test map thì bạn chơi ở chế độ cửa sổ thay vì toàn màn hình.
Enable object editor hack: bật tùy chọn này sẽ giúp bạn nhập các rawcode độc lập mỗi khi tạo 1 object mới
Enable no limits: bật tùy chọn này sẽ gỡ bỏ các giới hạn của WE như số doodad/neutral unit tối đa cho 1 map.
Disable WE syntax checker và Don't let WE disable trigger: bạn nên bật 2 tùy chọn này nếu map bạn có sử dụng VJASS, nếu không bạn sẽ gặp hàng tá lỗi hay thậm chí crash khi lưu.
Mute editor sounds: bật tùy chọn này sẽ tắt âm thanh khi khởi động NewGen WE, âm thanh khi undo/redo và lúc đặt/xóa object...
Disable first save warning: khi bạn lưu map lần đầu, bình thường WE sẽ nhảy popup để yêu cầu bạn lưu lại, khá khó chịu, tùy chọn này giải quyết vấn đề đó.
+Các tùy chọn đối với Grimoire:

Enable JassHelper: quá rõ ràng, nếu bạn sử dụng VJASS thì luôn luôn bật tùy chọn này lên.
Disable vJass syntax: nếu bật thì mỗi khi lưu NewGen WE luôn dành ít thời gian sau cùng để check, nhưng nếu map bạn không có VJASS thì tắt nó đi để lưu được nhanh hơn.
Disable script optimization: as simple as it's name.
+TESH integration:
plugin này được kèm sẵn và tích hợp hẳn vào NGW, giúp cho các đoạn mã nhìn được rõ ràng và mạch lạc hơn, cụ thể nó giúp bạn chọn font chữ và highlight màu những chỗ cần thiết. mở module trigger ra và bạn sẽ thấy nó nằm ở hàng sau cùng trên thanh menu.
+UMSWE 5 integration:

có thể xem là sự kết hợp của UMSWE 4, WE Unlimited, có chức năng tương tự như WE nhưng kèm theo một số tùy chọn nâng cao. để sử dụng bạn phải khởi động lại NGW sau khi tic chọn nó. công dụng cụ thể và cách dùng thì bạn tự khám phá vì mình cũng chưa dùng món này bao giờ.
+AND MORE:
-bạn nên vào Window, tắt tùy chọn Brush list đi để thao tác với object được nhanh hơn, không là chờ dài cổ đấy.
-với NGW bạn có thể đạt được cỡ map lớn nhất là 480*480 với tùy chọn Enable no limit, tất nhiên là bạn chớ nên dại dột mà tạo 1 map với kích cỡ khổng lồ như vậy làm gì :)
-thông thường bạn chỉ có thể có tối đa 8 Texture cho Terrain Pallette nhưng với tùy chọn Extensions, bạn có thể nâng con số đó lên 16. Điều này rất hữu ích với các map dạng RPG cần nhiều vùng đất khác nhau. Cách làm như sau:
-Vào Extensions/Edit Tileset.Hàng dưới cùng là số texture hiện có trong map của bạn, muốn xóa cái nào bạn click chuột trái vào nó. Phía trên là texture của tất cả tilleset có trong Warcraft, muốn thêm cái nào vào map, bạn chỉ cần click chuột trái vào nó, texture đó sẽ tự động nhảy xuống hàng dưới cùng. (Nhớ là giới hạn tối đa 16 thôi nhé). Sau khi hoàn thành bạn bấm ok, NGW sẽ tự động save. đợi nó save xong thì bạn thoát ra khỏi map (Nhớ đừng save lại lần nữa). Rồi, giờ khởi động lại map và bạn có 16 texture trong Terrain Pallete để dùng. Bạn nên chú ý về khái niệm transition giữa các texture khác nhau, điều này thì tự thực hành nhé.



ý em là nếu muốn change nó thành DAMAGE = ( 100 + 100x cấp skill A của casting unit ) thì viết thế nào ạ

local unit u = GetTriggeringUnit()
local integer lvl = GetUnitAbilityLevel(u, rawcode)
local real dam = 100+100*lvl
 
p.s may mà bác Tom còn giữ starcraft nhé,k thì bác k trả lời đc rồi=)) Tên e là ghost9x,tại cái phông chữ TV đấy.
E hỏi tiếp:Custom Script dùng như thế nào (ứng với các biến khác nhau thì mã như thế nào?)

Custom Script dùng để viết 1 dòng jass (script ấy) thường sử dụng (với GUI-er) để remove leak (có tutorial về memory leak đó, vô topic tổng hợp là có link)

p.s: ko trả lời đc thì cũng chả ảnh hưởng tới hòa bình thế giới =))
 
Cho e hỏi play amination và play amination(rarity) khác nhau như thế nào? trong WE hướng dẫn trừu tượng quá.
@bác Tom: nick name của mình thì phải trả lời đc mình như thế nào chứ.Bác trả lời đc rồi thì thôi e k bắt bẻ gì nữa:)
 
Cho e hỏi play amination và play amination(rarity) khác nhau như thế nào? trong WE hướng dẫn trừu tượng quá.
@bác Tom: nick name của mình thì phải trả lời đc mình như thế nào chứ.Bác trả lời đc rồi thì thôi e k bắt bẻ gì nữa:)

ừ .. cũng đang định hỏi phần này .... trong play amination này có tất cả bao nhiêu lệnh ạ ? ví dụ như "attack" thì nó làm hành động đánh đúng không ạ ??? còn bao nhiêu lệnh như thế nữa ạ ??? ...
@ anh Tom cho em xin cái YH nhé :x
 
Animation thì có rất nhiều VD: Attack, Spell, Spell Slam, Spell Thrown v.v.

Để bít animation từng unit một thì bạn vào WE rồi select con unit mà bạn muốn xem animation, cái bảng ở bên tay trái sẽ hiện ra model của con đó và ở bên trên bảng đó là thanh chọn animation để bạn xem tất cả animation của con unit đó.
 
ừ .. cũng đang định hỏi phần này .... trong play amination này có tất cả bao nhiêu lệnh ạ ? ví dụ như "attack" thì nó làm hành động đánh đúng không ạ ??? còn bao nhiêu lệnh như thế nữa ạ ??? ...

muốn xem 1 unit có animation nào thì mở WE ra (tất nhiên), sau đó đặt unit đó ra ngoài, ấn vô (hoặc chỉ cần "xem" model đó tại Art - Model File của unit đó hoặc bất cứ đâu cho xem model)
ngoài Terrain Editor (F3) ở dưới "mini map" là ô "preview" (nếu ko thấy thì đánh dấu: Window \ Previewer) sẽ hiện ra model đang xem rồi dùng nút mũi tên (trên preview đó) để xem tên animation thôi

@ anh Tom cho em xin cái YH nhé :x

sorry, can't do
(xin lỗi, ko thể)
 
Liên mình cũng dùng trigger set alliance thôi, nếu 2 nước đó có đồng minh nữa thì bạn phải set luôn cho các nước kia.

Máu tụt xuống dưới 100 là So sánh số thực, so sánh thì thuộc về điều kiện rồi, bạn có thể làm thêm 1 cái event chẳng hạn khu unit đó bị tấn công.

ạc bạn ơi mình không tìm thấy dòng life of triggering unit <= 100 ở đâu trong condition mong bạn chỉ rõ hơn.....:(
 
CÁi life of triggering unit < = 100 chính là Real Comparison đấy, < = là less than or equal to
 
Mấy anh làm giùm em cái triger sao: khi hero đem cái item của team kia (mà em đã đặt) vào region dc 1 điểm cho đội, nếu đủ đội nào đủ 5 điểm trước thì Win.Mấyanh làm giùm em với.Chỉ em làm bảng tính điểm lun nhe.
 
Ôi thế là câu hỏi của mình bị bỏ qua luôn à?:( Cái e hỏi nằm trong phần trigger: play amination và play amination(special rarity) khác nhau như thế nào? cách dùng nó như thế nào?
 
ai chỉ em làm lệnh -rg đuợc không
Mã:
lenh rg
    Events
        Player - Player 1 (Red) types a chat message containing -rg as An exact match
    Conditions
    Actions
        Game - Display to (All players) the text: Lenh -rg da duoc ki...
        Trigger - Turn off Tao NV sau 10s <gen>
        For each (Integer A) from 1 to 10, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        ((Player((Integer A))) slot status) Equal to Is playing
                    Then - Actions
                        Set Random_Count = (Random_Count - 1)
                        Set Random_Hero = (Random integer number between 1 and Random_Count)
                        Set Random_Data[Random_Hero] = Random_Count
                        Unit - Create 1 Hero_Array[Random_Data[Random_Hero]] for (Player((Integer A))) at ((Player((Integer A))) start location) facing Default building facing degrees
                        Selection - Select (Last created unit) for (Owner of (Last created unit))
                        Game - Display to (All players) the text: (Co nguoi da chon duoc + (Name of (Last created unit)))
                    Else - Actions
                        Do nothing
        Trigger - Turn off (This trigger)
sai chỗ nèo vậy
 
@ghót9x: thật ra 2 cái này cũng chả khác nhau là mấy cứ dùng lệnh play animation ở trên thôi, đừng dùng cái dưới làm gì.

@hacker_tinhyeu: lệnh -rg đó đảm bảo sẽ bị trùng hero, cách của tui dễ làm hơn rất nhiều, xem map attach thì rõ (bonus thêm lệnh random).
I love sex​
Có cần phải tự thú ra không vậy=))
 

Attachments

muốn xem 1 unit có animation nào thì mở WE ra (tất nhiên), sau đó đặt unit đó ra ngoài, ấn vô (hoặc chỉ cần "xem" model đó tại Art - Model File của unit đó hoặc bất cứ đâu cho xem model)
ngoài Terrain Editor (F3) ở dưới "mini map" là ô "preview" (nếu ko thấy thì đánh dấu: Window \ Previewer) sẽ hiện ra model đang xem rồi dùng nút mũi tên (trên preview đó) để xem tên animation thôi

tại cái này em cũng k biết nhiều về WE lắm nhưng ý em là : Khi một unit đánh thì nó sẽ có hành động attack ! đúng k ạ ? , vậy thì còn những hành động gì nữa mà mình có thể thực thi qua trigger -> animation -> Play's unit animation ?
 
Hic, không hiểu sao trong trigger ghi là attack 2 thì vào game nó cũng cho ra attack 1 :(
 
tại cái này em cũng k biết nhiều về WE lắm nhưng ý em là : Khi một unit đánh thì nó sẽ có hành động attack ! đúng k ạ ? , vậy thì còn những hành động gì nữa mà mình có thể thực thi qua trigger -> animation -> Play's unit animation ?

Hành động bạn đang gọi là Diễn Hoạt (Animation), diễn hoạt nhiều hay ít, đẹp hay xấu là tùy ở người tạo model chứ mình không điều khiển được.
Thông thường các diễn hoạt cơ bản phải có là:
-Attack: tấn công
-Move: di chuyển
-Stand: đứng, bạn để ý một số model có vài diễn hoạt đứng rất đẹp như Demon Hunter, lúc ko làm gì nó ngó nghiêng hay giơ chân làm kiểng !
-Spell: lúc thi triển phép thuật.
-Death: hành động ngã chết, chẳng hản kiểu chết gợi tình của Sorceress.

Muốn xem 1 unit có những diễn hoạt nào thì bạn để nó trên model, click chọn, trên WE khung bên trái sẽ có hiển thị đầy đủ.
Muốn cho unit đó diễn hoạt theo ý mình thì cứ dùng lệnh:
Animation - play unit animation thôi, chú ý là những diễn hoạt nó ko có thì bạn play cũng ko có tác dụng.
 
@ghót9x: thật ra 2 cái này cũng chả khác nhau là mấy cứ dùng lệnh play animation ở trên thôi, đừng dùng cái dưới làm gì.

@hacker_tinhyeu: lệnh -rg đó đảm bảo sẽ bị trùng hero, cách của tui dễ làm hơn rất nhiều, xem map attach thì rõ (bonus thêm lệnh random).

Có cần phải tự thú ra không vậy=))

sao ko down att dc hjxhjx bị gì vậy
có thể up lên mediafile được không
 
Status
Không mở trả lời sau này.
Back
Top