´«ÆæGOMÒýÇæ´Ìɱ´¥·¢½Å±¾´úÂëÍêÕûʵÏÖ·½°¸

À´Ô´£º ×÷Õߣº µã»÷£º
Ò»¡¢GOMÒýÇæ´Ìɱ´¥·¢ºËÐÄÂß¼­

´«ÆæÏµÁÐÖдÌɱ¼¼ÄÜ×÷Ϊ¾­µä½üÕ½ºËÐļ¼ÄÜ£¬ÔÚGOMÒýÇæÖÐÐèͨ¹ý½Å±¾¾«×¼¿ØÖÆ´¥·¢Ìõ¼þ¡¢É˺¦¼ÆËã¼°ÊÓ¾õ·´À¡¡£ºËÐÄÂß¼­Î§ÈƽÇÉ«¹¥»÷״̬Åж¨¡¢Ä¿±ê¾àÀë¼ì²â¡¢¼¼ÄÜÀäÈ´ÑéÖ¤Èý´óά¶È£¬È·±£´¥·¢Ê±»ú·ûºÏÓÎÏ·É趨£¬Í¬Ê±¼æ¹Ë²»Í¬Ö°ÒµÊ¹Ó󡾰ϵļæÈÝÐÔ¡£

´¥·¢Ç°ÌáÐèÂú×㣺½ÇÉ«ÒÑѧϰ´Ìɱ¼¼ÄÜ¡¢¼¼ÄÜ´¦ÓÚ·ÇÀäȴ״̬¡¢¹¥»÷Ä¿±ê´¦ÓÚ½üÕ½¹¥»÷·¶Î§ÄÚÇÒδ´¦ÓÚÎ޵лòÃâÒß״̬¡£½Å±¾ÐèÓÅÏÈ»ñÈ¡½ÇÉ«ÓëÄ¿±êµÄ×ø±êÐÅÏ¢£¬Í¨¹ý¾àÀ빫ʽ¼ÆËãÁ½Õß¼ä¾à£¬Åж¨ÊÇ·ñ·ûºÏ´Ìɱ¼¼ÄÜ´¥·¢µÄ¾àÀëãÐÖµ¡£

¶þ¡¢´Ìɱ´¥·¢½Å±¾ºËÐÄ´úÂëʵÏÖ

ÒÔÏÂΪGOMÒýÇæÍ¨ÓÃÐÍ´Ìɱ´¥·¢ÍêÕû½Å±¾´úÂ룬º­¸Ç¼¼ÄÜ´¥·¢Åж¨¡¢É˺¦¼ÆËã¡¢ÀäÈ´¿ØÖƼ°Ð§¹ûչʾ£¬ÊÊÅä¶àÊýGOMÒýÇæ°æ±¾£¬¿É¸ù¾Ý·þÎñÆ÷Íæ·¨ÐèÇó΢µ÷²ÎÊý£º

-- ´Ìɱ¼¼ÄÜ´¥·¢ºËÐĽű¾
function AssassinTrigger(attacker, target)
-- »ñÈ¡½ÇÉ«¼¼ÄÜѧϰ״̬
local hasSkill = GetPlayerSkillLevel(attacker, "´Ìɱ½£Êõ")
if hasSkill < 1 then
return false -- δѧϰ¼¼ÄÜ£¬²»´¥·¢
end
-- »ñÈ¡¼¼ÄÜÀäȴ״̬
local cdState = GetSkillCD(attacker, "´Ìɱ½£Êõ")
if cdState > 0 then
return false -- ¼¼ÄÜÀäÈ´ÖУ¬²»´¥·¢
end
-- ¼ÆËã½ÇÉ«ÓëÄ¿±ê¾àÀë
local attX, attY = GetPlayerXY(attacker)
local tarX, tarY = GetPlayerXY(target)
local distance = math.abs(attX - tarX) + math.abs(attY - tarY)
-- Åж¨¾àÀëÊÇ·ñ·ûºÏ´¥·¢Ìõ¼þ£¨GOMĬÈÏ´Ìɱ´¥·¢¾àÀëΪ1-2¸ñ£©
if distance < 1 or distance > 2 then
return false -- ¾àÀë²»·û£¬²»´¥·¢
end
-- Åж¨Ä¿±ê״̬£¨ÅųýÎÞµÐ/ÃâÒßÄ¿±ê£©
local tarState = GetPlayerState(target, "NOHURT")
if tarState == 1 then
return false -- Ä¿±ê´¦ÓÚÎÞµÐ״̬£¬²»´¥·¢
end
-- ¼ÆËã´Ìɱ¼¼ÄÜÉ˺¦£¨»ù´¡É˺¦+¼¼Äܵȼ¶¼Ó³É£©
local baseDmg = GetPlayerAttack(attacker)
local skillDmg = hasSkill * 50 -- ÿ¼¶¼¼ÄܶîÍâ¼Ó³É50µãÉ˺¦
local totalDmg = baseDmg + skillDmg
-- ´¥·¢É˺¦½áËã
SetPlayerDamage(target, totalDmg)
-- ÉèÖü¼ÄÜÀäÈ´£¨µ¥Î»£ºÃ룬¿É¸ù¾ÝÐèÇóµ÷Õû£©
SetSkillCD(attacker, "´Ìɱ½£Êõ", 3)
-- ´¥·¢¼¼ÄÜÊÓ¾õЧ¹û£¨GOMÒýÇæÄÚÖÃЧ¹ûID£©
PlayEffect(attacker, 1024, tarX, tarY)
-- ·¢Ëͼ¼ÄÜ´¥·¢Ìáʾ
SendPlayerMsg(attacker, 255, 0, 0, "´Ìɱ½£Êõ´¥·¢£¬¶ÔÄ¿±êÔì³É"..totalDmg.."µãÉ˺¦£¡")
return true
end

-- °ó¶¨¹¥»÷ʼþ´¥·¢
BindAttackEvent("AssassinTrigger")

´úÂë˵Ã÷£º½Å±¾Í¨¹ý×Ô¶¨Ò庯ÊýAssassinTriggerʵÏÖºËÐÄÂß¼­£¬Í¨¹ýGOMÒýÇæÄÚÖýӿڻñÈ¡½ÇÉ«¼¼ÄÜ״̬¡¢×ø±êÐÅÏ¢¼°Ä¿±ê״̬£¬Íê³É¶àά¶ÈÅж¨ºóÖ´ÐÐÉ˺¦½áËãÓëЧ¹û´¥·¢¡£×îºóͨ¹ýBindAttackEvent½Ó¿Ú½«º¯ÊýÓë½ÇÉ«¹¥»÷ʼþ°ó¶¨£¬ÊµÏÖ¹¥»÷ʱ×Ô¶¯¼ì²â´¥·¢¡£

Èý¡¢½Å±¾¹Ø¼ü²ÎÊýµ÷ÕûÖ¸ÄÏ

1. ¼¼ÄÜÀäȴʱ¼ä£º½Å±¾ÖÐSetSkillCD½Ó¿ÚµÚÈý¸ö²ÎÊýΪÀäȴʱ¼ä£¨µ¥Î»£ºÃ룩£¬Ä¬ÈÏÉèÖÃΪ3Ã룬¿É¸ù¾Ý·þÎñÆ÷ƽºâÐèÇóµ÷Õû£¬ÀýÈçսʿְҵ¿ÉËõ¶ÌÖÁ2Ã룬Ôöǿְҵ¾ºÕùÁ¦¡£

2. ¼¼ÄÜÉ˺¦¼Ó³É£º´úÂëÖÐskillDmg±äÁ¿Îª¼¼Äܵȼ¶¼Ó³É£¬Ä¬ÈÏÿ¼¶¼Ó³É50µãÉ˺¦£¬¿É¸ù¾Ý¼¼Äܵȼ¶Ìݶȵ÷Õû£¬Èç1¼¶¼Ó³É30µã¡¢2¼¶¼Ó³É60µã¡¢3¼¶¼Ó³É100µã£¬´òÔì¸üºÏÀíµÄ¼¼Äܳɳ¤ÇúÏß¡£

3. ´¥·¢¾àÀëãÐÖµ£ºÍ¨¹ýdistance±äÁ¿Åж¨´¥·¢¾àÀ룬ĬÈÏ1-2¸ñ£¬ÈôÐèÀ©´ó»òËõС´¥·¢·¶Î§£¬¿Éµ÷Õûif distance < 1 or distance > 2 thenÖеÄÊýÖµ£¬ÀýÈ罫2¸ÄΪ3¿ÉʵÏÖ3¸ñÄÚ´¥·¢¡£

4. ÊÓ¾õЧ¹ûID£ºPlayEffect½Ó¿ÚµÚ¶þ¸ö²ÎÊýΪЧ¹ûID£¬Ä¬ÈÏ1024ΪGOMÒýÇæÄÚÖôÌɱЧ¹û£¬¿ÉÌæ»»ÎªÆäËûЧ¹ûID£¬ÊµÏÖ²»Í¬µÄ¼¼ÄÜÊÓ¾õչʾ£¬¾ßÌåЧ¹ûID¿É²Î¿¼GOMÒýÇæÐ§¹ûÁбíÎĵµ¡£

ËÄ¡¢½Å±¾²¿ÊðÓëµ÷ÊÔ²½Öè

1. ½Å±¾·ÅÖ÷¾¶£º½«ÉÏÊö´úÂë¸´ÖÆµ½GOMÒýÇæ·þÎñ¶ËScriptsÎļþ¼ÐϵÄSkill.luaÎļþÖУ¬Èô¸ÃÎļþ²»´æÔÚ£¬¿Éн¨Skill.luaÎļþ²¢Õ³Ìù´úÂë¡£

2. ½Ó¿ÚȨÏÞÑéÖ¤£ºÈ·±£·þÎñ¶Ë¿ªÆôÁ˽ű¾½Ó¿ÚȨÏÞ£¬µÇ¼GOMÒýÇæ¿ØÖÆÆ÷£¬½øÈ듽ű¾ÅäÖÃ”Ò³Ãæ£¬¼ì²éGetPlayerSkillLevel¡¢SetSkillCDµÈ½Ó¿ÚÊÇ·ñ´¦ÓÚÆôÓÃ״̬£¬Î´ÆôÓÃÔò¹´Ñ¡ÆôÓò¢±£´æÅäÖá£

3. ²âÊÔµ÷ÊÔÁ÷³Ì£ºÆô¶¯·þÎñ¶Ëºó£¬´´½¨²âÊÔÕ˺ţ¬Ñ§Ï°´Ìɱ¼¼ÄÜ£¬¶Ô²»Í¬×´Ì¬µÄÄ¿±ê½øÐй¥»÷²âÊÔ¡£Öصã²âÊÔÒÔϳ¡¾°£ºÎ´Ñ§Ï°¼¼ÄÜʱÊÇ·ñ´¥·¢¡¢Àäȴ״̬ÏÂÊÇ·ñ´¥·¢¡¢²»Í¬¾àÀëÏ´¥·¢Çé¿ö¡¢Ä¿±êÎÞµÐʱÊÇ·ñ´¥·¢£¬È·±£¸÷³¡¾°·ûºÏÔ¤ÆÚ¡£

4. Òì³£ÎÊÌâ´¦Àí£ºÈô³öÏֽű¾²»´¥·¢ÎÊÌ⣬Ê×Ïȼì²é¼¼ÄÜÃû³ÆÊÇ·ñÓë·þÎñÆ÷ÄÚ¼¼ÄÜÃû³ÆÒ»Ö£¨Çø·Ö´óСд£©£¬Æä´ÎÑéÖ¤½Ó¿Ú²ÎÊýÊÇ·ñÕýÈ·£¬×îºó²é¿´·þÎñ¶ËÈÕÖ¾£¬¶¨Î»±¨´íÐÅÏ¢²¢µ÷Õû´úÂë¡£Èô³öÏÖÉ˺¦Òì³££¬Ðè¼ì²é»ù´¡É˺¦»ñÈ¡½Ó¿ÚGetPlayerAttackµÄ·µ»ØÖµÊÇ·ñÕýÈ·£¬È·±£É˺¦¼ÆËãÂß¼­ÎÞÎó¡£

Îå¡¢¶à³¡¾°ÊÊÅäÓÅ»¯¼¼ÇÉ

1. ְҵרÊôÊÊÅ䣺ÈôÐèΪ²»Í¬Ö°Òµ¶¨ÖÆ´Ìɱ´¥·¢¹æÔò£¬¿ÉÔÚº¯Êý¿ªÍ·Ôö¼ÓÖ°ÒµÅж¨Âß¼­£¬ÀýÈç½öÔÊÐíսʿְҵ´¥·¢£¬¿ÉÌí¼Ólocal job = GetPlayerJob(attacker)£¬if job ~= 1 then return false end£¨1ΪսʿְҵID£¬¾ßÌåIDÐè²Î¿¼·þÎñÆ÷Ö°ÒµÅäÖã©¡£

2. ×°±¸¹ØÁª´¥·¢£ºÈôÐèʵÏÖÌØ¶¨×°±¸¼Ó³ÖÏÂÔöÇ¿´ÌɱЧ¹û£¬¿ÉÌí¼Ó×°±¸¼ì²âÂß¼­£¬Í¨¹ýGetPlayerEquip(attacker, "weapon")»ñÈ¡ÎäÆ÷ÐÅÏ¢£¬Åж¨ÎäÆ÷ÀàÐÍ»òÊôÐÔºóÔö¼Ó¶îÍâÉ˺¦¼Ó³É£¬ÀýÈç³ÖÓÐÍÀÁúµ¶Ê±É˺¦¶îÍâÌáÉý20%¡£

3. ȺÌå´¥·¢¿ØÖÆ£ºÈôÐèÏÞÖÆ´Ìɱ¼¼ÄܶÔÍæ¼Ò»ò¹ÖÎïµÄ´¥·¢²îÒ죬¿ÉÌí¼ÓÄ¿±êÀàÐÍÅж¨£¬Í¨¹ýIsPlayer(target)½Ó¿ÚÇø·ÖÍæ¼ÒÓë¹ÖÎ·Ö±ðÉèÖò»Í¬µÄÉ˺¦ÏµÊý»òÀäȴʱ¼ä£¬ÀýÈç¶Ô¹ÖÎï´¥·¢ÀäÈ´Ëõ¶ÌÖÁ1Ã룬¶ÔÍæ¼Ò±£³Ö3ÃëÀäÈ´¡£

Áù¡¢½Å±¾³£¼ûÎÊÌâ½â´ð

Q£º½Å±¾²¿Êðºó¹¥»÷ʱδ´¥·¢´ÌɱЧ¹û£¬¿ÉÄÜÊÇʲôԭÒò£¿

A£ºÓÅÏÈÅŲéÈýµã£ºÒ»ÊǽÇɫδѧϰ´Ìɱ¼¼ÄÜ»ò¼¼Äܵȼ¶Îª0£¬ÐèÈ·Èϼ¼ÄÜÃû³ÆÓë½Å±¾ÖÐÒ»Ö£»¶þÊǼ¼ÄÜÀäÈ´½Ó¿Ú²ÎÊý´íÎ󣬼ì²éSetSkillCDÓëGetSkillCDµÄ¼¼ÄÜÃû³ÆÊÇ·ñÆ¥Å䣻ÈýÊǾàÀëÅж¨Âß¼­Òì³££¬¿ÉÔÚ´úÂëÖÐÌí¼Ó´òÓ¡ÈÕÖ¾½Ó¿Ú£¬Êä³ödistance±äÁ¿Öµ£¬ÑéÖ¤¾àÀë¼ÆËãÊÇ·ñÕýÈ·¡£

Q£º´¥·¢´Ìɱ¼¼ÄܺóÎÞÊÓ¾õЧ¹û£¬ÈçºÎ½â¾ö£¿

A£ºÊ×ÏÈÈ·ÈÏPlayEffect½Ó¿ÚµÄЧ¹ûIDÊÇ·ñÊÊÅ䵱ǰGOMÒýÇæ°æ±¾£¬²»Í¬°æ±¾ÄÚÖÃЧ¹ûID¿ÉÄÜ´æÔÚ²îÒ죻Æä´Î¼ì²é·þÎñ¶ËЧ¹û×ÊÔ´ÊÇ·ñÍêÕû£¬ÈôЧ¹û×ÊԴȱʧ£¬Ðè²¹³ä¶ÔӦЧ¹ûÎļþÖÁ·þÎñ¶ËEffectÎļþ¼ÐÏ£»×îºóÑéÖ¤´¥·¢º¯ÊýÊÇ·ñÖ´Ðе½PlayEffect²½Ö裬¿Éͨ¹ý·¢ËͲâÊÔÏûÏ¢½Ó¿Ú¶¨Î»ÎÊÌâ¡£

Q£ºÈçºÎʵÏÖ´Ìɱ¼¼ÄÜ´©Í¸Ð§¹û£¬¹¥»÷Ä¿±êÉíºóµÄ½ÇÉ«£¿

A£º¿ÉÔÚÔ­Óнű¾»ù´¡ÉÏÔö¼Ó·¶Î§¼ì²âÂß¼­£¬Í¨¹ýGetPlayerAround½Ó¿Ú»ñȡĿ±êÉíºóÖ¸¶¨·¶Î§ÄڵĽÇÉ«£¬È»ºó¶ÔÕâЩ½ÇɫִÐÐÉ˺¦½áË㣬ͬʱÌí¼Ó´©Í¸Ð§¹ûµÄÊÓ¾õչʾ£¬×¢Òâ¿ØÖÆ´©Í¸É˺¦µÄϵÊý£¬±ÜÃâÓ°ÏìÓÎϷƽºâ¡£