Trả lời 1 số câu hỏi thường gặp
Đây là một số câu hỏi thường gặp mà các newbie hay hỏi đi hỏi lại trong box, tiện thể mình trả lời luôn. Bài dài, nhấn Ctrl + F để tìm nhé >-
--------------------------------------------------------------------------
------------------------------------------------------------------------
----------------------------------------------------------------------
-----------------------------------------------------------------------------
-----------------------------------------------------------------------
-----------------------------------------------------------
-----------------------------------------------------------
-----------------------------------------------------
----------------------------------------------------------------
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------------------------------
-----------------------------------------------------------------------
Sẽ tiếp tục cập nhật những câu hỏi từ xưa mà chưa có tút
- Ghép item theo charge:
- Làm sao để có ghép item có charge thành 1, vd: item máu khi có 1 bình trên người nhặt thêm 1 bình máu nữa sẽ gộp lại thành 2
- Code:
StackChargedItem
Events
Unit - A unit Acquires an item
Conditions
(Charges remaining in (Item being manipulated)) Greater than 0
Actions
Set TempUnit = (Hero manipulating item)
Set TempItem = (Item being manipulated)
For each (Integer A) from 1 to 6, do (Actions)
Loop - Actions
Set TempItem2 = (Item carried by TempUnit in slot (Integer A))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Item-type of TempItem2) Equal to (Item-type of TempItem)
TempItem2 Not equal to TempItem
Then - Actions
Item - Set charges remaining in TempItem2 to ((Charges remaining in TempItem2) + (Charges remaining in TempItem))
Hero - Drop TempItem from TempUnit
Item - Remove TempItem
Skip remaining actions
Else - Actions
--------------------------------------------------------------------------
- Tạo 1 leaderboard đơn giản:
- Làm thể nào để tạo 1 leaderboard đơn giản
Tạo leaderboard thì khá đơn giản, cần 1 biến (variable) name: K3Leaderboard, type là leaderboard. 1 biến mảng (variable array) name: PlayerValue, type: Integer để lưu giá trị cho mỗi player
- Code:
CreateBoard
Events
Time - Elapsed game time is 0.00 seconds
Conditions
Actions
Leaderboard - Create a leaderboard for (All players) titled Score Board //tạo 1 board với tiêu đề (ở đây là "Score Board"
Set K3Leaderboard = (Last created leaderboard) //lưu board mới tạo vào biến
Leaderboard - Add Player 1 (Red) to K3Leaderboard with label K3 Posh and value 0 //thêm player 1 vào board với tiêu đề (có thể là tên player hoặc gì cũng đc ) là K3 Posh
Leaderboard - Add Player 2 (Blue) to K4Leaderboard with label Leo and value 0 //thêm player 2 vào board
Leaderboard - Add Player 3 (Teal) to K5Leaderboard with label Lowji and value 0 //thêm player 3 vào board
For each (Integer A) from 1 to 12, do (Actions) //loop này để đặt giá trị là 0 cho mọi player (3 player chắc chỉ cần from 1 to 3 là đủ)
Loop - Actions
Set PlayerValue[(Integer A)] = 0
Create xong thì cần update board đó, ví dụ update khi kill
- Code:
BoarUpdate
Events
Unit - A unit Dies
Conditions // tất nhiên cần thêm điều kiện
Actions
Set i = (Player number of (Owner of (Killing unit))) //i là 1 biến integer, biến này tạo ra để dùng tạm
Set PlayerValue[i] = (PlayerValue[i] + 1) // thêm giá trị vào biến giá trị của player
Leaderboard - Change the value for (Player(i)) in K3Leaderboard to PlayerValue[i] // bây giờ thay đổi giá trị của board cho player killer
Từ I là index của player killer ( tựa như Player 1 -> index là 1)
Player(I) là Conversion - Convert Player Index To Player <- Player(1) = player 1
------------------------------------------------------------------------
- Đặt và pick hero trong tavern:
----------------------------------------------------------------------
- Tạo trigger khi cây đổ sẽ mọc lại:
- mình muốn tạo mấy cái cây mà sau khi bị chặt có thể tự mọc lại ai biết chỉ mình nhá
cái này thì...
Cần 2 trigger:
- Code:
RegrowthTreesInit
Events
Time - Elapsed game time is 0.00 seconds
Conditions
Actions
Destructible - Pick every destructible in (Playable map area) and do (Actions)
Loop - Actions
Trigger - Add to RegrowthTrees <gen> the event (Destructible - (Picked destructible) dies)
- Code:
RegrowthTrees
Events
Conditions
Actions
Wait 60.00 seconds
Destructible - Resurrect (Dying destructible) with (Max life of (Dying destructible)) life and Show birth animation
Thời gian 60.00 giây kia có thể đổi thành bao nhiêu thì tùy
-----------------------------------------------------------------------------
- Max lever hero:
Max lever hero ( không biết ai đã hỏi nhỉ )
Chọn Advance/Gameplay Constants/ Hero Maximum lever rồi chỉnh lại số( nhớ tích vào ô use custom Gameplay Constants nha )
Như trong hình, cứ làm theo
-----------------------------------------------------------------------
- Custom commandbutton:
- Chỉ mình làm custom command button đi
Command button thì lên hiveworkshop.com , vào phần icon tìm hình thích hợp, down về, import vào map. Xong vào advanced => game interface tìm mấy dòng có chữ attack, stop,... R thay bằng icon import vào là xong
- Lệnh -lvl:
- Code:
Max Level
Events
Player - Player 1 (Red) types a chat message containing -lvl as An exact match // Player - Chat Message
Conditions
Actions
Set TempGroup = (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True)) // Set Variable
Unit Group - Pick every unit in TempGroup and do (Actions) // Unit Group - Pick Every Unit In Unit Group And Do Multiple Actions
Loop - Actions
Hero - Set (Picked unit) Hero-level to 25, Show level-up graphics // Hero - Set Level
Custom script: call DestroyGroup( udg_TempGroup ) // Custom Script, còn lại là tự gõ. (copy and paste cũng đc)
sau dấu // là giải thích để bạn biết lệnh đó ở đâu.
biến TempGroup là biến kiểu Unit Group
bao nhiêu player cần thì bạn thêm vào bấy nhiêu event, nhớ chỉnh lại player tương ứng
-----------------------------------------------------------
- Sắp xếp vị trí item trong shop sao cho hiện đúng chỗ trong game?:
item hiển thị trong shop được hiển thị lần lượt theo độ ưu tiên:
- từ trái qua phải
- từ trên xuống dưới
Ví dụ trong item sold thứ tự item của bạn lần lượt là: A1, A2, A3, A4, A5, B1, B2
thì hiển thị theo ô sẽ là:
[ A1 ][ A2 ][ A3 ][ A4 ]
[ A5 ][ B1 ][ B2 ][ __ ]
[ __ ][ __ ][ __ ][ __ ]
-----------------------------------------------------------
- Sửa lỗi icon bị màu xanh lá (thường gặp):
- Icon bị xanh lá khi pause game/hết mana/bị silent ?
- Do bạn chưa import icon Disable của nó... Nhớ rằng, 1 icon luôn có 2 file. Command và Command Disabled
- Import xong phải chỉnh đường dẫn của icon disable = ReplaceableTextures\CommandButtonsDisabled\
Ví dụ về 1 icon import đúng:
ReplaceableTextures\CommandButtons\BTNtenIcon.blp
ReplaceableTextures\CommandButtonsDisabled\DISBTNtenIcon.blp
-----------------------------------------------------
- Chọn tướng như d-day:
- Chọn tướng như D-day
-Cách chọn tướng:
cách này bất lợi ở chỗ mỗi tướng phải có 1 region, 1 trigger riêng..Bạn tạo 1 khu vực đủ rộng cho số Hero mình có, nên đặt cách biệt vùng chơi (đặt doodad cản lại, xây trên tường hay đặt boundary), sao đó, xếp hero lên, chuyển owner cho tất cả về neutral passive, đặt trước mặt mỗi hero 1 cái circle of power (unit ở phần neutral passive, campaign)..vẽ 1 region ngay trên đó rồi làm trigger sau (chẳng hạn chọn tướng blood mage):
-event: unit - a unit enters <Blood Mage region>
-condition: triggering unit equal to <Cừu>
-Action: unit - kill triggering unit
unit - create 1 Blood Mage for owner of triggering unit at owner of triggering unit start location
camera - pan camera for owner of triggering unit to owner of triggering unit start location
Cách trên tạo hero và chuyển camera về vị trí start location của player, do đó bạn nên đặt start location(unit) ở vị trí mình muốn..hoặc cũng có thể tạo và xoay camera về 1 region nào đó tùy bạn..
----------------------------------------------------------------
- Coppy spell (By game_war48:
- HƯỚNG DẪN COPY SPELL
By game_war48 (gamevn)
Bước đầu tiên của tất cả các bước (cho cả GUI và JASS) : Mở World Editor, trên thanh công cụ chọn File > Preferences... > tích vào ô "Automatically create unknow variables while pasting trigger data" (nếu đã có dấu tích ở ô này thì kô cần thực hiện bước này nữa).
COPY SPELL GUI
Bước 1 : Copy tất cả các "custom object data" trong Object Editor (F6) của map có spell cần copy đó sang map của bạn (gồm Abilities, Dummys, Buffs,... nếu spell cần những thứ đó mà map của bạn kô có).
Bước 2 : Copy (các) trigger(s) trong phần Trigger Editor (F4) của map đó sang map của bạn (thường thì nó nằm trong folder Spell, nói chung là cần kiểm tra kỹ trong
phần Trigger Editor (F4) để tránh copy phải những trigger kô cần đến).
Bước 3 : Sau khi copy tất cả xong, bạn sẽ phải sửa một số dòng trong đó (thường thì khi copy spell GUI thì một số dữ liệu sẽ bị thay đổi, để HẠN CHẾ lỗi này thì bạn nên copy tất cả các "custom object data" trước rồi mới copy trigger).
Bước 4 : Sau khi sửa tất cả các lỗi, bạn nên Disable và Enable Trigger bị lỗi.
Bước 5 : Test Spell...
Chú ý : Nếu bạn vẫn gặp lỗi sau khi thực hiện các bước trên thì tốt nhất là nên liên hệ với "tác giả" của spell đó.
Tôi sẽ lấy một ví dụ để "dễ hiểu" hơn (như kiểu đọc lý thuyết xong rồi thực hành ấy mà).
Bước đầu tiên, download map ở link trên kia, sau đó mở nó ra.
(Cái bước check vào ô "Automatically create unknow variables while pasting trigger data" tôi kô phải hướng dẫn nữa nhé).
Tiếp theo, mở Object Editor (F6) > Units. Trong đó ta thấy có 2 Custom Units, unit(hero) "FoK" chỉ là dùng để test spell, kô cần copy, còn unit Dummy thì bắt buộc phải copy vì nó cần dùng cho spell (cách copy cơ bản là bấm chuột phải vào Unit rồi chọn Copy Unit, khi nào cần "paste" thì bấm chuột phải và chọn Paste Unit).
Xong xuôi phần Units rồi thì vào Abilties, copy "custom ability" Fan of Knives vào map của bạn. Spell này chỉ có thế thôi, tới phần tiếp theo.
Mở Trigger Editor (F4) (tất nhiên là ở trong map có spell cần copy rồi), copy "category/folder" Spell vào map của bạn (cách copy khỏi cần hướng dẫn nữa, nhỉ ?).
Về cái add spell vào map thì đã có video của gavin rồi, các bạn vào http://www.phutu.org/t22244-topic để xem nhen (vote cho nó luôn)
-----------------------------------------------------------------------------
- Được tiền khi kill unit của phlayer khác (đơn giản nhưng với newbie thì ...):
- Làm sao kill unit của player khác thì được tiền
Trong đó player = player mà khi unit bị kill sẽ thưởng tiền cho player kill unit đó
-----------------------------------------------------------------------------------
- Chỉnh hướng của mấy cái nhà trong map:
- Chỉnh hướng của mấy cái nhà trong map như thế nào
--------------------------------------------------------------------------
- Rớt đồ khi die:
- Rớt đồ khi die
- Code:
Events
Unit - A unit Dies
Conditions
Actions
Set Point = (Position of (Triggering unit))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of (Triggering unit)) Equal to Paladin
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Random integer number between 1 and 100) Less than or equal to 50
Then - Actions
Item - Create Tome of Experience at Point
Else - Actions
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of (Triggering unit)) Equal to Mountain King
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Random integer number between 1 and 100) Less than or equal to 40
Then - Actions
Item - Create Mask of Death at Point
Else - Actions
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of (Triggering unit)) Equal to Footman
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Random integer number between 1 and 100) Less than or equal to 50
Then - Actions
Item - Create Skull of Gul'dan at Point
Else - Actions
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of (Triggering unit)) Equal to Knight
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Random integer number between 1 and 100) Less than or equal to 50
Then - Actions
Item - Create Partial Key of the Three Moons at Point
Else - Actions
Else - Actions
-----------------------------------------------------------------------
- Đồng minh không đánh được (câu hỏi của gavin):
- Code:
Untitled Trigger 001
Events
Unit - A unit Is attacked
Conditions
((Triggering unit) belongs to an ally of (Owner of (Attacking unit))) Equal to True
Actions
Unit - Order (Attacking unit) to Stop
Sẽ tiếp tục cập nhật những câu hỏi từ xưa mà chưa có tút
Last edited by K3_Posh on 04.09.12 18:37; edited 8 times in total (Reason for editing : http://www.phutu.org)