Mời vào đây cho đông vui: http://www.vn-zoom.com/f234/mugen-mien-dat-hua-danh-cho-cac-cao-thu-game-doi-khang-1263245.html
[video=youtube;1Z7B0e2OpEM]http://www.youtube.com/watch?v=1Z7B0e2OpEM[/video] làm cái nữa chơi :d làm lại cái này , bữa quay không có tiếng :d [video=youtube;MQNlwkaGbU4]http://www.youtube.com/watch?v=MQNlwkaGbU4&feature=youtu.be[/video]
Thần thánh trở lại: [video=youtube;Y-08NjtNlOw]http://www.youtube.com/watch?v=Y-08NjtNlOw&feature=youtu.be[/video] Thêm quả nữa nè: http://clip.vn/watch/Mugen-Online-Battle-_-SSJ_Goku-Z2-vs-Goku-Z2,O4lu [video]http://clip.vn/watch/Mugen-Online-Battle-_-SSJ_Goku-Z2-vs-Goku-Z2,O4lu[/video]
Mới ra lò con này nè, ai post thử clip hạ nó xem nào(link dow ở phần mô tả) http://www.youtube.com/watch?v=b9DIk6-sLSs
Thanks bạn nhé, đợi mãi con này. Mà như power charge bị lỗi gì rồi, gồng xong mà vẫn để lại explode. - - - Updated - - - Có viết AI cho mấy nhân vật CvS, mọi người tải về xem thử: - DivineWolf's Jill, Human's Seth and Jesus's Bluestreak: http://mugenguild.com/forum/topics/ai-patch-divinewolfs-jill-humans-seth-and-jesuss-bluestreak-jadeeye-150822.0.html - DivineWolf's Skullomania and Mr.Karate's Kairi 1.4: http://mugenguild.com/forum/topics/ai-patch-divinewolfs-skullomania-and-mr-karates-kairi-1-4-jadeeye-149021.0.html - Kohaku's Melty Blood: http://mugenguild.com/forum/topics/ai-patch-kohakus-melty-blood-chars-jadeeye-149765.0.html - - - Updated - - - Có viết AI cho mấy nhân vật CvS, mọi người tải về xem thử: - DivineWolf's Jill, Human's Seth and Jesus's Bluestreak: http://mugenguild.com/forum/topics/ai-patch-divinewolfs-jill-humans-seth-and-jesuss-bluestreak-jadeeye-150822.0.html - DivineWolf's Skullomania and Mr.Karate's Kairi 1.4: http://mugenguild.com/forum/topics/ai-patch-divinewolfs-skullomania-and-mr-karates-kairi-1-4-jadeeye-149021.0.html - Kohaku's Melty Blood: http://mugenguild.com/forum/topics/ai-patch-kohakus-melty-blood-chars-jadeeye-149765.0.html
Tôi không có ý định lập trình cho mấy đứa này đánh chiêu hoàn toàn chuẩn xác vì như vậy khi chơi sẽ vô cùng ức chế, nên đôi khi tụi nó cũng hơi vụng tí. Về Demitri thì tôi thấy bạn cần xem lại chiêu Demon Cradle (đập cánh), vốn dĩ nó chỉ thực hiện 1 lần mà sao ở đây mình thấy stack tới 2-3 cú xuống máu cực nhanh @@. Và bạn nên cho nó tận dụng lợi thế phi lướt và Hyper "Cẩu xực" của nó để tấn công thì tốt hơn là chỉ đứng chưởng.
Hi, mình chỉ nói cái nhìn bề ngoài khi quan sát các char của bạn đánh thôi. Có thể tại xu hướng code khác nhau nên nảy ý nói vậy. Khi code thì mình thường chọn phương án khó bị counter cho an toàn. Ví dụ như Dẹmitri thì chiêu đứng yên bắn cột lửa vì nó có reversaldef. Còn bạn, mình thấy mấy char tấn công liên tục cũng được, có thể push được đối phương nhưng chọn chiêu để chain còn có sơ hở, dẫn đến khi kết thúc chain thì bị punish. Bạn thử để Kairi đấu với Silber hoặc Duolon đã patch AI thì sẽ thấy. Về Demitri, theo mình thấy thì Demon Cradle chéo 2 hit sau đó chain sang Demon Cradle dọc mấy hít còn lại. Cái này mình giữ của tác giả, ko sửa gì hết. Còn dùng hyper để tấn công thì ko ổn đâu vì nếu đối phương detect được sẽ né rất dễ, phí mất 1 gauge. Riêng về khoản phi lướt thì bạn nói trúng chỗ yếu của mình rồi đó. Vẫn cố thử làm nhưng detect tọa độ của đối phương cứ loạn cả lên nên đến phút chót xóa luôn
Công nhận combo còn bị lỗi nhất là Kairi, sẽ fix lại trong tương lai. Nếu chơi theo phong cách phòng thủ, đứng 1 chỗ gồng power, đối thủ đánh thì xài alpha counter hoặc các chiêu phòng thủ khác thì an toàn hơn nhưng đánh như vậy thì hơi chán nên tôi cho tụi nó tấn công dồn dập tí. Chiêu Demon Cradle của Demitri thì mình ko biết là có thể stack cái chéo với cái dọc, bấm mãi mà ko ra. Chiêu lướt thì bạn cho nó xuất tấn công đối thủ khi p2bodydist x <=35 và nằm trong các statedef 110, 111, 112 (trạng thái lướt) thử xem.
Ah, nếu là state 110,111,112 thì mình có xài. Demon cradle chéo chính là phải thực hiện trong lúc dash. Cái này con gốc cũng có (Demon Cradle Dashing Version), bữa trước search thử thì thấy ở đâyhttp://wiki.mizuumi.net/w/Vampire_Savior/Demitri Còn vụ chain sang dọc, mình cũng ko làm được. Thử xem trong code đúng là chain bằng tay ko được, bạn thử bỏ dòng này đi xem có được ko [State -1] type = ChangeState value = 1110 ;SENTI triggerall = var(58) != 1 triggerall = command = "dck" triggerall = var(13) > 0 trigger1 = var(14) = 1 trigger2 = (stateno = 1200|stateno = 1210) && movecontact trigger3 = stateno = 5202 ... [State -1] type = ChangeState value = 1100 ;SENTI triggerall = var(58) != 1 triggerall = command = "dcj" triggerall = var(13) > 0 trigger1 = var(14) = 1 trigger2 = (stateno = 1200|stateno = 1210) && movecontact trigger3 = stateno = 5202 Var(13) tác giả chú thích là dùng cho hệ thống MAX nhưng hệ thống này chưa có nên nó lúc nào cũng bằng 0. Sau đó có thể thực hiện ~F,D,DF,x rồi ~F,D,DF,x liên tiếp để chain từ chéo sang dọc. Cái này tác giả set thế chứ mình chỉ làm được mỗi 1 lần, lần 2 nhấn ko kịp.
Mừng vì anh Tity huyền thoại vẫn ở đây ------------------------------------------------------------------- @bokidoll: Bạn cho tôi hỏi mấy vấn đề này nhé: - Về vấn đề AI Activation hồi trước tôi cũng có tham khảo Winane nhưng coi code chẳng hiểu gì mấy. Có 1 cách hiệu quả là chuyển mugenversion của các nhân vật sang 1.0 và sử dụng AILevel thì sẽ ko bị mất AI Activation, nhưng có char thì làm đc có char thì ko đc, convert nhân vật đó sang Mugen 1.0 thì cũng cực quá. Ko biết có cách nào đơn giản hơn ko? - Về các chuỗi combo thì ko biết làm sao cho các nhân vật nó hiểu là phải thực hiện chiêu B sau chiêu A (ko phải là thực hiện trong lúc mà chiêu A đang active). Lấy ví dụ: Thực hiện state 200 => state 0 (trạng thái bình thường) => state 400. Như vậy có nghĩa là nó hiểu rằng phải thực hiện trạng thái 400 sau trạng thái gốc là 200 (ko phải là trong lúc trạng thái 200 đang thực hiện). - Trong mấy trạng thái nhảy như state 40,45,50,....., mình phải thêm code gì để nó lập tức nhảy lên combo sau khi hất đối thủ lên trời. Làm cái này mà có con hiểu có con ko hiểu.
- AI activation mình chỉ xài và thấy hiệu quả là được chứ mình cũng ko hiểu và cũng thấy là ko cần hiểu. Thứ nhất là bây giờ tìm bài viết giải thích vì sao làm vậy thì ko thể. Thứ hai là code của Winane đã gộp các phương thức lại với nhau nên đọc khó hiểu. Bạn có thể tạm chấp nhận là thế này. Có 4 phương pháp activate AI : 1.Human Impossible commands 2.Ishometeam method 3.Helper method 4.XOR method 1.Phương thức Human Impossible là phương thức đơn giản nhất và an toàn nhất (no false positive). Phương thức này ko có trong code Winane. Bạn chỉ việc tạo ra một loạt các command mà người chơi ko thể nào làm được, ví dụ Mã: [Command] name = "AI0" command = a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a time = 0 Nhấn 19 lần "a" trong 0 tick là ko thể. Nhưng máy thì làm được. Do đó bạn để trigger bắt sự kiện này: Mã: [State -3, AI] type = VarSet Triggerall = (var(58) <= 0)&&!IsHelper Trigger1 = Command="AI0" ... var(58) = 1 Tức là do bắt được là máy điều khiển nên bật biến AI. Thường mọi người dùng 30~50 dòng command time = 0 như thế là được. 2. Phương thức Ishometeam cũng khá đơn giản. Bạn chỉ cần trigger sau ở sau statedef -3: Mã: [State -3, SetAI] type = VarSet triggerall = Alive && !IsHelper triggerall = IsHomeTeam trigger1 = TeamSide = 2 trigger2 = MatchNo > 1 var(58) = 1 Sau đây là chú thích về IsHomeTeam trog mugen doc ------------------------------------------------------------ IsHomeTeam ------------------------------------------------------------ Returns 1 if the player's team is considered the "home team". In arcade modes, the computer is always considered the home team. In versus modes, P1's side (left) is the home team. 3 Helper. Phương thức này mình cũng ko nắm rõ, nhưng theo mình đoán (đoán thôi nhé) thì như thế này. Trong state của helper có ParentVarSet để set biến 58 (biến AI). Biến này đầu tiên được bật lên cái đã. Sau đó, nếu detect thấy cả helper lẫn parent đều có cùng command thì tức là người đang điều khiển, lại tắt nó đi (set bằng -1) Mã: [State 9742, ButtonTurnOffAI] type = ParentVarSet triggerall = var(7) triggerall = !(var(2) || var(8)) trigger1 = command = "a" trigger1 = Parent,command = "a" trigger2 = command = "b" trigger2 = Parent,command = "b" trigger3 = command = "c" trigger3 = Parent,command = "c" trigger4 = command = "x" trigger4 = Parent,command = "x" trigger5 = command = "y" trigger5 = Parent,command = "y" trigger6 = command = "z" trigger6 = Parent,command = "z" trigger7 = command = "start" trigger7 = Parent,command = "start" var(58) = -1 4.XOR. Phương thức này hình như cũng giống pp Human impossible ở chỗ lợi dụng việc máy ra command ko giống người. Mã: [State -3, XOR] type = VarSet triggerall = var(58)!=1 && !IsHelper triggerall = var(57) = GameTime-1 triggerall = NumHelper(9743) triggerall = !(Helper(9743),var(1)) trigger1 = command = "a" ^^ command = "a2" trigger2 = command = "b" ^^ command = "b2" trigger3 = command = "c" ^^ command = "c2" trigger4 = command = "x" ^^ command = "x2" trigger5 = command = "y" ^^ command = "y2" trigger6 = command = "z" ^^ command = "z2" trigger7 = command = "start" ^^ command = "start2" trigger8 = command = "holda" ^^ command = "holda2" trigger9 = command = "holdb" ^^ command = "holdb2" trigger10 = command = "holdc" ^^ command = "holdc2" trigger11 = command = "holdx" ^^ command = "holdx2" trigger12 = command = "holdy" ^^ command = "holdy2" trigger13 = command = "holdz" ^^ command = "holdz2" trigger14 = command = "holdstart" ^^ command = "holdstart2" trigger15 = command = "holdfwd" ^^ command = "holdfwd2" trigger16 = command = "holdback" ^^ command = "holdback2" trigger17 = command = "holdup" ^^ command = "holdup2" trigger18 = command = "holddown" ^^ command = "holddown2" trigger19 = command = "recovery" ^^ command = "recovery2" ;Add more as desired. (See my notes in the CMD.) var(58) = 1 command "a" theo máy là khác command "a2" nên nó chỉ ra 1 trong 2 cái, mặc dù khai báo của 2 cái giống nhau: Mã: [Command] name = "a" command = a time = 1 [Command] name = "a2" command = a time = 1 Cho nên khi detect được hiện tượng trên (ra "a" mà lại ko phải "a2") thì tức là máy điều khiển --> set var(58) = 1 Note: trong 4 pp trên thì chỉ có 2 pp đầu là an toàn(ko false positive) Cái này thì dùng prevstateno = 200 , hoặc chắc chắn hơn nữa thì đặt thêm biến và set điều kiện thật chặt chẽ: Ví dụ : Mã: [State -1, punch] type = changestate value = 200 triggerall = var(58) = 1 && alive && roundstate = 2 triggerall = ctrl trigger1 = enemynear, movetype = I [COLOR="#FF0000"][State -1, varset] type = VarSet triggerall = var(58) = 1 && alive && roundstate = 2 trigger1 = stateno = 200 trigger1 = moveguarded trigger1 = enemynear, statetype != C var(57) = 1[/COLOR] [State -1, crouch punch] type = changestate value = 400 triggerall = var(58) = 1 && alive && roundstate = 2 triggerall = ctrl trigger1 = var(57) = 1 Có 1 cách nữa, tà đạo 1 tí là dùng animtime Mã: [State -1, punch] type = changestate value = 400 triggerall = var(58) = 1 && alive && roundstate = 2 ;; [COLOR="#FF0000"]bỏ dòng này[/COLOR] triggerall = ctrl trigger1 = stateno = 200 trigger1 = moveguarded [COLOR="#FF0000"]trigger1 = animtime = 0[/COLOR] Cái này chắc bạn xem Demitri cũng nắm được rồi. Khi hất đối thủ lên trời thì mìh đang ở state nhất định. Set cho nó jump,thế là xong. Cũng có trường hợp ko phải mìh đang ở state mà đối phương đang ở state nhất định(ví dụ 5050).Quan trọng là các trigger đánh sau đó phải detect đúng tọa độ. Mã: [State -1, air high] ;test type = ChangeState triggerall = 1 triggerall = var(58) = 1 && alive && roundstate = 2 triggerall = statetype != A triggerall = ctrl trigger1 = stateno = 21503 trigger1 = movehit trigger1 = time = 16 value = 888 ctrl = 0
Cám ơn bạn nhiều, rất bổ ích. Tôi đã bổ sung thêm command trong 1 Command Name (Human Impossible commands) và nhận thấy là càng nhiều lệnh nó càng mau hiểu hơn. Dù cải thiện đc nhưng đôi khi máy vẫn phải "ngu ngu" 1 vài giây nó mới chịu đánh