Cho hỏi set real x như thế này có bị leak không ??? set real x=GetLocationX (GetSpellTargetLoc()) đang làm tập làm dùng real thay vì location .. không biết làm thế này có bị leak không .. vì làm Spell không có Unit Target mà có target point nên đang phân vân.. không biết còn cách khác không nhỉ.. nếu còn có thể chỉ luôn cho mình đi
Tks anh Tom ^^... Còn thêm cái vụ này nữa.. cũng không rõ cách làm thế nào vì trước giờ làm toàn với point chứ chưa làm với tọa độ. Nên anh Tom hướng dẫn giúp e luôn. Đó là vấn đề PolarProjectionBJ trong JASS.. thông thường thì thao tác với point quen rồi nhưng qua tọa độ nếu không dùng point mà dùng tọa độ x,y thì e chưa rõ cách làm thế nào. Ví dụ khoảng cách di chuyển vật xa dần thừ 1 điểm tọa độ x,y. Và khoảng cách không thay đổi nhưng vật xoay vòng theo 1 vòng tròn ..(lệnh theo gốc bao nhiu ý). Raivor có đưa ví dụ nhưng chưa hiểu cụ thể lắm. A hoặc Raivor hoặc ai rành vụ này hướng dẫn lại cho e với.
Mã: function PolarProjectionBJ takes location source, real dist, real angle returns location local real x = GetLocationX(source) + dist * Cos(angle * bj_DEGTORAD) local real y = GetLocationY(source) + dist * Sin(angle * bj_DEGTORAD) return Location(x, y) endfunction (polar projection point) ppPoint ( x', y' ) tính từ gốc source (x, y) với khoảng cách dist theo hướng angle PolarProjectionBJ lấy x,y của source, tính ra x', y' rồi trả về point (vì vậy nên tôi mới bảo nó chậm ) x' = x + dist * Cos( angle * bj_DEGTORAD ) // Cos này dùng đơn vị Radian nên angle phải nhân với bj_DEGTORAD y' = y + dist * Sin( angle * bj_DEGTORAD ) // Sin này dùng đơn vị Radian nên angle phải nhân với bj_DEGTORAD hoặc: angle = angle * bj_DEGTORAD // đổi angle ra Radian x' = x + dist * Cos( angle ) // do angle đã được đổi ra Radian nên không cần * bj_DEGTORAD nữa y' = y + dist * Sin( angle ) còn việc xoay vòng tròn thì: dist: bán kính vòng tròn, không thay đổi angle: tăng dần nếu xoay ngược chiều kim đồng hồ, giảm thì xoay theo chiều kim đồng hồ việc tăng/giảm bao nhiêu thì bạn phải tự tính
Giờ em muốn làm Knock back với Jass... nhưng mà không biết dùng lệnh này để khi búa Storm Hammer vừa trúng Unit là sẽ bắt đầu KnockBack.. làm mãi mà nó cứ chạy trước khi búa chạm không à +_+.. anh biết không chỉ cái lệnh cho em bắt với. ___ Tiện thể cho e hỏi luôn.. khi đã có tọa độ x y , có trường hợp muốn kêu Location đó thì mình dùng Location(x,y) được không . có bị leak không ?
Bạn nên đọc cái này trước khi hỏi nó có leak hay ko :) ==>> Memory Leak and Custom Script không biết dùng lệnh nào để khi búa Storm Hammer vừa trúng Unit là sẽ bắt đầu KnockBack? Khi bắt đầu effect Storm Hammer thì : TriggerRegistUnitEvent (trig, GetSpellTargetUnit(), EVENT_UNIT_DAMAGED) add Actions: Kiểm tra khi unit bị dam mà dính buff Stun hay gì gì đó do Storm Hammer gây ra thì bắt đầu knockback Nhớ call DestroyTrigger (GetTriggeringTrigger()) => tránh nhầm với các thứ khác Đại loại là như thế... Nhưng nếu mình ko nhầm là topic GUI to Jass vậy GUI của bạn đâu . Hình như post cái này vào Topic hỏi đáp thì mới đúng
anh TOM cho em hỏi.. mình dùng thẻ Scope TEM ở 1 trigger ... sau đó khai báo private function A vậy bây giờ mình muốn qua 1 trigger khác thì mình gọi cái function A bên Scope TEM như thế nào anh?
private tức là riêng tư ko lấy được từ bên ngoài. Muốn lấy được phải khai báo public function => cách lấy theo như ví dụ bạn sẽ là call TEM_A() Còn nếu ko có bổ từ truy cập ở đằng trước thì lấy như function bt, tên thế nào gọi thế Hình như post cái này vào Topic hỏi đáp thì mới đúng Coi chừng Tom cho ăn thẻ phạt =,=! Mình thì nhớ mấy vấn đề về vjass như bạn hỏi hoàn toàn có trong jassmanual của JNG ....
PHP: private function Stop takes nothing returns boolean local unit caster = GetSpellAbilityUnit() local integer array Buff local integer tick set Buff[0] = 'BSTN' set Buff[1] = 'BPSE' set Buff[2] = 'Bena' set Buff[3] = 'Bens' set Buff[4] = 'Beng' set Buff[5] = 'BEer' set Buff[6] = 'BUsl' set Buff[7] = 'BUsp' set Buff[8] = 'BUst' set Buff[9] = 'BNsi' set Buff[10] = 'BUsp' set Buff[11] = 'BOhx' set Buff[12] = 'BUim' set Buff[13] = 'Bcrs' set Buff[14] = 'BNso' set tick = 0 loop exitwhen tick >14 if UnitHasBuffBJ(caster,Buff[tick]) ==true then return false else return true endif set tick=tick+1 endloop return false endfunction PHP: private function action .... if Stop()==true then // hành động endif endfunction Cho mình hỏi sao đoạn script này nó không xảy ra. Chả là mình có ý định check buff. nếu có buff thì action không xảy ra.. do nhìu buff nên gom nó vào 1 function như trên.. nhưng sau khi gom vào thì không có tác dụng nữa.. có ai giải thích cách làm dùm mình với.
Cái phần kiểm tra xem có buff hay không đấy, ý bạn là muốn xem Hero có những buff đó thì ko thực hiện Action, làm như trên thì chỉ xét được cái buff đầu tiên trong mảng rùi trả về true or false...mấy cái sau thì không được xét rồi... Chỉ cần bỏ cái else return true đi, rùi cuối hàm return true là ok
Xem kĩ lại thấy hài quá: Unit has buff => return false có ai có thể hướng dẫn cho mình về struct và sử dụng nó để làm system đc ko? ---------- Post added at 09:43 ---------- Previous post was at 09:38 ---------- mvcthinh: Bỏ hai dòng là return false và else ở loop là ok