´«Ææ½Å±¾±àдºËÐÄʵս£º·þÎñ¶ËNPCÓï·¨¡¢¿Í»§¶ËLua×Ô¶¯»¯Ó뿪·¢¹¤¾ßÁ´

À´Ô´£º ×÷Õߣº µã»÷£º
´«Ææ½Å±¾±àдÖ÷Òª·ÖΪ·þÎñ¶Ë½Å±¾Óë¿Í»§¶Ë×Ô¶¯»¯½Å±¾Á½´óÀà¡£·þÎñ¶Ë½Å±¾ÓÃÓڴÓÎÏ·¹¦ÄÜ¡¢NPC½»»¥¡¢¹ÖÎïˢС¢ÈÎÎñϵͳµÈ£¬ÔËÐÐÔÚ·þÎñÆ÷¶Ë£»¿Í»§¶Ë×Ô¶¯»¯½Å±¾ÓÃÓÚʵÏÖ¹Ò»ú¡¢×Ô¶¯´ò¹Ö¡¢Ê°È¡¡¢ÅÜͼµÈ¸¨Öú¹¦ÄÜ£¬ÔËÐÐÔÚÍæ¼Ò±¾µØ¡£ÒÔÏ´ÓÓï·¨»ù´¡¡¢ºËÐÄÖ¸Áî¡¢¿ª·¢¹¤¾ß¡¢ÊµÕ½°¸Àý¡¢µ÷ÊÔ¼¼ÇÉÎå¸öά¶Èϵͳ²ð½â¡£

Ò»¡¢·þÎñ¶ËNPC½Å±¾Óï·¨»ù´¡

·þÎñ¶ËNPC½Å±¾ÊÇ´«Ææ½Å±¾±àдµÄºËÐÄ£¬»ùÓÚÌØ¶¨ÒýÇæÓï·¨¿ª·¢£¬²»Í¬ÒýÇæ£¨GOM¡¢GEE¡¢996¡¢ôá·ç¡¢V8µÈ£©Óï·¨»ù±¾Í¨Ó㬺ËÐĽṹÓÉ#IF£¨Ìõ¼þ¼ì²â£©ºÍ#ACT£¨Ö´ÐÐÃüÁ×é³É£¬¼ì²âÃüÁîÖ»ÄÜ·ÅÔÚ#IFÏ£¬Ö´ÐÐÃüÁî·ÅÔÚ#ACT»ò#ELSEACTÏ¡£

½Å±¾¶ÎÂäÒÔ[@¶ÎÃû]¿ªÍ·£¬¶Î±êʶʹÓÃÓ¢ÎÄ»òÊý×Ö£¬ÓÃÓÚ»®·Ö¹¦ÄÜÄ£¿é¡£goto @¶ÎÃûÓÃÓÚÌø×ªµ½Ö¸¶¨¶ÎÂäÖ´ÐС£#sayÓÃÓÚÊä³ö¶Ô»°¿òÎÄ×Ö£¬ÎÞÐ趨½ç·û¡£#callÓÃÓÚµ÷ÓÃ×Ó³ÌÐò£¬Ò»°ãµ÷ÓÃQuestDiaryĿ¼ÏµÄ×Ó³ÌÐò¡£;ΪעÊÍ·ûºÅ£¬¼ÓÔÚÐÐÊ׸ÃÐв»±àÒë²»ÏÔʾ¡£Îª»»Ðзû£¬·ÀÖ¹³¤Îı¾³¬³ö¶Ô»°¿ò¡£<>Ϊ½»Ì¸Ñ¡ÏÏÔʾΪ»ÆÉ«¿ÉµãÑ¡ÎÄ×Ö£¬º¬gotoº¬Òå¡£/Ϊ·Ö¸ô·û£¬ÓÃÓÚ·Ö¸ôÏÔʾÓïÑÔÓë½Å±¾ÓïÑÔ¡£

Ìõ¼þÅжϿò¼ÜΪ#IFºó½Ó¼ì²âÃüÁÂú×ãÌõ¼þÖ´ÐÐ#act£¬²»Âú×ãÖ´ÐÐ#elsesay»ò#elseact¡£³£Óüì²âÃüÁî°üÀ¨checklevel¼ì²âµÈ¼¶¡¢checkgold¼ì²â½ð±Ò¡¢checkitem¼ì²â±³°üÎïÆ·¡¢checkjob¼ì²âÖ°Òµ£¨Warrսʿ/Wizard·¨Ê¦/TaosµÀÊ¿£©¡¢genderman¼ì²âÐÔ±ðÊÇ·ñΪÄС¢checkpkpoint¼ì²âPKÖµ¡¢checkmagic¼ì²âÊÇ·ñÐÞÁ¶Ö¸¶¨¼¼ÄÜ¡¢checkhum¼ì²âµØÍ¼ÈËÊý¡¢checkmonmap¼ì²âµØÍ¼¹ÖÎïÊýÁ¿µÈ¡£

Ö´ÐÐÃüÁî°üÀ¨give·¢·ÅµÀ¾ß»ò½ð±Ò¡¢take»ØÊÕµÀ¾ß»ò½ð±Ò¡¢map´«ËÍÖÁÖ¸¶¨µØÍ¼Ëæ»ú×ø±ê¡¢monclearÇå³ýÖ¸¶¨µØÍ¼ËùÓйÖÎï¡¢MonGen×Ô¶¨ÒåˢйÖÎï¡¢ADDSKILLÌí¼Ó¼¼ÄÜ¡¢DELSKILLɾ³ý¼¼ÄÜ¡¢CHANGEJOBµ÷ÕûÖ°Òµ¡¢CHANGEGENDERµ÷ÕûÐÔ±ðµÈ¡£

±äÁ¿ÏµÍ³ÏÞÓÚP0-P9¡¢D0-D9£¬Âß¼­±äÁ¿Îª[n]£¨nΪÕýÕûÊý£©¡£mov±äÁ¿ÊýÖµÓÃÓÚ±äÁ¿¸³Öµ£¬inc±äÁ¿ÊýÖµÓÃÓÚ±äÁ¿×ÔÔö£¬DEC±äÁ¿ÊýÖµÓÃÓÚ±äÁ¿×Ô¼õ£¬MUL±äÁ¿ÊýÖµÓÃÓÚ±äÁ¿³Ë·¨£¬DIV±äÁ¿ÊýÖµÓÃÓÚ±äÁ¿³ý·¨£¬movr±äÁ¿ÊýÖµÓÃÓÚ¶¨ÒåËæ»ú±äÁ¿£¨·¶Î§0ÖÁÊýÖµ²»º¬ÊýÖµ£©£¬randomÊýÖµÓÃÓÚ¸ÅÂÊÅжϣ¨Èçrandom 2Ϊ50%¸ÅÂÊ£©¡£

¶þ¡¢¿Í»§¶Ë×Ô¶¯»¯½Å±¾Óï·¨»ù´¡

¿Í»§¶Ë×Ô¶¯»¯½Å±¾³£ÓÃLua»òPythonÓïÑÔ±àд£¬Í¨¹ýµ÷ÓÃÓÎÏ·APIʵÏÖ×Ô¶¯¹Ò»ú¡¢Òƶ¯¡¢Ê°È¡µÈ¹¦ÄÜ¡£»ù´¡Óï·¨°üº¬±äÁ¿¶¨Ò塢ѭ»·£¨while/for£©¼°Ìõ¼þÅжϣ¨if-then-else£©¡£

ÒÔLuaÓïÑÔΪÀý£¬±àд¹Ò»ú½Å±¾ÐèÔÚ´«ÆæÓÎϷĿ¼´´½¨ScriptsÎļþ¼Ð£¬µ¼Èë±ØÒª¿â²¢±àдmainº¯Êý¡£ÒÔÏÂÊÇÒ»¸ö¼òµ¥µÄ×Ô¶¯¹Ò»ú½Å±¾Ê¾Àý£º

while True do
local status = myChar:getStatus()
if status == 2 then
local x, y = myChar:getPos()
if math.random(1, 100) > 50 then
myChar:setTarget(x - 5, y)
else
myChar:setTarget(x + 5, y)
end
elseif status == 4 or status == 8 then
local x, y = myChar:getPos()
if math.random(1, 100) > 50 then
myChar:setTarget(x, y - 5)
else
myChar:setTarget(x, y + 5)
end
end
end

¸Ã½Å±¾Í¨¹ýÑ­»·¼ì²âÍæ¼Ò״̬£¬¸ù¾ÝËæ»úÊý¾ö¶¨Òƶ¯·½Ïò£¬ÊµÏÖ×Ô¶¯¹Ò»ú¹¦ÄÜ¡£±àдÁ÷³Ì°üÀ¨Á˽âÓÎÏ·»úÖÆ¡¢Ñ¡Ôñ±à¼­Æ÷¡¢Éè¼Æ¹¦ÄÜÄ£¿é¡¢±àд´úÂë¼°µ÷ÊÔ²âÊÔ¡£

Èý¡¢¿ª·¢¹¤¾ßÁ´ÍƼö

·þÎñ¶Ë½Å±¾¿ª·¢¹¤¾ß·½Ã棬MirScriptEdÊÇרҵ´«Ææ½Å±¾±à¼­Æ÷£¬ÄÚÖÃAIÖÇÄÜÖúÊÖ£¬Ö§³Ö×ÔÈ»ÓïÑÔÃèÊöÐèÇó¡¢×Ô¶¯·ÖÎö½Å±¾Âß¼­¡¢ÖÇÄÜ´úÂ벹ȫ¡¢Óï·¨¸ßÁÁ¡¢Êý¾Ý¿â±à¼­£¨Access/SQLite£©¡¢±äÁ¿Õ¼Óòéѯ¡¢½Å±¾Ìø×ª¡¢Îļþͬ²½¡¢´ó¸ÙÊÓͼ¼°½Å±¾ÈÈÖØÔØ¹¦ÄÜ¡£´«Ææ½Å±¾±à¼­Æ÷AIÖÇÄܰ棨V4.0£©Ö§³ÖËùÓд«ÆæÒýÇæÍ¨Ó㬹¦ÄܰüÀ¨½Å±¾×¢²áµÇ¼¡¢ÃüÁî·­Òë¡¢NPC¹ÜÀí¡¢±äÁ¿¼ì²âÓëÐ޸ġ¢Êý¾Ý¿â²Ù×÷¡¢AI½Å±¾Éú³É¡¢¿ÉÊÓ»¯Ë¢¹ÖÓë¹ÖÎïÉè¼Æ¡£MirEditÊÇVS Code²å¼þ£¬Ö§³ÖGEE¡¢GOM¡¢996¡¢V8µÈ¶àÒýÇæÇл»£¬¾ß±¸Îı¾×ÅÉ«¡¢×Ô¶¯²¹È«¡¢´ó¸ÙÕÛµþ¡¢±äÁ¿Õ¼Óòéѯ¡¢Ò»¼üÖØÔØ¼°Îĵµ¶ÔÆë¹¦ÄÜ¡£BOO UI±à¼­Æ÷ÊÇÃæÏò´«ÆæGMµÄVS CodeÀ©Õ¹£¬Ìṩ½Å±¾ÖÇÄÜÌáʾ¡¢UI¿ÉÊÓ»¯±à¼­¡¢PAK/JPK¶ÁÈ¡¡¢Êý¾Ý¿âÓëµØÍ¼²é¿´¼°M2ÖØÔØ¹¦ÄÜ¡£

¿Í»§¶Ë×Ô¶¯»¯½Å±¾¹¤¾ß·½Ã棬°´¼ü¾«Áéͨ¹ýͼÏñʶ±ð»ñÈ¡ÓÎÏ·½çÃæ×´Ì¬£¬±àдÅжÏÂß¼­ºÍÑ­»·½á¹¹ÊµÏÖ×Ô¶¯´ò¹Ö¡¢×Ô¶¯¼ñÎï¡¢×Ô¶¯»ØÑªµÈ¹¦ÄÜ¡£AutoHotkeyºÍAutoItÊÇ×Ô¶¯»¯½Å±¾±àд¹¤¾ß£¬¿ÉÖ¸¶¨½ÇɫλÖú͹ÖÎïλÖ㬱àдѭ»·Óï¾äÈÃÍæ¼Ò³ÖÐøÊ©·Å¼¼ÄÜ£¬ÊµÏÖ¼¼ÄÜÀäÈ´¿ØÖÆ¡£À×µçÄ£ÄâÆ÷ÄÚÖòÙ×÷Â¼ÖÆ¹¦ÄÜ£¬¿É¼Ç¼²¢»Ø·ÅÓÎÏ·²Ù×÷Á÷³Ì£¬Ö§³Öµ¼ÈëÍⲿ.lua»ò.txt½Å±¾Îļþ¡£

ËÄ¡¢ÊµÕ½°¸Àý£ºNPC¶Ô»°Óë´¥·¢Ðͽű¾

ÒÔÏÂÊÇÒ»¸öÐÂÈ˸£ÀûÁìÈ¡NPC½Å±¾Ê¾Àý£º

[@main]
IF
ACT
SAY
»¶Ó­À´µ½ÈÈѪ´«Ææ\
ÕâÊÇÐÂÈ˸£ÀûÁìÈ¡´¦\
\
ÏÖÔÚÎÒÃǽ«ÎªÐÂÈË·¢·Å¸£Àû£¬ÊÇ·ñÁìÈ¡£¿\
\
<ÁìÈ¡/@lingqu>\
<Í˳ö/@exit>

[@lingqu]
IF
checklevel 1
ACT
give ľ½£ 1
give gold 500
SAY
¸£ÀûÒÑ·¢·Å£¬×£ÄãÓÎÏ·Óä¿ì£¡

[@exit]
ACT
close

¸Ã½Å±¾Ê×ÏÈͨ¹ý[@main]¶ÎÂäÏÔʾ»¶Ó­ÐÅÏ¢£¬Íæ¼Òµã»÷ÁìÈ¡ºóÌø×ªµ½[@lingqu]¶ÎÂ䣬¼ì²âµÈ¼¶ÊÇ·ñ´ïµ½1¼¶£¬Âú×ãÌõ¼þºó·¢·Åľ½£ºÍ500½ð±Ò£¬×îºóÏÔʾÌáʾÐÅÏ¢¡£

´¥·¢Ðͽű¾£¨QF½Å±¾£©ÊÇ´«Ææ½Å±¾µÄÖØÒª²¿·Ö£¬ÓÃÓÚʵÏÖÉý¼¶´¥·¢¡¢´ò¹Ö´¥·¢¡¢ËÀÍö´¥·¢¡¢Ë«»÷´¥·¢¡¢´©´÷´¥·¢µÈ¹¦ÄÜ¡£ÒÔÏÂÊÇÒ»¸ö´ò¹Ö´¥·¢Â̶¾Ð§¹ûµÄʾÀý£º

[@Attack]
IF
ACT
if MONGENEX µØÍ¼Îļþ XY ¹ÖÎïÃû ·¶Î§ ÊýÁ¿ ÊÇ·ñÄÚ¹¦¹ÖÎï ÑÕÉ«
IF
EQUAL HUM 1
ACT
CHANGEATTRIBUTE Ä¿±ê Â̶¾ 30 0

¸Ã½Å±¾ÔÚÍæ¼Ò¹¥»÷¹ÖÎïʱ´¥·¢£¬¼ì²âÄ¿±êÊÇ·ñΪ¹ÖÎ·ÇÈËÎ£¬Âú×ãÌõ¼þºó¸øÄ¿±êÊ©¼Ó³ÖÐø30ÃëµÄÂ̶¾Ð§¹û¡£

Îå¡¢µ÷ÊÔ¼¼ÇÉÓë×¢ÒâÊÂÏî

µ÷ÊԽű¾Ê±½¨ÒéÏÈÑéÖ¤°´Å¥´¥·¢ÓëÏûÏ¢Êä³öÊÇ·ñÕý³££¬ÔÙÖð²½ÍêÉÆÂß¼­¡£Ê¹ÓÃSENDMSG6ÃüÁîÊä³öµ÷ÊÔÐÅÏ¢£¬ÀýÈçSENDMSG6µ±Ç°Ôª±¦Îª<GAMEGOLD>£¬¿Éʵʱ²é¿´±äÁ¿Öµ¡£±£´æ½Å±¾ºóÐèÖØÔØNPC»òQF¹¦Äܽű¾·½¿ÉÉúЧ£¬²¿·Ö±à¼­Æ÷Ö§³ÖÒ»¼üÖØÔØ¹¦ÄÜ¡£

±äÁ¿Ê¹ÓÃʱÐè×¢Òâ±ÜÃâ³åÍ»£¬¿ÉʹÓñäÁ¿Õ¼Óòéѯ¹¦ÄÜ¿ìËٲ鿴ÒÑÕ¼ÓñäÁ¿¡£½Å±¾±àд¹ý³ÌÖÐÐè×¢Òâ±ÜÃâÎ¥¹æ²Ù×÷£¬ÖÆ×÷ÓëʹÓÃÍâ¹Ò»òµÚÈý·½¸¨Öú³ÌÐò´æÔÚ·¨ÂÉ·çÏÕ£¬¿ÉÄܵ¼ÖÂÕ˺ŷâ½û¡¢ÓÎÏ·ÔËÐв»Îȶ¨¡¢¸öÈËÐÅϢй¶¼°ÆÆ»µÓÎÏ·¹«Æ½ÐÔ£¬Ðè×ñÊØÏà¹Ø·¨ÂÉ·¨¹æ¼°ÓÎÏ·¹æÔò¡£