µ±Ç°Î»Öà : 145zÓÎÏ·Õ¾¡¡|¡¡ÈÈѪ´«Ææ¡¡|¡¡¼¼Êõ½Ì³Ì¡¡|¡¡

GEE ÒýÇæ´«ÆæÓÎÏ·ÖлسÇʯ²»¹Ì¶¨ÂäµãÇÒ½öÏÞ°²È«ÇøµÄ½Å±¾±àд·½·¨¼°Ïêϸ²½Öè

Èȶȣº
ÔÚ GEE ÒýÇæµÄ´«ÆæÓÎÏ·À»Ø³ÇʯÊÇÍæ¼Ò³£ÓõĵÀ¾ß£¬Ä¬ÈÏÉèÖÃÍùÍù»á¹Ì¶¨»Øµ½Ä³¸ö×ø±ê£¬±ÈÈçÍÁ³ÇµÄ 330,330¡£µ«ºÜ¶àʱºò£¬Íæ¼ÒÏ£Íû»Ø³ÇʯÄÜÔÚ°²È«ÇøÄÚËæ»úÂäµã£¬¼È±£Ö¤°²È«ÐÔ£¬ÓÖÔö¼ÓÒ»¶¨µÄËæ»úÐÔ¡£ÏÂÃæ¾ÍÏêϸ½éÉÜÈçºÎ±àдÕâÑùµÄ½Å±¾¡£
Ê×ÏÈ£¬ÒªÃ÷È·½Å±¾µÄºËÐÄÄ¿±ê£ºÈûسÇʯ´¥·¢ºó£¬Íæ¼ÒÄܱ»´«Ë͵½µ±Ç°µØÍ¼µÄ°²È«ÇøÄÚ£¬ÇÒÿ´ÎÂäµãµÄ×ø±ê²»¹Ì¶¨¡£ÕâÐèÒª½â¾öÁ½¸ö¹Ø¼üÎÊÌ⣺һÊÇ׼ȷʶ±ðµ±Ç°µØÍ¼µÄ°²È«Çø·¶Î§£¬¶þÊÇÔڸ÷¶Î§ÄÚÉú³ÉËæ»úµÄ×ø±ê²¢Íê³É´«ËÍ¡£
¶ÔÓÚ GEE ÒýÇæÀ´Ëµ£¬°²È«ÇøµÄ¶¨Òåͨ³£ÔÚµØÍ¼ÅäÖÃÎļþÖУ¬±ÈÈç MapInfo.txt¡£ÔÚÕâ¸öÎļþÀÿ¸öµØÍ¼»áͨ¹ýÌØ¶¨µÄ²ÎÊý±ê×¢°²È«ÇøµÄÇøÓò£¬³£¼ûµÄ¸ñʽÀàËÆ “µØÍ¼ºÅ °²È«Çø×óÉÏ½Ç X °²È«Çø×óÉÏ½Ç Y °²È«ÇøÓÒÏÂ½Ç X °²È«ÇøÓÒÏÂ½Ç Y”¡£ÀýÈ磬ÍÁ³Ç£¨µØÍ¼ºÅ 3£©µÄ°²È«Çø¿ÉÄܱêעΪ “3 300 300 360 360”£¬ÕâÒâζןõØÍ¼µÄ°²È«ÇøÊÇ´Ó×ø±ê£¨300,300£©µ½£¨360,360£©µÄ¾ØÐÎÇøÓò¡£ÔÚ±àд½Å±¾Ç°£¬ÐèÒªÏÈÕÒµ½Ä¿±êµØÍ¼ÔÚ MapInfo.txt ÖжÔÓ¦µÄ°²È«Çø×ø±ê·¶Î§£¬ÕâÊǺóÐøÉú³ÉËæ»úÂäµãµÄ»ù´¡¡£
½ÓÏÂÀ´£¬½Å±¾ÐèҪʵÏֵŦÄÜÊǶÁÈ¡µ±Ç°µØÍ¼µÄ°²È«Çø·¶Î§£¬²¢Ôڸ÷¶Î§ÄÚÉú³ÉËæ»úµÄ X ºÍ Y ×ø±ê¡£GEE ÒýÇæµÄ½Å±¾ÏµÍ³Ö§³Ö±äÁ¿ÔËËãºÍËæ»úÊýÉú³É£¬ÕâΪʵÏÖËæ»ú×ø±êÌṩÁË¿ÉÄÜ¡£ÔÚ QFunction-0.txt ÖУ¬ÎÒÃÇ¿ÉÒÔͨ¹ý±äÁ¿À´´æ´¢°²È«ÇøµÄ×î´óºÍ×îС X¡¢Y Öµ£¬È»ºóÀûÓÃËæ»úº¯ÊýÉú³ÉÂäÔÚ¸ÃÇø¼äÄÚµÄ×ø±ê¡£
¾ßÌå²½ÖèÈçÏ£º
µÚÒ»²½£¬¶¨Òå°²È«Çø×ø±ê·¶Î§±äÁ¿¡£¼ÙÉ赱ǰµØÍ¼µÄ°²È«Çø X ×ø±ê·¶Î§ÊÇ 300 µ½ 360£¬Y ×ø±ê·¶Î§ÊÇ 300 µ½ 360£¬Ôڽű¾ÖпÉÒÔÕâÑù¶¨Ò壺
; ¶¨ÒåÍÁ³Ç°²È«Çø×ø±ê·¶Î§
SAFE_X1 = 300
SAFE_X2 = 360
SAFE_Y1 = 300
SAFE_Y2 = 360

Èç¹ûÐèÒªÊÊÅä¶à¸öµØÍ¼£¬»¹¿ÉÒÔͨ¹ýÅжϵ±Ç°µØÍ¼ºÅÀ´¼ÓÔØ¶ÔÓ¦µÄ°²È«Çø·¶Î§¡£ÀýÈ磬µ±Íæ¼ÒÔÚÃËÖØÊ¡£¨µØÍ¼ºÅ 3£©Ê±Ê¹ÓûسÇʯ£¬¾Í¼ÓÔØÍÁ³ÇµÄ°²È«Çø·¶Î§£»ÔÚ±ÈÆæ³Ç£¨µØÍ¼ºÅ 0£©Ê±£¬Ôò¼ÓÔØ±ÈÆæ³ÇµÄ°²È«Çø·¶Î§¡£¿ÉÒÔʹÓà GEE ½Å±¾ÖÐµÄ “Map” ÃüÁî»ñÈ¡µ±Ç°µØÍ¼ºÅ£¬È»ºóͨ¹ý “if” Ìõ¼þÅжÏÀ´¸³Öµ²»Í¬µÄ°²È«Çø×ø±ê£º
; »ñÈ¡µ±Ç°µØÍ¼ºÅ
CurrentMap = <$Map>

; ¸ù¾ÝµØÍ¼ºÅÉèÖöÔÓ¦µÄ°²È«Çø·¶Î§
if <$CurrentMap> = 3
SAFE_X1 = 300
SAFE_X2 = 360
SAFE_Y1 = 300
SAFE_Y2 = 360
else if <$CurrentMap> = 0
SAFE_X1 = 200
SAFE_X2 = 250
SAFE_Y1 = 200
SAFE_Y2 = 250
endif

µÚ¶þ²½£¬Éú³ÉËæ»ú×ø±ê¡£GEE ÒýÇæÌṩÁË “Rnd” º¯ÊýÓÃÓÚÉú³ÉËæ»úÊý£¬Æä¸ñʽΪ “Rnd (×î´óÖµ£¬×îСֵ)”£¬Éú³ÉµÄËæ»úÊý°üÀ¨×îСֵºÍ×î´óÖµ¡£ÀûÓÃÕâ¸öº¯Êý£¬ÎÒÃÇ¿ÉÒÔÔÚ°²È«ÇøµÄ X ºÍ Y ×ø±ê·¶Î§ÄÚ·Ö±ðÉú³ÉËæ»úÖµ£º
; Éú³É°²È«ÇøÄÚµÄËæ»úX×ø±ê
RandX = <$Rnd(<$SAFE_X2>, <$SAFE_X1>)>

; Éú³É°²È«ÇøÄÚµÄËæ»úY×ø±ê
RandY = <$Rnd(<$SAFE_Y2>, <$SAFE_Y1>)>

ÕâÑù£¬RandX ºÍ RandY ¾Í»áµÃµ½Ò»¸öÔÚ°²È«Çø·¶Î§ÄÚµÄËæ»ú×ø±êÖµ£¬±ÈÈç X ¿ÉÄÜÊÇ 320£¬Y ¿ÉÄÜÊÇ 345¡£
µÚÈý²½£¬Ö´Ðд«ËͲÙ×÷¡£ÔÚ»ñÈ¡Ëæ»ú×ø±êºó£¬Ê¹Óà GEE ÒýÇæµÄ “MapMove” ÃüÁî½«Íæ¼Ò´«Ë͵½¸Ã×ø±ê¡£Óë¹Ì¶¨×ø±êµÄ´«ËͲ»Í¬£¬ÕâÀïµÄ×ø±ê²ÎÊýʹÓÃÇ°ÃæÉú³ÉµÄËæ»ú±äÁ¿£º
; ´«ËÍÍæ¼Òµ½°²È«ÇøÄÚµÄËæ»ú×ø±ê
MapMove <$CurrentMap> <$RandX> <$RandY>

½«ÉÏÊö²½ÖèÕûºÏµ½»Ø³ÇʯµÄ´¥·¢½Å±¾ÖУ¬ÍêÕûµÄ½Å±¾Ê¾ÀýÈçÏ£º
; »Ø³ÇʯʹÓýű¾
[@UseItem_»Ø³Çʯ]
; ÌáÊ¾Íæ¼ÒÕýÔڻسÇ
SendMsg 6 ÕýÔÚʹÓûسÇʯ£¬¼´½«´«ËÍÖÁ°²È«Çø...
; »ñÈ¡µ±Ç°µØÍ¼ºÅ
CurrentMap = <$Map>
; ¸ù¾ÝµØÍ¼ºÅÉèÖð²È«Çø·¶Î§£¨¿É¸ù¾Ýʵ¼ÊµØÍ¼À©Õ¹£©
if <$CurrentMap> = 3
SAFE_X1 = 300
SAFE_X2 = 360
SAFE_Y1 = 300
SAFE_Y2 = 360
else if <$CurrentMap> = 0
SAFE_X1 = 200
SAFE_X2 = 250
SAFE_Y1 = 200
SAFE_Y2 = 250
else
; ÈôµØÍ¼ÎÞ°²È«ÇøÉèÖã¬Ä¬ÈÏ´«Ë͵½ÍÁ³Ç¹Ì¶¨µã£¨¿ÉÑ¡£©
MapMove 3 330 330
SendMsg 6 µ±Ç°µØÍ¼ÎÞ°²È«ÇøÉèÖã¬ÒÑ´«ËÍÖÁÍÁ³Ç£¡
return
endif
; Éú³ÉËæ»ú×ø±ê
RandX = <$Rnd(<$SAFE_X2>, <$SAFE_X1>)>
RandY = <$Rnd(<$SAFE_Y2>, <$SAFE_Y1>)>
; Ö´Ðд«ËÍ
MapMove <$CurrentMap> <$RandX> <$RandY>
; Ìáʾ´«Ëͳɹ¦
SendMsg 6 ÒÑ´«ËÍÖÁ°²È«ÇøËæ»úλÖãºX=<$RandX>, Y=<$RandY>
return

ÔÚ±àд½Å±¾Ê±£¬ÐèҪעÒâÒÔϼ¸µã£º
°²È«Çø·¶Î§µÄ׼ȷÐÔ£º±ØÐëÈ·±£´Ó MapInfo.txt ÖлñÈ¡µÄ°²È«Çø×ø±ê·¶Î§×¼È·ÎÞÎ󣬷ñÔò¿ÉÄܵ¼ÖÂÍæ¼Ò±»´«Ë͵½°²È«ÇøÍâ¡£Èç¹ûÓÎÏ·ºóÆÚµ÷ÕûÁ˰²È«Çø·¶Î§£¬ÐèÒª¼°Ê±¸üнű¾ÖеĶÔÓ¦²ÎÊý¡£
µØÍ¼ÊÊÅäÐÔ£ºÈç¹ûÓÎÏ·ÖÐÓжà¸öµØÍ¼ÐèÒªÖ§³Ö»Ø³ÇÊ¯Ëæ»úÂäµã£¬ÐèÒªÔڽű¾ÖÐΪÿ¸öµØÍ¼Ìí¼Ó¶ÔÓ¦µÄ°²È«Çø·¶Î§Åжϡ£¿ÉÒÔͨ¹ý²»¶ÏÀ©Õ¹ “else if” Óï¾äÀ´ÊµÏÖ¶àµØÍ¼ÊÊÅä¡£
Òì³£´¦Àí£º¶ÔÓÚûÓÐÉèÖð²È«ÇøµÄµØÍ¼£¬½Å±¾ÐèÒªÓÐÏàÓ¦µÄ´¦ÀíÂß¼­£¬±ÈÈçĬÈÏ´«Ë͵½Ä³¸ö¹Ì¶¨µÄ°²È«Çø£¬»òÌáÊ¾Íæ¼ÒÎÞ·¨Ê¹ÓûسÇʯ£¬±ÜÃâ³öÏÖ´«ËÍʧ°ÜµÄÇé¿ö¡£
²âÊÔÑéÖ¤£º½Å±¾±àдÍê³Éºó£¬ÐèÒªÔÚÓÎÏ·Öжà´Î²âÊÔ¡£¿ÉÒÔÔÚ²»Í¬µØÍ¼Ê¹ÓûسÇʯ£¬¼ì²éÊÇ·ñÿ´Î¶¼ÄÜÂäÔÚ°²È«ÇøÄÚ£¬ÇÒ×ø±êÊÇ·ñËæ»ú±ä»¯¡£Í¬Ê±£¬ÒªÈ·±£´«Ë͹ý³ÌÖÐûÓгöÏÖ¿¨¶Ù¡¢±¨´íµÈÎÊÌâ¡£
´ËÍ⣬GEE ÒýÇæµÄ½Å±¾ÏµÍ³»¹Ö§³Ö¸ü¸´ÔÓµÄÂß¼­£¬±ÈÈçÅųý°²È«ÇøÄÚµÄÕϰ­Îï×ø±ê¡£Èç¹û°²È«ÇøÄÚ´æÔÚ²»¿ÉÕ¾Á¢µÄÇøÓò£¨È罨ÖþÎï¡¢NPC ÖÜΧ£©£¬¿ÉÒÔÔÚÉú³ÉËæ»ú×ø±êºó£¬Í¨¹ý “CheckPos” ÃüÁî¼ì²é¸Ã×ø±êÊÇ·ñ¿ÉÕ¾Á¢£¬Èô²»¿ÉÕ¾Á¢ÔòÖØÐÂÉú³É×ø±ê£¬Ö±µ½»ñÈ¡ÓÐЧµÄÂäµã¡£ÀýÈ磺
; Éú³É¿ÉÕ¾Á¢µÄËæ»ú×ø±ê
loop:
RandX = <$Rnd(<$SAFE_X2>, <$SAFE_X1>)>
RandY = <$Rnd(<$SAFE_Y2>, <$SAFE_Y1>)>
; ¼ì²é×ø±êÊÇ·ñ¿ÉÕ¾Á¢£¨1±íʾ¿ÉÕ¾Á¢£©
if <$CheckPos(<$CurrentMap>, <$RandX>, <$RandY>, 1)> = 1
break
else
goto loop
endif

ÕâÖÖ·½Ê½ÄܽøÒ»²½ÌáÉý»Ø³ÇÂäµãµÄºÏÀíÐÔ£¬±ÜÃâÍæ¼Ò±»´«Ë͵½ÎÞ·¨Òƶ¯µÄλÖá£
×ܽáÀ´Ëµ£¬ÖÆ×÷ GEE ÒýÇæÏ²»¹Ì¶¨ÂäµãÇÒ½öÏÞ°²È«ÇøµÄ»Ø³Çʯ½Å±¾£¬ºËÐÄÔÚÓÚ׼ȷ»ñÈ¡°²È«Çø·¶Î§¡¢ÀûÓÃËæ»úº¯ÊýÉú³É×ø±êÒÔ¼°Í¨¹ýÌõ¼þÅжÏÊÊÅä¶àµØÍ¼¡£°´ÕÕÉÏÊö²½Öè±àд²¢²âÊÔ£¬¾ÍÄÜʵÏÖ·ûºÏÐèÇóµÄ»Ø³Ç¹¦ÄÜ£¬¼È±£ÁôÁËËæ»úÐÔ£¬ÓÖÈ·±£ÁËÍæ¼ÒµÄ°²È«¡£