BLUEٷQQȺ487184004QQ1592180  
΢֤빦ʹⲿııﵽһ(1M)ӰܣŻ˼·ʹ֤滻
ע⣬2021꿪ʼĳ汾֧windows XP2003µĲϵͳ



2021/5/21	ȫ
---------------------------------------------------------------------------
M2
  ֧DelayCallRUNONDAYRUNONWEEKԾȷ룬ʽHH:MM:SSWW:HH:MM:SS
  ԶNPCű֧Ʒб
  һɵķ©
  չNPCReadRandomStrĲ1ʹȨģʽʽԭΪļ·Ȩģʽļ
    ReadRandomStr ַ1|Ȩ1,ַ2|Ȩ2,ַ3|Ȩ3...		// ȨΪֵ֣Խ󣬶ӦַȡļʾԽע⣺ȨܺͲҪ21ڣ
  !setupļżظ
  !setupǷظiniظbugеĻᵯʾֶȷϻӳ5ִԶ޸
  ӼصLOADDUMMY ˺ ɫֻһ˺|ɫ˺:ɫFakePlayer200ߵ199ķʽ
  ſ״̬·
  ӿNPCٶ
  Ƿ¼־ԪֿĬϲ¼Ҫ޸־бӣ 
  AMD CPU쳣
  ָResetLoopCounterϸȷʱڲִ̫ĵĽű







2021/5/20	ȫ
---------------------------------------------------------------------------
M2
  Ӣ۴
  лͼֲԭ
  ֹףɿԷ׺͹Ʒ
  ɱս
  ŻײЧʣŻͼŴ
  ŻַָַʽЧ
  ŻԶʰȡ
  Żɫָ¡ȡ
  Ż·ܡ⡢ȣ
  ŻSetAbility߼
  Żת
  Żײ㹦ܺ
  ȫ¼ؿܳ
  ͼȫչֵܸ
  ʩ
  Ը$REVIVALDURATION룬-1ʾܸ0ʾnɱԸڶԷûзܵ
  ս״̬ʱ$BATTLEMODEDURATION
  ӵװNPCDropEquip 0|1|3 ʾ(0/1)1ָװλãָλãʹá|ʹallָȫ2Ƿʾ
  ŻDelayCall
  ¼MapQuestܵ⣨˵NPC
  ֧ʹ4Gڴ
  ŻEvent
  Ż
  ˢӬпܵ³
  ѻ㲻
  ӽ<$DATETIME>ı<$DATE><$TIME>
  ΨһIDı<$UID>ȷIDΨһǰǣͬķsetupеserveridΨһ
  !setup[server]ViewWhisper=1ʱʾϢԭĬϣ
    ViewWhisper=2ʱɴQChatMission[@OnMonitorChatMessage]
    <$CHATMSG>ǴֶΡרáȡϢ˴ֶνֹʹıɲο¼־ʾ.txt

  NPCStrCap S1 S2 ( )		// ַS1С()ڵݵS2S1ʣಿ
  չNPCUpgradeItem			// 5Ϊ99ʱͨԵֻԣ4Ϊԣʽͨ|ؼ|||Giveĸʽ
  չNPCUpgradeItemEx		// 5Ϊ99ʱͨԵֻԣ8ΪԣͬUpgradeItemĵ4
  չNPCUpgradeItemEx		// 41=5,3=5,28=7,28=8ġλ=ֵʽֱӰ4޸װͨԣʧ
  չNPCUpgradeDlgItem		// 4Ϊ99ʱͨԵֻԣ6Ϊԣͬ
  NPCGetEquipProps 		// װλ(0~1610000)װλΪ10000ʱȡԶװװԣDlgItem
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ãȡװֵһУn=װλ0~1610000p=ͨ0~30i=1~30עnpiǱ
  		ͨԣM_EQUIP[n]_NORM_PROPS{p}
  		ЧַͨS_EQUIP[n]_NORM_PROPS				// ֵʽ1=5,3=5,28=7,28=8ںλ0~30ұֵ
  		һԣS_EQUIP[n]_EVAL_BASE_PROPS				// ֵʽ1=5,3=5,28=7,28=8ںǼ1~30ұֵStrTokʹã1~30ɲοǰĸ˵
  		һԣS_EQUIP[n]_EVAL_MYST_PROPS				// ֵʽ1=5,3=5,28=7,28=8ںǼ1~30ұֵ
  		ԣS_EQUIP[n]_EVAL_BASE_PROP_SLOT{1~4}		// ֵʽ1=5SLOTΧ1~4ʾڼԣֵ0Ч
  		ԣS_EQUIP[n]_EVAL_MYST_PROP_SLOT{1~4}		// ֵʽ1=5SLOTΧ1~4ʾڼԣֵ0Ч
  		ԣM_EQUIP[n]_EVAL_BASE_PROPS{i}				// 1~30õֵظԣʹô˱
  		ԣM_EQUIP[n]_EVAL_MYST_PROPS{i}				// 1~30õֵظԣʹô˱
  		ԣM_EQUIP[n]_EVAL_SPEC_PROPS					// ʹIsBitSetSetBitUnsetBitȽϼ
  		񼼣M_EQUIP[n]_EVAL_SKILL_PROPS						// ʹIsBitSetSetBitUnsetBitȽϼ
  		M_EQUIP[n]_EVAL_TIMES_PROPS
  ȡԻᴥNPC[@OnGetEquipProps]ֶΣر£鿴ʾGetEquipProps.txt
		$PARAM(0)	// ƷID
		$PARAM(1)	// stdmode
		$PARAM(2)	// looks
		$PARAM(3)	// װλ
		$PARAM(4)	// Ч
		$PARAM(5)	// Ч
		
RunGate
  ŻٿƣӲˣFilterOpcodes.txtַֹ

DBS-MySQL
  سȡ
  ֧ʹ4Gڴ




2021/4/17	ȫ
---------------------------------------------------------------------------
M2
  ︴мʳֱ
  ŻԶʰȡ
  ȥͼɾADDMIRRORMAPDELMIRRORMAPMIRRORMAPTIME
  NewCopyMapʽNewCopyMap Դͼ ͼ Чʱ() Ƿˢ(0/1) תֶΣظͼڣ<$PARAMSTR(0)>
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  [@]
  #act
  NewCopyMap d717 ߸ 45 1 @CreateCopyMapResult
  [@CreateCopyMapResult]
  #if
  CompVal <$PARAMSTR(0)> ! ""
  #act
  map <$PARAMSTR(0)>
  mov Aͼ <$PARAMSTR(0)>
  SendMsg 7 ɹ븱<$PARAMSTR(0)>
  #elseact
  SendMsg 7 ʧ

  Ӣ۸ʱ
  Ӣʾ
  ϸ汾޸ˮ
  ˢһЩЧﵼ
  ŻMapEventõͼƲִСд
  ԵĺϻδЧ⣬ʹãGive װ 1 0 0 24=15|24=15|0|0|1
  װֵɸʾٷֱȷţ׸£
  ҩȥؽп
  ¼عDB󣬹ϲ˶
  MapEventڴͼÿƶܻ
  ʰȡȡ
  䴥ʾΪ
  PlayEffect 8Selfģʽ㲥ֻ͸Լȥ@OnPlayEffect
  װսʿܵȼЧδЧ
  жָܼжʱ
  ѥмʴƷ


Ϸ
  ϸƷʹÿ
  ӢٴٻܲԶҩ

ͻ
  ĸ汾װֳ֧ƺ
  ڹӿٿܿأɷֹܣ
  ڹӵǽЧ
  װֵɸʾٷֱȷţ׸£
  һ˹С
  һرտͻ
  һʿԱ߿߷ħʦŻλ
  һѰ·ڴй©
  һ·ģʽʺ϶ǽͼ
  һʰȡƷ
  ŻͨѰ·X·
  Сͼ(С)Եȡ
  ŻԶҩ򣬲ҩ
  Żٹħ߾
  ̯زȱͼ
  һԶʰȡ
  ڹұС֤ʧ
  һʱ̫¿
  һĿ˲֮տ






2021/4/4	ȫ
---------------------------------------------------------------------------
M2
  Żmysqlģ߳
  Żͼ̨߼
  ŻӾ߼
  иʳ
  дҴ浵ÿ2000浵ֹDBSñڴ
  ޸Ϊ15000->65536
  ܸõĵƷ
  ŻԶʰȡ߼
  ̿
   
  NPCֳչΪ14->32
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1ʹDBCommanderȰmonster.dbݵݵı
  2ʹùHeroDBConvertor.exeתmonster.dbչֳȣ
  3ʹDBCommanderµmonster.db벽1ݵıʱƾչ32ֽ
  4NPCƸֱnpcs.txtmerchant.txtı༭
  5硰ˡΪֺܳĵ\<ϵ>
  6зļҪӦġ\Ϊ-
  7CustomMonNameColors.txtԶɫĹȫʾ¿ͻˣ
  
ͻ
  ʬʱĽЧ
  鿴˷ʾ
  ʱĳȾ˳
  ʱװڷ⣺stditems.dbʱװshine>=100Ӧdata\~wfashionshine.wzlļÿ50ͼһЧЧͼƬ뱣shine=1000~49ͼƬshine=10150~99ͼƬ
  սʿҲԶ
  ̿






2021/3/14	ȫ
---------------------------------------------------------------------------
M2
  ΪչDBSͨѶڴʱܷ
  װӵֿ˼˺ãٷֱȣͿͻף
  رշʱͷAcceptorɶ˿ھĴ
  Żԡʼҽгģ̵̨߳Ч
  ȥNPCԪϵͳ
  Ӣ۷ʹȫģʽ
  !setupStrictWeaponUpgradeResult=1ʱϸߵĬ0
  !setupMultipleTitleProperties=1ʱֻҪһƺţƺԶЧĬ0
  ϷؽԺͷħ
  ޸killSlaveNameΪǿɱ
  żиٹ⣬׸£

  Ż
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ͷNPCRANDSERIESSKILL		// Ҫ
  ⼼ܼCDʱ
  ܼʱ䲻ȷ
  ʮһɱЧҪ׿ͻ
  ʮһɱ˪Ⱥ֧ǿЧ
  ҰײӰЧͨܶ
  Ч
  似Ч
  ŻսʿӢʱ
  ӢȺĿ겻ȫ

  Ӣ֧3ܣӢʮһɱӢ۱˪ȺꡢӢ֮
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  magic.dbƶӦ＼ܣǰϡӢۡdescrдϡӢۡ
  ͻ˿ͨ ڹ->->Ӣ⼼ܲ ѡ֣PK
  
  չҪ׿ͻˣdbжҵAniCountӦԴ
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  4..11	ͨȡhair2.wzlȡcbohair.wzl
  12..14	ͨȡhair3.wzlȡhaircbo3.wzl
  15..62	ͨȡhair4.wzlȡhaircbo4.wzl
  63..127	ͨȡ~hair5.wzlȡ~cbohair5.wzl		// ԡ~ͷԶԴ

DBS
  ڴʱܷ⣬

¼ͻ
  ֵֿ֧˺
  ƲּЧ
  ֶ֧չ
  Ƶ¼ȡб2бȡʱԶȡ¼Ŀ¼µбļļ֧֮ǰļܣ
  ¼õƷбֻ1ʱͻ˽ͷlsDefaultItemFilter.txtбԶı
  żи⣬׸£






2021/2/21	ȫ
---------------------------------------------------------------------------
M2
  ŻIOCP߼ڴռ
  ȥM2ķٹ
  װֶ֧ҡġơʱװλãҪ׸¿ͻ
  ָMapEventƶһ·ݰ汾ȥ˹ܣ
  Ȩصģʽʽ1/3 Ʒ1|Ȩ1,Ʒ2|Ȩ2... 1 $GAMEGOLD ? 1 -1		// 1/3Ȩص㣬ο֮ǰȨص˵
  ߺDBSͨѶЧʣڴռ
  ˡӢ۵ǻ꼼֧ʹmagic.dbdelay()ͷżԭ֧
  Ż˲ɢЧ
  ̯ʱCheckItemЧ
  ȫصƷ־ʹصƷ־
  ӢʹƷŻ¼־޸ΪӢ
  Ʒ־б޸ĺʵʱЧ
  װˢ²ڴй©
  Npcs.txtMerChant.txtNPC¼ؿʵʱЧ
  չֿСΪԭ3135mir.dbҪʹúϲתʹãȫ׸£lui.pkgMySQL汾Ҫתݡ
  
  ¾۹ּܣ79;ڰ֮צ;4;42;3;15;4;20;0;0;0;42;50;44;100;46;200;50;400;55;800;60;1600;66;3200;72;6400;79;12800;86;25600;94;51200;103;102400;113;204800;124;409600;136;819200;15;550;0;0;
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  !setupMagAssemblyMonsTimeǼͷżʱ䣬Ĭ15
  
  
  equallargesmallisbitsetֽ֧Ƕױ磺
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  #act
  mov M80 12345
  mov S14 M80
  #if
  equal <$STR(S14)> 12345
  #act
  SendMsg 7 ȷ
  #elseact
  SendMsg 7 
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ӼǷڰ̯NPCIsMarketStallOpened
  #if
  IsMarketStallOpened
  #act
  sendmsg 7 ̯...

DBS
  ߺM2ͨѶЧʣڴռ

ͻ
  ֧װλõչ
  ȫ͡˲ƵЧ
  Żƶ

΢˷
  ٻڴռãЧ






2021/1/29	ȫ
---------------------------------------------------------------------------
M2 Ż߼
ͻ
  ΢¿ٲʾСͼ
  򿪲ֿƷб󣬿ʹCtrl+Ҽٴ桢ȡֿƷ






2021/1/13	ȫ
---------------------------------------------------------------------------
M2 ID=72ǷɵƷϿDoFlyOnItem=0Ĭ0رգ1
   1229SetAbilityGMָ
   MonGen.txtеˢµˢģʽʧЧ
   ȥ󷨹ܣ
   ֵ$LUCKPOINTӢ$H.LUCKPOINT
   Զ̽űȫ£
   1) ϴԶ̽űʱҪ֤룬⵷ң˹ҪһȷȨ룬ҪϵԱѻȡṩ롢Զ룩Զ̽ű׸¡
   2) ӽűϴбRemoteScriptFilters.txt޸Ĵı¼NPCɣ÷RemoteScript.iniе
      BlacklistMode=true	// ģʽ(Ĭ)	беNPCʹáءʽأбеNPCʹáԶ̡ʽء
      BlacklistMode=false	// ģʽ		беNPCʹáԶ̡ʽأбеNPCʹáءʽء
      бĿĸʽNPCĿ¼_NPC-ͼţĬϻɼӣбο
   3) Զ̽ű£֧ûʿƣʽͱдʽġԶ̽űͲ.7zġ˵.txt
   4) RemoteScript.iniûUserNameûʿƣʽ
      Host=127.0.0.1
      Port=8800
      # ĬûdefaultӵȨޣʾñȽϸӵ
      UserName=default
      # Ĭbluem2
      Password=bluem2
      # Զ̶ȡİ汾
      ServerVersion=Ѫ_V1.0
   5) Զ̽űԶ̽űҪ׸£






2021/1/1	ȫ
---------------------------------------------------------------------------
M2 ¼NPCǱ־ô
   Npcs.txtҲ޸ĺ¼أ֮ǰֻ֧Merchant.txt
   ȫַƳΪ1024
   ӱ$CURITEMINDEXǰƷID
   ӱ$ITEM(NN)ҪչʾƷNNΪƷIDͻָƷͼչʾӣҪͬʱ¿ͻ
   [@PickupItem]<$PARAM(3)>޸Ϊ
   ˵¼MapQuestű
   NPCűʶ
   ƷʦӢ
   ħӣӻܡǿ˺⡢ڹ˺ أĬϹرգںӼʴ

ͻ
   ޲NPCԻͼƬ
   Իȵװʾ
   ֧SetAbilityЧҪЧļAbilityEffects.txtļŵdataĿ¼~ReloadAE ¼ļ
   Իװʾλã֧[Ctrl+м]鿴ӶԼֽ

NPCűԶȫ#IF磺
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[@]
;Զڴ油ȫ2䣬޸Ľűļ֮ǰӲִSetRandomNO
;#if
;true
#act
SetRandomNO 10000

#if
compval <$RANDOMNO> < 1000
#act
sendmsg 3 صȽ<$RANDOMNO>
#elseif
compval <$RANDOMNO> < 7000
#act
sendmsg 7 <$RANDOMNO>
#elseact
sendmsg 7 лл<$RANDOMNO>



չSetAbility5ЧididӦAbilityEffects.txtĿЧ
οAbilityEffects.txtļҪڿͻ˵dataĿ¼ʽ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;ID(1~65535Ҫظ) WIL ʼͼƬ ֡ ֡  ѭ(0/1) Чģʽ(0/1)
1 Prguse2 110 15 80 Wav\powerup.wav 1 1
2 Prguse2 90  19 80 Wav\powerup.wav 1 1

űʾ	// һAbilityЧ
SetAbility 51 80 15 "" 1
SetAbility 51 80 15 "" 2
SetAbility 51 80 15 ĳbufferָ 3


QFӹ伫Ʒ[@MonDropItemDown]ƷָHintItemList.txtдڵƷҪͬʱ¿ͻ
ʱֵ֧ı<$PARAM(0)>:ֶ(0/1) <$PARAM(1)>:Ʒ <$PARAM(2)>:Looks <$PARAM(3)>:ƣ<$PARAM(4)>:ͼ
<$PARAM(5)>:X <$PARAM(6)>:Y <$PARAM(7)>:ƷID <$PARAM(8)>:Race(1Ӣ60)
1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[@MonDropItemDown]
#act
; 漸ΪʾΪһϢ̫ܲ׼ȷ
mov MDropItemID <$PARAM(7)>
inc SMonDropDownItems <$ITEM(MDropItemID)>
DelayGoto 64 ~MonDropItemDown

[~MonDropItemDown]
#if
compval <$STR(SMonDropDownItems)> ! ""
#act
SendScrollMsg <$PARAM(4)><$PARAM(3)>䣺<$STR(SMonDropDownItems)>(ƷͣƯ) 151 16
mov SMonDropDownItems ""

2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[@ߺ]
#say
ȷҪߺȵƷɺ<ʼߺ/@ʼߺ>ʼ\ \</@back>   <ر/@exit>
#act
QueryItemDlg ߺȵƷ @ShowMyItem 0

[@ShowMyItem]
#act
GetDlgItemId MShowItemID
inc SShowItems <$ITEM(MShowItemID)>
delaygoto 100 @ߺ

[@ʼߺ]
#if
compval <$STR(SShowItems)> ! ""
#act
SendScrollMsg <$USERNAME>Ʒ<$STR(SShowItems)>(ƷͣƯ) 151 16
mov SShowItems ""
close

3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[@showItems]
#act
SetDlgItem 
FormatStr %s <$DLGITEMSHOW>
SetDlgItem ŭն
FormatStr "%s   %s" <$CALCRESULT> <$DLGITEMSHOW>
SetDlgItem 
FormatStr "%s   %s" <$CALCRESULT> <$DLGITEMSHOW>
SetDlgItem ң
FormatStr "%s   %s" <$CALCRESULT> <$DLGITEMSHOW>
#say
װ<$CALCRESULT>\ \</@back>   <ر/@exit>



MapQuestʰȡļMapQuest.txt
ʱֵ֧ıͬ
ƷĽɫ߻ʧɫΪգһƷʧʱȹʧʱ䳤

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;ͼ		ж	ɫ			Ʒ		ִļ
3		[123]	0		/		ľ		QPickup1			// QPickup1ָMapQuest_defĿ¼µQPickup.txtű
3		[123]	0		*						QPickup2



Զ̽ű
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1) ɹRemoteScript.dllʹԶ̽űܣ
   RemoteScript.iniǲļУ
     Host=127.0.0.1					// ԶNPCűIPַ
     Port=8800						// ԶNPCűĶ˿
     Password=bluem2				// 
     ServerVersion=Ѫ_V1.0	// İ汾Դ˱ʶϴԶ̽űݣɶ̬޸
   ҪԶNPCűѡ ˵--ʹԶ̽űѡ¼NPCԶ̷NPCű
   Ҫ֤Զ̽űܺͨѶ˳Զ̼NPCűٶȻ
   Զ̼ؽű󣬱ؽűļݿ

2) Զ̽űμRemoteScriptServer.7z
   ޸Ĳļconfig.confԴﵽԼҪҪ޸еĶ˿ں룬οѹеġ˵.txt
   ޸꣬У.bat 

3) ɹRemoteScript.dllʵ޸Ľű֮󣬿Ե ˵--ϴűݣ
   ʹרŵĲԷ޸ġϴűͬһԶ̽ű棬ֻҪ¼NPC״̬

4) 漰ļѹĿ¼ͨ-ԶNPCű Уעȷԣ򽫵濨






2020/12/17	ȫ
---------------------------------------------------------------------------
M2 ̯иʳִϢ
   ϸ汾ҼƴӢۼ
   UPGRADEITEMEX ĵ71ʱʲֱӸ






2020/12/15	ȫ
---------------------------------------------------------------------------
M2 TAKEƷ¼ܲȷ
   ¼ؼDB󣬲ֲܵNPCʧЧ⣨ԭµ¼ɽ
   ϻμԷ⣡
   ׷Ĵ̼ܵ8԰ٷ֮ƶ
   !SetupӲQuitGameWideTriggerΪ1ʱǰȫҲԴ@OnLogout_OffLinePlaying@OnLogout_SoftClosingĬ0
   ӱ$SERVERIDӦ!setupserverid
   ӱ$ONLINEHUMNUMǰ
   ӱ$OFFLINEHUMNUM'ǰ
   ӱ$TOTALHUMNUM'棩
   NPCResetLoopCounterýűѭһЩѭ϶ĽűҪõ


ıȨصģʽʽ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1/99999998 Ʒ1|Ȩ1,Ʒ2|Ȩ2,Ʒ3|Ȩ3... 1 $GAMEGOLD ? 1 -1
  ˵
  1) 99999998 ʾʹȨģʽ
  2) ȨǷ0֣һƷڴĿƷеĵռȣԽԽ
  3) ģʽضֻһƷ
  4) ʺϵ


NPCJSONJSONַʽJSON ʶ|ʱ   ֵ
ʹVSCodeװjsonչjsonʽ鿴༭jsonļ
ϲοhttps://www.runoob.com/json/json-tutorial.html
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
壺
1) ʶɱָһΨһʶ|źǴ˶Ĵʱ()-1ʾã
дʱĬ180룬180󣬴˱ʶJSONᱻͷš

2) ¼֣
L  ļأҪƵʹã⣡
S  浽ļҪƵʹã⣡
A  
E  ֵ
C  
D  ɾָƵӽ
P  ַ
O  򣬸ʽ
   1) JSON ʶ O Ƿ(0/1) Ƿӽ(0/1)
Y  ƣʽ
   1) JSON ʶ Y Դʶ 0 			// ӡԴʶһݵʶ
M  ϲʽ
   1) JSON Ŀʶ M Դʶ 0 		// 0 ظظĿԡĿʶΪ׼Ĭ
   2) JSON Ŀʶ M Դʶ 1		// 1 ظظĿԡԴʶΪ׼
   3) JSON Ŀʶ M Դʶ 2		// 2 ظԴʶĿ׷ʶ

3) ƣַ

4) ֵ¼ͣ
		12345678
ַ		ַͨ
ֵ		True|False
		1.367
ʱ	"2018-11-12 06:12:11"  "2018-11-12T06:12:11.123".ָǺ
		["string",100,null,true,false,123.4]
Ӷ		{"name":"ObjectName","value":"ObjectValue"}
ע⣺ֵòҪпոոʹ˫""ΧԱʾΪһ

5) ȡֵı
<$JSON(ʶ)JSON>				// ̶ʽJSONַ
<$JSON(ʶ)FORMAT>				// ̶ʽJSONʽַУ
<$JSON(ʶ)path>				// ĳ·µֵ


#act
JSON myjson C
JSON myjson A  12345
JSON myjson A ַ ַ...
JSON myjson A ֵ True
JSON myjson A  2.532
JSON myjson E ʱ "2018-11-12 06:12:11"
JSON myjson E  ["ַ",100,null,true,false,123.4]
JSON myjson E  {"name":"Object_Name","value":"Object_Value"}
sendmsg 7 myjsonʽַǣ<$JSON(myjson)FORMAT>
; һλ0ʼ
sendmsg 7 顱ڶλõֵǣ<$JSON(myjson)[1]>
; 浽ļ
JSON myjson S ..\QuestDiary\example.json

; ַ͵JSON
JSON myjson P {"myobj":{"name":"object1","subobj":{"name2":"subObj2","name1":"subObj1","int2":123456},"array":[1,3,4]},"array":[1.23,200,300,{"name":"ַ"}]}
sendmsg 7 ȡֵ<$JSON(myjson)object.subobj.int2>

JSON myjson D array[3]
JSON myjson D myobj.subobj[1]
JSON myjson D myobj.subobj.int2
sendmsg 7 ɾĽ<$JSON(myjson)FORMAT>

; ϲ
JSON myjson1 P {a:10000,b:200,c:"id"}
JSON myjson2 P {a:"str",d:500,e:7002}

; ظظĿԡĿʶΪ׼Ĭ
JSON cpyjson Y myjson1
JSON cpyjson M myjson2 0
sendmsg 7 ϲ0<$JSON(cpyjson)JSON>

; ظظĿԡԴʶΪ׼
JSON cpyjson Y myjson1
JSON cpyjson M myjson2 1
sendmsg 7 ϲ1<$JSON(cpyjson)JSON>

; ׷Ŀظ
JSON cpyjson Y myjson1
JSON cpyjson M myjson2 2
sendmsg 7 ϲ2<$JSON(cpyjson)JSON>

; ֵ
JSON myjson E object.ֵ.int 87654321
JSON myjson E object.ֵ.float 5.76
JSON myjson E object.ֵ.string abcdefg...
JSON myjson E object.ֵ.datetime "2022-11-22 11:22:33.123"
JSON myjson E object.ֵ.Ӷ.int 12345678
JSON myjson E object.ֵ.Ӷ.ishum true
JSON myjson E object.ֵ.Ӷ.float 5.76
JSON myjson E object.ֵ.Ӷ.array [12345,1.76,false,string,2022-11-22T11:22:33.123]
sendmsg 7 ֵ<$JSON(myjson)FORMAT>

NPCCheckJsonʽCheckJson ʶ  ʶ||· ѡ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
壺
1) ʶɱָһΨһʶ

2) ¼֣
X  жǷָ·ӽ㣬ʽ
   1) CheckJson myjson X path
N  жǷָӽƣʽ
   1) CheckJson myjson N name ǷǶ׼ӽ(0/1)
V  жǷָӽֵʽ
   1) CheckJson myjson N value ǷǶ׼ӽ(0/1)
E  жJSONǷͬʽ
   1) CheckJson myjson E myjson2


#if
true
#act
JSON myjson1 P {"myobj":{"name":"object1","subobj":{"name2":"subObj2","name1":"subObj1","int2":123456},"array":[1,3,4]},"array":[1.23,200,300,{"str":"ַ"}]}
JSON myjson2 P {"myobj":{"name":"object1","subobj":{"name2":"subObj2","name1":"subObj1","int2":888888},"array":[1,3,4]},"array":[1.23,200,300,{"str":"ַ"}]}

#if
CheckJson myjson1 X myobj.subobj.int2
#act
sendmsg 6 ·ڣ<$JSON(myjson1)myobj.subobj.int2>
#elseact
sendmsg 5 ·

#if
; һ㣬ΪarrayĵĸǷ
CheckJson myjson1 X array[3]
#act
sendmsg 6 ·ڣȡֵһ<$JSON(myjson1)array[3][0]><$JSON(myjson1)array[3].str>󣩣<$JSON(myjson1)array[3]>
#elseact
sendmsg 5 ·

#if
CheckJson myjson1 N name2
#act
sendmsg 6 1)
#elseact
sendmsg 5 1)

#if
CheckJson myjson1 N name2 1
#act
sendmsg 6 2)ƣӽ㣩ֵǣ<$JSON(myjson1)myobj.subobj.name2>
#elseact
sendmsg 5 2)ƣӽ㣩

#if
CheckJson myjson1 V 123456
#act
sendmsg 6 3)ֵ
#elseact
sendmsg 5 3)ֵ

#if
CheckJson myjson2 V 1.23 1
#act
sendmsg 6 4)ֵӽ㣩:<$JSON(myjson1)array[0]>
#elseact
sendmsg 5 4)ֵӽ㣩

#if
CheckJson myjson1 E myjson2
#act
sendmsg 6 5)
#elseact
sendmsg 5 5)






2020/11/19	ȫ
---------------------------------------------------------------------------
M2
   NPCԱʶ
   ʦӢ۳
   54-58NPCܴԽ		// 54-58NPCɵMapInfo.txtŵ㣬ȥֱƶͼ 
   壬ӹﱻħʱͣٲ
   ޸ĺϻŭֵNPCUnityEnergy +/-/= ֵŭֵֵ200
   ޸ĺϻNPCUnityPowerRate +/-/= ֵٷֱȣĬ100$UNITYPOWERRATE ʾǰֵ

ͻ
   ƴNPCЧ54-58NPCʾ


   Żϲٶȣֶ֧ϲ






2020/11/09	ȫ
---------------------------------------------------------------------------
m2 ӢڰȫȫĿ
   Ӣ˲Ŀ£Ӣ˲ƵߺĿ

¼ͻ
   ¼бص֧HTTPSЭ
   ¼ܲϸ
   ¼½ʾȷ
   ͻȥһϢֹ






2020/11/03	ȫ
---------------------------------------------------------------------------
M2
  ɫ󣬲ɷΧʰȡ
  ˵ؼNPCNPC
  ҰײʱҲԼЧ
  ɫ߸պøƷʧƷ
  +2+3̫
  ϸ汾Сֱƶٶȱ
  ¼عݿ⣬ˢµб(֮ǰ汾Ҳ)
  ˱ʵĿ걬ʼ
  Ӱȫ		// ȫ⹥Ŀ꣬Ŀȫ󻹻
  ӲBulkPickupDieDropItems=0		// ǷʰȡƷĬ0
  չʰȡƷбPickItemRule.txt2ʾʹ÷Χʰȡ磺ľ 3  // ʾֻܶӳʰȡҲʹ÷Χʰȡ
  ŻڲϢϵͳ				// Ϊļ崫͡PK
  1025Rece=174ĹﱻԲָ
  ŻֿƷ
  ʦʿӢλŻ
  ιٴˢ¼ܶʧ

ͻ
  ڹˡּװ
  ڹԶ˳
  йٶShift+
  Чʧ

RunGate
  ϸ汾˲ƺ󹥻ٶʧЧ
  ϸ汾һСbug






2020/10/18	ȫ	ע⣺θ£ϷطҪµ
---------------------------------------------------------------------------
M2
  1ſٶȣ󹥻ٶֵɴﵽ11780ӽ٣ٶȿRungateơ
  2Ӣۡ˹ٶȱʣϷ->Ϸٶ->װٶȣ60
  3Ӣۡٶƣ->Ӣ->Ӣ٣80
  4ʦʿӢ۶bug
  5սʿӢɱĿԣ߷ʦʿɱԣ֮ǰЧнϴ
  6ҲٿӢ۵Ӧ

Rungate
  1жϴٶȡħٶȡƶٶȸȷ
  2ڵĹٶȣÿ3ٶȵ+1ٶȣٶȵӣ
  3ڹٶȣҪµ
  4ħٶȣҪµħ
  5ƶٶȣҪµħҽԭÿ2Ч޸Ϊÿ1Ч
  6һClientMoveFrameTimeͻÿ֡ļĬ95ŽΪ120ƶԻ
       ı׼ƶǣClientMoveFrameTime * 6
       ƶٶȵڣClientMoveSpeedRate=0õClientMoveFrameTimeıƶٶȡ
  7һOpenSpellSpeedRate=1ʱĹٶҲʹħʱãЧûͨԣ0ر
  8٣ItemSpeedCompensate=1ÿܸٶȵļ
  9Ϸȫٶȵڰ		// ЩӰең͹ٶȵ
       OpenClientSpeedRate=1
       ClientAttackSpeedRate=0
       ClientMoveSpeedRate=0
       ClientSpellSpeedRate=0
       ClientMoveFrameTime=100
  10οļϷٶȿƲο.txt

ͻ
  ͷ̫мʿھֶ
  ſٶȣױг






2020/10/10	ȫ
---------------------------------------------------------------------------
M2
  NPCClientFeatures (0~99) رջ(0/1)	// 0رտͻԶһܣĿǰֻ0ãͻ

  չʹøMSڳ淶Χ(0~99)ʱԶչMSַַĳñ20ֽڣעSUMչMڣM99999999
  磺Mov M1 12345Mov Sַ1 ַ1ʾ<$STR(M1)><$STR(Sַ1)>
  
  չʹȫGAڳ淶Χ(0~99)ʱԶչرտɱ棬עSUMչGڣG99999999÷ͬϡ

  ӣڵͼEַFͼִָڵĵͼرղ棬עSUMEڣE99999999÷ͬϡ

  ȫֱٱ!setup.txtΪ浽QuestParams.ini

GameCenter
  ȫֱϸ

ͻ
  ֧ClientFeatures		// ״˰汾






2020/9/24	ȫ
---------------------------------------------------------------------------
M2
  -Ϸѡ2-׿ӽֹ/ҿ
  صƷԶصֹ
  չ DropItemMap ͼ X Y Χ Ʒ   (0/1)	// X=-1ʱƷ0ҹ=1ʱƷִнű
  չ PetPickupItemRange Self Χ(0-15)	// ǹһʱ(OfflinePlayEx)԰趨ΧʰȡƬͻ˱ף

ͻ
  ֧PetPickupItemRangeõķΧʰȡ		// ״˰汾





2020/9/16	ȫ
---------------------------------------------------------------------------
M2
  չTake Ʒ1|Ʒ2|Ʒ3...  P0 1	// Ĳ=1ʱȡ߼ƷװP0Ҫʱ""
  QChatMissionűֲֿ֧
  Ӣ۴ضƷbug






2020/9/2	ȫ
---------------------------------------------------------------------------
M2
   ϸ汾տĿˢʧЧ
   طsetsockopt error
   MonGen.txt ĿӼеX/еYϼˢʹãMobPlaceʽͼ x y  Χ  ʱ ˢ(0~100) ˢģʽ(0~1) еX еY

LoginSrv
   ˵¼طùܣж·ʱҪʹͬtitle






2020/8/30	ȫ
---------------------------------------------------------------------------
M2 صƷ־м¼
   ʿٻųRace=211Ĺ
   ̶ӰսС
   ʹǿܵٻٶȱ
   ŻƶЧ






2020/7/30	ȫ
---------------------------------------------------------------------------
M2 ʹ@mapinfoûмGMȨ
   ͽܳʦ

ͻ 
   ڹò

¼
   õͼСƴ1M޸Ϊ16M






2020/7/22	ȫ
---------------------------------------------------------------------------
m2 ӽáýɫNPCEnableCharacter ɫ 0/1		// 0ã1
   ӶɫҪһӶƣDBݣName=Ӷ,StdMode=41,Shape=35,Looks=1132		// 桢ͻˡlui.pkg׸






2020/7/15	ȫ
---------------------------------------------------------------------------
RunGate жʱתӶзֿ
dbs ɫǰͼŻ渺أ
m2 ޸״̬ıܻᵼ¿ͻ˱
   ָgotoѭ
   SendMsg 8-10л죬11ֺ12죬13˽Ϣ
   ʱԶλãChangeServerRandPos=0ʱرմ˹
   Ӽ˺Ϣ
     $EMAIL				// 
     $BIRTHDAY			// 
     $PHONE2			// 绰
     $MOBILEPHONE		// ֻ
     $QUIZ				// 1
     $ANSWER			// 1
     $QUIZ2				// 2
     $ANSWER2			// 2

   չMOD			// ȡģ㣬ͬINCDECDIVϵ
         calcval ȡģ㣬%
         ints ޸Ϊ޷ûи42ڶ
         take ƷдƷidȡ߸idŵƷ
   
   ӻȡǰUnixʱ		// Unixʱеٿ˽
     $UNIXTIME
     #act
     ints 22 = $UNIXTIME
     ints 22 + 600				// 41ʾ޷ż㣬޷32λֵԼ42ڣз()32λֵԼ21

     #if
     compval $INTS22 > $UNIXTIME
     #act
     calcval $INTS22 - $UNIXTIME
     sendmsg 7 $CALCRESULT
     calcval $INTS22 ~ 0			// ~ţʾ$INTS22תΪͨʱʽר÷
     sendmsg 7 $CALCRESULT
     #elseact
     sendmsg 7 ѹ

     NPCFormatStrʽַ$CALCRESULT
     #act
     ; ˫һڲпո£ʹд˿ոҲᱻΪһ
     ; 1жٸ%sҪӦĲ9%s
     ; ʽ%-32sУ-ʾ룬-ĬҶ룻32ʾַĿȣ-%ŵĺ桢32ǰ
     FormatStr "%32s %-5s %s %s %s %s %s %s %s" Ҷ һ       
     mov s1 $CALCRESULT
     FormatStr "%-32s %5s %s %s %s %s %s %s %s"  һ       
     #say
     <$STR(S1)>\<$CALCRESULT>\<ر/@exit>   </@main>


!setup.txtȫƷԿƲ
19
  necklace19SpecAddRate				// Լ
  necklace19SpecAddValueRate		// 
  necklace19SpecAddValueMaxLimit	// ߵ

23ָ
  ring23ACAddRate
  ring23ACAddValueMaxLimit
  ring23ACAddValueRate
  ring23MACAddRate
  ring23MACAddValueMaxLimit
  ring23MACAddValueRate

ͷ
  helmetACAddRate
  helmetACAddValueMaxLimit
  helmetACAddValueRate
  helmetMACAddRate
  helmetMACAddValueMaxLimit
  helmetMACAddValueRate






2020/7/9	ȫ
---------------------------------------------------------------------------
m2 ¼ؽűڴй¶
   СӶҪڽűͷϣ(@@StallMarket@@CreateMercenary)Ӧǩ[@@CreateMercenary][@@StallMarket]
   磺[@@StallMarket]
         ӭʹð̯У\ \</@main>   <ر/@exit>

         [@@CreateMercenary]
         ǩԼӶԼֽ\ \</@main>   <ر/@exit>
         
   ĽҽмϽ(mysql汾)
   
   QFӽҽвļ(mysql汾)
   [@OnUsingCoinMarket]
   #if
   checklevelex < 10
   #act
   APPROVE 0		// 0ܾ 1׼Ĭ׼ʹýҽ
   MESSAGEBOX 10ʹýҽС






2020/7/6	ȫ
---------------------------------------------------------------------------
M2 ȫӢ۶SetAbility 24262744֧
   NPCVerifyKeyCode <$TOTPKEY> <$STR(M5)>		// ֤֤룬1֤Կ2֤룬÷ԲοӶʾű.txt
   б
   
LoginSrv -ϵͳ ӣ
   ½޸룬½ܱʴĲ
   ֤֤ѡ
   ʱĽʱЧֵ90

LoginGate
   ӳʱԳ90
   롢ܱƵȼ
   롢ܱʱIPһʱԶ

¼ͻ
   ¼µĬUI
   ¼ֲ֧pngͼƬΪͼƯķķε¼
   Żӿ¼Ŀ¼ٶ
   бзбͰťӵԶ壺		// Ҫı
     ;Ҫб http://www1.xxxx.com/logintool/serverlist.txt
     ;б http://www2.xxxx.com/logintool/serverlist.txt
     ;̳ http://www.xxxx.com/bbs.html
     ;ͷ http://www.xxxx.com/kf.html
     ;֧ http://www.xxxx.com/pay.html
     ;ע˺ http://www.xxxx.com/newid.html
     ;޸ http://www.xxxx.com/chgpwd.html

   űַ֧ά룬磺		// У888ʶã÷ο֮ǰPICչ
     ɨiPhoneƽ̨΢֤APP\<pic=https://apps.apple.com/cn/app/microsoft-authenticator/id983156458,888>\ \
     ׿΢֤ڱθµĸУļcom.azure.authenticator.apkԼԷվṩӵĶά
     ע΢֤иôѡƱݣֻװϵͳ߶ˣ֮ǰƶ˵Ϣڣֻԭı






2020/6/28	ȫ
---------------------------------------------------------------------------
M2 !setup.txtӲItemOwnershipHintsʰȡƷʱǷʾɫĬϹر
   ǩԼԼɲ鿴װͼܵϢ
   ̯λƷ10չ15
   չӶQUERYMERCENARIES 5 1 0		// 3Ϊ1ʱʾ˵ؽɫ
   ̯λϵͳ
     ̯Ʒܡࡢȹܣڽ̯λƷ
     UIĽű<򿪰̯/@@StallMarket>
     !setup.txtStallMarketCharge޸ϼ̯λʱÿƷѣĬ100

DBS ɫ
  СӶϵͳ֧

ͻ
   ̯λйܣlui.pkgM2
   ǩԼԼɰCtrl+м鿴װͼܵϢ
   ഴĽɫ2Ϊ8






2020/6/18	ȫ
---------------------------------------------------------------------------
M2 ӶͨѶϢ޸ģҪͿͻ׸
   MAIN_FUNC_BTN_SHOWִֻ0-10
   沿ֵط鳬21ںʾΪ
   @StdModeFuncXXXXԳ255ʽXX = Reserved * 256 + AniCountReserved=99Ѿռ(ʹһεһ־)Ҫʹøֵ
   мʵƷʾ⣬ʵѾ
   ʱ
   NPCMAIN_FUNC_BTN_CAPTION  ť
   ׶ЧʧЧ
   ɳͿ˳ʾ
   ɳڼNPCʧ
   
ͻ
   0ֵʾ
   ListViewؼʾ
   ӶͨѶϢ޸ģҪ׸
   мʵƷʾ
   ޱмʵ±bug
   ׶Ч
   ǽŲΪʬ






2020/6/13	ȫ
---------------------------------------------------------------------------
M2 BotAutoWearEquipments.txt	// 򵥵ļʰȡԶб״к鿴ı˵
   ٹ
   Żֹ㲥Ϣ
   ߺϲʱָ֧Intsֵ
   
   Ӷϵͳܣ
     ԽɫѹǩԼ״̬ԼֽǩԼԼֽڴ½ɫʾűӶʾű.txt	// Ҫ׳M2DBSͻˡlui.pkg
     ԼֽDBݣxxxx,ӶԼֽ,49,0,1,0,0,0,1581,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
     ־ѯ߿Բѯļ¼
     @make ӶԼֽ 1 id    // ڲӶԼֽʧidָӶԼʱ¼M_xxxеxxx()






2020/6/9	ȫ
---------------------------------------------------------------------------
M2 SetAbilityڴй¶⣡
   ϻЧȫһЩЧҪ׿ͻ˸
   ʹٴָЧ
   гӢмջ
   BotNoAttackList.txtùһ˲бʽ 1	// 1һ˲
   ˿Դ[@PickupItem][@HeroLogin]
   ӱӢĿʾӢ忪أĬϿ
   ֵͼмʽڵ㵼¶
   Լټٹ
   ȡصƷʱԶص
   Ӣ۱ɱػ
   SetAbility 49 1 99999999	// ֹʹ
   ҰײЧڽ޸Ϊ0
   [@KillPlayXX][@KillPlayMonXX] ֱ֧
     $PARAM(0) ɱĹ
     $PARAM(1) ͼ
     $PARAM(2) ͼ
     $PARAM(3) X
     $PARAM(4) Y
     $PARAM(5) ȼ

ͻ
   ϻЧȫһЩЧҪM2
   ͻΪ˳пӳ
   DBSδ£ظӽɫ
   ƶ
   ȡصƷʱԶص






2020/6/8	ȫ
---------------------------------------------------------------------------
M2 NPCDELFIREBURN ͼ X Y (1-8)		// ɾȦɾMobFireBurnˢĹMobFireBurnˢ5Ĺʧ
   ϸ汾ˢȦһʱ󱨴
   ڲȫ˲ּIDĹ¡ն͸ñ쳣DBСնPenetrateΪ0ɻָԭͬʱעǷнűüܵļѪЧ
   
ͻ
   ͷҲ֧΢
   ͻ·µclient.iniԶNPCǷΪ壬ݣ	// õ¼Զclient.iniͻĿ¼¼ɣĬϷǴ
   [setup]
   BoldNpcName=1
   ; ǷĬʾƺ
   ShowUserTitle=1
   ; עᰴť˺ŵվ
   NewIDUrl=https://www.xxxxx.com






2020/6/1	ȫ
---------------------------------------------------------------------------
M2 ӱ$MAPWIDTH$MAPHEIGHT		// ǰͼĿ
   NPCGuardPos x y Χ		// ü˵ػͷΧСSetupеmaxViewRangeXxΪ-1ʱȡػ
   ӣ
   ;ͼػ
   MAP $CURRENTMAP
   GuardPos $CURRENTX $CURRENTY 30
   $ATTINFO_SKILLID ּIDȡ
   ״̬˺
   ޸ϸ汾лս˫ɫ
   ڳʾ






2020/5/31	ͻ+
---------------------------------------------------------------------------
M2 1SetAbility ֵʱᴥQF[@SetAbility_XX]Թں󽫴[@ResetAbility_XX]	// ο֮ǰSetAbilityĸ˵
   2NPCPetPickupItemRange  Χ(0-15)		
      ԶʰȡΧΪHʱָӢۣΪSelfʱָԼһã*ָӢ۵гΧ0ʱرԶʰȡɽ½жʱ
   3NPCLockdown 1		// ɹƶħȣLockdown 0ǽ
   4صŻ//Ʒ£CPUռдƣ˹ּ
      ʵ!Setup.txtmaxviewrangexmaxviewrangeyԱӦֱʵĿͻˣֱΪ1615ӦĻ1212ɣСֵԽԼCPUռá
   5NPCFakePlayer 0/1	// 0߼ˣ1ؼ
   6NPCGuildStat л ͳҵȼ ͬ(0/1) P1	// ͳлP1лΪSelfʱָԼлᣬɽIsGuildMasterʹá
   7лԱһ༭˷
   
ͻ
  Ӣ۲ʬϽػbug
  ΢ȡļ
  ŻӷŻ
  ߺ̨FPS
  εϢbug
  лԱһ༭˷
  ţ쳣Ͽ£ѡ񷵻ص¼ٴνϷܵĵ¼֧֣ܲ
  ~history		// ʷ¼Ctrl+L
              ~clear		// Ctrl+K






2020/5/17
---------------------------------------------------------------------------
M2 1NPCEndGuildWar л1 л2	// лսʹͨ*
   2жϣ
   #if
   true		// checklevelex >= 0֮
   #act
   ...
   3ϸ汾MonDropRateĸĽ±ʼпɵʴ
   4Ż߼






2020/5/2
---------------------------------------------------------------------------
M2 չKick 1	// ִС
   killSlaveName *	// ɱӣԷ[@OnLogout_OffLinePlaying]ִУʵ߹һٴε¼߹
   ޸ MonDropRate ڱļ 1/xxx дҲã㹫ʽxxx/yyy / 100 * MonDropRateMonDropRate=200ԭʻһ
   ıĿȨŻᱬ






2020/4/13	ȫ׳׸
---------------------------------------------------------------------------
M2/Client սСʱƣĬ0룬ڲ-ʱ		// PKֲ
Client ԶһԶбλòȷ
ӱ$TIMESTAMPȡǰʱ䣬ʽ-- ʱ::룬CompValӶԴʱʽıȽ֧֣
   NPCָCalcVal ֵ1 (+-*/=) ֵ2ڱ$CALCRESULTУַʱĲֻ֧+-
   磺CalcVal $TIMESTAMP + 1ؽ$CALCRESULTʱ㵥λΪ룬
   ҪʱΪ֧ԶݱʱʽֶεãҲڷMySQL汾档
M2 ɱǴɱλҲкӷЧbug
Client Tiles,SmTiles,Objectsֵ֧99






2020/3/27	ͻ+΢˷
---------------------------------------------------------------------------
M2 εܵͷŶ
΢ òexpiry_time		// ӿгʱ()Ĭ43200






2020/3/27	ͻ+΢˷
---------------------------------------------------------------------------
Ż΢ٶȣ΢Сڿ
΢˷мδӱ±bug
M2 +̵۸쳣
M2 ٻӢʱԼżܼʱӢ
M2 սʿӢۼͷʱ׼ȷ
M2 չ Take/TakeW Ʒ1|Ʒ2|Ʒ3|Ʒ4...  P0	// P0ɾTAKEƷҪͽһ
--------------------------------------
M2 ϸӢ۴ȣĽӢٶȣϸӢ۸϶
֮ļӢ۵ĶҵĶ
Ӣ۸϶е㲻ȣʹ˼١






2020/3/20	׸
---------------------------------------------------------------------------
DBServerȥdbserver.dllĵ
M2 ÿڣ¹ıչʧЧ
M2 ᵼiniļظ
M2/Client ޸ǽ״̬Чʾ
޸ͻƷмʱ
ͻʾ+HP/MPʵʲ
ͻ˿ԶԶĿɳƷ
--------------------------------------
DBServer ļ忪أĬϿ
  ļĶдܣڴʱⲿ
  DBļܲ޷DBļGameCenterҲ޷ʵԶݡ
  ͨGameCenterԶݣԹرմѡÿɫݻ棬
  ܱ֤ܣҲʵԶݡ






2020/3/19	¼ + ͻ
---------------------------------------------------------------------------
¼ķбּ֧






2020/2/28	ȫ׳׸
---------------------------------------------------------------------------
¼/ͻ 
   ĽĿ¼ʽ
   ĬϷֱ޸Ϊ1024*768ԭ800*600
   ӢƵʹƷʹƷҲ			// M2/RunGate/ͻ ׸
   ƵʹҩƷʱֶʹƷƷʧ		// M2/RunGate/ͻ ׸
   ˫նʶbug
M2 ƷʻԭΪԭȶ1ķʽǲᳬߵƣ
   ϼ΢
   װֵ֧2048ףԭ255ף
   Ӱ/˫ն˿Чbug
   Ż·Ч
 ԭ






2020/2/20	ȫ׳׸
---------------------------------------------------------------------------
M2 ʱչſ۴Ҳ:
	1/x װ  $ (><=!?) ֵ ۳(۳) ſ۴(Ĭ0ſۣ1δҲ)
M2 Giveδˢ½ɫ⣬[ǻ]ΧʧЧ
M2 dbݵACþʹȼƣAC=0ʹõȼACӦСNeedLevelֵ
ͻ Ż΢ٶ

PLAYEFFECT չ޸ģ	// ҪM2/ͻ
--------------------------------------
PLAYEFFECT WIL X Y ʼͼƬ ֡  ѭ  ѭ(0/1) (""/All/Guild/ͼ)	
޸Ϊ
PLAYEFFECT WIL/X/Y ʼͼƬ ֡  ѭ  ѭ(0/1) (""/All/Guild/ͼ)	Чģʽ(0/1)
ע⣺WIL X Y -> WIL/X/YЧģʽ0ͨ1Чģʽ(Ĭ)΢ģʽµ~cui.txtԶԴ






2020/2/16	ȫ׳׸
---------------------------------------------------------------------------
ͻ֧pngwzlע⣺ʹpngΪͼƬزĿܻᵼ¿ͻԴ治
1wzlļWzlMakerߣֵ֧pngļʹpngwzlֻжӦ¿ͻ˲ż
	pngwzlʹô˹ߣЧѣwzlͻ˶ȡЧʲᵼܲǿĻ١
2ԶزбıڴĿ¼\data\~cui.txtʽ	// ĿǰӦƷЧ
	;ID(1~100)	ļ
	1		.\data\~beam.wil
	2		.\data\~beam_png.wil
	õ¼Զ¹Զ~cui.txtdataĿ¼
	Ȼʹ΢˼ɣ΢˷dataĿ¼ҪӦwzlļ
3ƷЧõCustomItemNameColors.txtʽչΪ	// ע⣺ƷЧͼƬlui.pkgãΪ֧΢ˣͼƬҲûƫ
	;ԶƷɫ͵ƷЧ
	;ʽƷ ɫ(1..255) ЧͼƬ ЧͼƬ ԶزIDӦ~cui.txtжID
	ħ 0 90 10 2
	֮ 0 90 10 1
4΢֧pngʽwzl
5GameCenter ֶ֧ʱ/طʱ֮ǰִGameCenterĿ¼BeforeStartGame.bat






2020/2/11	ȫ׳׸
---------------------------------------------------------------------------
M2 Ӣ֧˫ն/ӰӰֵƺϻ
Client ֧˫ն/Ӱ
LoginSrv ֤ۼ3βߣ׿ͻʾ
Launcher ״ʾֱڵǰĿ¼΢ģʽϷҪ״˰汾Ŀͻ
DataTool ֧ʦͽͽ






2020/2/10	ȫ׳׸
---------------------------------------------------------------------------
Client Զ尴ťչΪ40@MainBtnFunc_40 ť
M2 Ϊⶾ/ͷżʱӢҲⶾ/ż
M2 ޸ӢPowerRateʱ䵽˲
------------------------------------------
M2 A/SַNPCINS S1 λ(1~S1ĳ+1) ַ ظ(Ĭ1)
M2 P/G/D/M/I/HͱNPC
   ANDORXORNOT㣬CompVal֧(&)ȽϣȽϻɬѶһοأ
   0~31λĲͱȽϣSetBitUnSetBitFlipBitIsBitSetڶʾڼλ(0~31)
   Ըһint͵32أʡĿйزġ
// ANDORXORNOTCompVal ӣ
[@OR]
#act
OR P1 5				// 㣬1λ3λΪ11ǵ1λ4ǵ3λü鿴BINݣ
SendMsg 7 <$STR(P1)>

[@XOR]
#if
  CompVal <$STR(P1)> & 1
#act
  XOR P1 1			// 㣬1λΪ0

#if
  CompVal <$STR(P1)> & 4	// 㣬3λΪ0
#act
  XOR P1 4

[@CheckSwitchState]
#if
  CompVal <$STR(P1)> & 1	//  Ƚ
#act
  SendMsg 7 P11λֵΪ1
#elseact
  SendMsg 7 P11λֵΪ0

#if
  CompVal <$STR(P1)> & 2
#act
  SendMsg 7 P12λֵΪ1
#elseact
  SendMsg 7 P12λֵΪ0

#if
  CompVal <$STR(P1)> & 4
#act
  SendMsg 7 P13λֵΪ1
#elseact
  SendMsg 7 P13λֵΪ0


// SetBitUnSetBitFlipBitIsBitSet ӣ
[@SetBit]
#if
  !IsBitSet P1 22		// 22λǷر
#act
  SetBit P1 22
  SendMsg 7 P122λڴڿ״̬

#if
  IsBitSet P1 22		// 22λǷ
#act
  UnSetBit P1 22
  SendMsg 7 P122λڴڹر״̬

[@FilpBit]
#if
  checklevelex > 0
#act
  FlipBit P1 31			// л״̬<->л

#if
  IsBitSet P1 31		// 31λǷ
#act
  SendMsg 7 P131λڴڿ״̬
#elseact
  SendMsg 7 P131λڴڹر״̬


------------------------------------------
M2 NPCMakePoison (0~11)  һΪclearupʱ״̬ͣ0̶/1춾/3׻/4/5ʯ/6(ͬʯ)/7(ɥʧ)
M2 ӻȡSetAbilityֵ$ABILITIES0~100$TARINFO_ISSLAVEǷ
ӣ
[@SetAbility]
#act
SetAbility 50 20 900 ʯָܻ
SendMsg 7 20%ʵʯܣ15

QF
[@Attack]
#if
  CompVal <$TARINFO_RACE> ! 1		// 
  CompVal <$TARINFO_ISSLAVE> = 0	// 
  CompVal <$ABILITIES50> > 0		// Abilities50λֵ
#act
  SetRandomNo 100			// 100
#elseact
  break

#if
  CompVal <$ABILITIES50> > <$RANDOMNO>	// д
#act
  T.MakePoison 5 5

------------------------------------------
M2/Client չCustomItemNameColors.txtʽƷ ɫ(1..255) ЧͼƬ ЧͼƬ
  ЧͼƬlui.pkgУļʽΪbeam_xxxxx.pngxΪ0~9İ֣
  ļж壺 254 200 10lui.pkgӦ÷ϣbeam_00200.png~beam_00209.pngļ
  ͼƬʹeverythingѵõͼƬF2ɣ
  pngļһĵҪض롣
------------------------------------------






2020/2/7	ȫ׳׸
---------------------------------------------------------------------------
M2 SetAbilityָ⣻⣻ƷԵĵƷҲ̹
M2 [@Pickup]ֶɾʰȡƷƷ⣻T.ֻһ
M2 QueryValue ֧QChatMissionΪQC
M2 ƱƷŻ
Client ͻڹ޸ƷʱµƷʾŻսʿλɱλ
Client ̯λʱмʱر⣬ҪͬʱM2Ϳͻ
Rungate һɵ±©






2020/2/3	ȫ׳׸
---------------------------------------------------------------------------
M2/Rungate ǿȶԣҪʹ
M2/Client ӢۿԿءҩ/ͷӦܡ
DBServer ýɫҲɻָɫܵ¼ڽɫָãɾɫݣɻָܵ¼
DataTool ܣiniظܣָװ˵






2020/1/29	ȫ׳׸
---------------------------------------------------------------------------
M2 ħ/⹥ԶɫЧbug
M2 ޸򲻵ǽbug
M2 Żɫ/ߵͼټ˼ٹ
M2 ŻCHECKUSERDATEļ
Rungate Ϊټbugܵ¿ס
Client ȼټٹŻƷ26Ű汾ƷϵͳŻbug
Client ֤άӵǰΪṩߣͬͬ˺ɨά뱻⣬֤ʹ
  Ҳ㣬ֻװAPP΢С򣺶֤TOTP̬֤֤Authenticatorȵ...
  ʹ΢Źںıдķʽȥ֤ʹþıᵼϷ٣






2020/1/18	ȫ׳׸
---------------------------------------------------------------------------
M2 ȥּ/ɫ־SetAutoGetExpΪʱbug
DBS Ż






2020/1/15	ȫ׳׸
---------------------------------------------------------------------------
DBSʹû£رձ滺̫±GameCenterǿƹرն»ص






2020/1/14	ȫ׳׸
---------------------------------------------------------------------------
M2 װöȡ
M2 ŻɫDBȡ߼ͷ߳ѹ
RunGate ŻClientSocketȶ
DBS ŻɫݵĴȡIOܣŻд߼ֹļдʧ






2020/1/13	ȫ׳׸
---------------------------------------------------------------------------
M2/DBS ŻɫݵĴȡ߼






2020/1/9	ȫ׳׸
---------------------------------------------------------------------------
!Ҫ: M2ɫݸܵµ¼
!Ҫ: DBS
M2ŻɫݵĴȡ߼
DBSΪ0






2020/1/6	ȫ׳׸
---------------------------------------------------------------------------
!Ҫ: DBServerδȷ[Ӣ//Ӣ۸]洢
!Ҫ: ײ㺯ŻĸСbug΢˲Դ²...
ʰȡδbug
ԶɫEnvirĿ¼CustomMonNameColors.txt̬޸ı¼عݿЧʽ ɫ(1..255)ͻ˻ĬʾԶ֣ڹѡر
ԶƷɫEnvirĿ¼CustomItemNameColors.txt̬޸ı¼ƷݿЧʽƷ ɫ(1..255)	// 176汾д˹
M2֮ۼܴ򵽷Ǳͼ
M2鲻DBñΪ






2019/10/22	ȫ׳ʹ
---------------------------------------------------------------------------
M2Զ¹ܣڹڲ˵ǷԶ
M2ɴints0~9չ0~29ʹô˱ʹֱӶдıԶ
M2ÿ1ض˿ڵƴ6000ߵ8000
M2Ϸ
ϸ汾ܴλǽ
ϷؽջСӦӷͻߴڴϸ汾һЩ
Ϸرճʱһbug
M2/DBSдݴȡ߼ߴȡݵЧ
СĿɸݴ洢bugҪ׸M2DBServer
һ˻ṥʱ̵Ӣ
չNPC:compval <$USERID> ^ "userid"	// $USERIDǷuseridͷ
չNPC:compval <$USERID> ` "userid"	// $USERIDǷuseridβ
¼֧Զˢ·б
¼ԶͻLogopngʽõ½¹Ŀ¼ʹĬlogo(ʹPSü͸ԼļС)
KillMonGetFullExp +/-/= 				// ߵȼɱֻȡȫʱ䣨룩
REFITEMSHAPE λ ֵ						// ĳͬƷۣλã0· 1ֵοstditems.dbеƷidx⣬ϻ汾֧֣


---------------------------------------
ӽɫܣʾű֮ǰҪȡ



---------------------------------------
ƹID
¼ӡƹIDд14ֽڣ7֣
ϷڻȡƹIDĽű<$ADID>



---------------------------------------
NPC:SetAbility λ(0~100) ֵ  ʱʾַ(ղʾ)
49ԣ50-100ʱʱҲΪʱʹá

[@SetAbility]
#ACT
SetAbility 10 15 30 Իָ
SENDMSG 5 ñ15㣬30롣
;SetAbility 10 0 0 Իָ  // λ10
;SetAbility clearup // 

λöӦ:
  0 // 
  1 // 
  2 // 
  3 // ׼ȷ
  4 // 
  5 // ħ ÿһ10%10㼴Ϊ100%
  6 //  ÿһ10%10㼴Ϊ100%
  7 // жָ ÿһ10%10㼴Ϊ100%
  8 // ָ ÿһ10%10㼴Ϊ100%
  9 // ħָ ÿһ10%10㼴Ϊ100%
  10 // 
  11 // Ŀ걬
  12 // 
  13 //  ΪٷֱȣΪ100
  14 //  ΪٷֱȣΪ100
  15 //  ΪٷֱȣΪ100
  16 //  ΪٷֱȣΪ100
  17 // ħ ΪٷֱȣΪ100
  18 // Ѫ
  19 // 
  20 // GM(۲ģʽ)
  21 // GM޵
  22 // ֹʹƷ
  23 // ֹ
  24 // ֹƶ
  25 // ֹܲ
  26 // ֹ
  27 // ֹħ
  28 // ̩ɽ(ɱҰƶ)
  29 // ֹٻӢ
  30 // ֹ޸Ĺģʽ
  31 // ֹʹòֿ
  32 // ģʽ
  33 // ħ
  34 // 
  35 // 
  36 // 
  37 // ̽
  38 // 
  39 // 
  40 // 
  41 // Ƹ
  42 // ƻ
  43 // 
  44 // װ
  45 // (10Ϊٶȣ10Ϊٶȣһ)
  46 // ֹ
  47 // ֹ̯
  48 // ֹƷ

---------------------------------------
ļ÷Ժǰıʻʹãֶ֧ļͬʱã༭
   Ұ.txt дݣ	// MonDropItemsĿ¼λMonItemsĿ¼
  #CALL [MonDropItems\ҩƷ.txt]
  #CALL [MonDropItems\·.txt]

---------------------------------------
ֱ֧ʱ⣬ϸʽָƷŻᱬ:
1/x װ  $ (><=!?) ֵ ۳(۳)
: ?ʾ>=^`ַ
۳: ͱûйϵֵֻΪ0
ӣ
1/1 ǿЧ̫ˮ 1 $GOLDCOUNT ? 0 100000		// 10
1/3 ǿЧ̫ˮ 1 $GAMEGOLD ? 100 -100		// Ԫ>=100ʱ1/3ʼƷ򲻵Ԫ>=100ʱ۳100Ԫ
1/8 ĳƷ   1 $SERVERNAME = XX1	// XX1 пܱ
1/8 ĳƷ     1 $USERID ^ head				// ˺headͷ пܱ
1/8 ĳƷ     1 $USERNAME ` tail			// ɫtailβ пܱ

ֱ֧
  $SERVERNAME
  $SERVERIP
  $WEBSITE
  $BBSSITE
  $CLIENTDOWNLOAD
  $QQ
  $PHONE
  $BANKACCOUNT0
  $BANKACCOUNT1
  $BANKACCOUNT2
  $BANKACCOUNT3
  $BANKACCOUNT4
  $BANKACCOUNT5
  $BANKACCOUNT6
  $BANKACCOUNT7
  $BANKACCOUNT8
  $BANKACCOUNT9
  $GAMEGOLDNAME
  $GAMEPOINTNAME
  $USERCOUNT
  $MACRUNTIME // 
  $SERVERRUNTIME // 濪
  $DATETIME:  // ǰڣʽ2019-11-12
  $CURRENTMAPDESC // ͼ
  $CURRENTMAP  // ͼļ
  $CURRENTX
  $CURRENTY
  $GENDER  // 01
  $JOB  //012
  $ABILITYADDPOINT0..ABILITYADDPOINT6
  $ABILITYADDTIME0..ABILITYADDTIME6
  $USERNAME
  $USERID
  $CURITEMID
  $ATTINFO_SKILLID
  $ATTINFO_RACE
  $ATTINFO_ISHERO
  $ATTINFO_NAME
  $ATTINFO_FNAME
  $ATTINFO_MNAME
  $CURTITLENAME
  $MEMBRETYPE
  $MEMBRELEVEL
  $RANDOMNO
  $RELEVEL
  $GUILDHUMCOUNT
  $GUILDNAME
  $RANKNAME
  $LEVEL
  $COLLECTEXP
  $COLLECTIPEXP
  $HP
  $MAXHP
  $MP
  $MAXMP
  $AC
  $MAXAC
  $MAC
  $MAXMAC
  $DC
  $MAXDC
  $MC
  $MAXMC
  $SC
  $MAXSC
  $HIT
  $SPD
  $BONUSPOINT
  $BONUSABIL_AC
  $BONUSABIL_MAC
  $BONUSABIL_DC
  $BONUSABIL_MC
  $BONUSABIL_SC
  $BONUSABIL_HP
  $BONUSABIL_MP
  $BONUSABIL_HIT
  $BONUSABIL_SPD
  $BONUSABIL_X2
  $EXP
  $MAXEXP
  $PKPOINT
  $HW
  $MAXHW
  $BW
  $MAXBW
  $WW
  $MAXWW
  $HUNGER
  $CREDITPOINT  // ֿ֧۳
  $GOLDCOUNT // ֿ֧۳
  $GAMEGOLD // ֿ֧۳
  $NIMBUS // ֿ֧۳
  $GAMEPOINT // ֿ֧۳
  $GAMEDIAMOND // ֿ֧۳
  $GAMEGIRD // ֿ֧۳
  $INTS0..INTS30  // ֿ֧۳
  $LOGINLONG // ¼ʱ
  $DRESS	// ·
  $WEAPON	// 
  $RIGHTHAND
  $HELMET
  $NECKLACE
  $RING_R
  $RING_L
  $ARMRING_R
  $ARMRING_L
  $HELMETEX  // 176汾
  $BUJUK  // 176汾
  $BELT  // 176汾
  $BOOTS  // 176汾
  $CHARM  // 176汾
  $DRUM  // 176汾
  $HORSE  // 176汾
  $FASHION  // 176汾
  $HWID
  $YEAR
  $MONTH
  $DAY
  $HOUR
  $MINUTE
  $SECOND
  $MILLISECONDS
  $MONDROPRATE
  $IPADDR
  $IPLOCAL
  $GUILDBUILDPOINT
  $GUILDAURAEPOINT
  $GUILDSTABILITYPOINT
  $GUILDFLOURISHPOINT
  $STR(XX) // ֿ֧۳еȫֱҪƵʹãɷ
  $H.STR(XX) // ֿ֧۳еȫֱҪƵʹãɷ
  $HUMAN(XX) // ֿ֧۳ΪڴԶ棬Զ棻˱ҪƵʹãЧ
  $H.HUMAN(XX) // ֿ֧۳ΪڴԶ棬Զ棻˱ҪƵʹãЧ
  $GUILD(XX) // ֿ֧۳ΪڴԶ棬Զ棻˱ҪƵʹãЧ
  $GLOBAL(XX) // ֿ֧۳ΪڴԶ棬Զ棻˱ҪƵʹãЧ
  $PARAM(0..7)




---------------------------------------
!setup.txt AttackTrigger=0	// ܿأĬ0رգ1QF[@Attack]
Envir\MonAttackTrigger.txt	// ԱĹбÿһ

// Ϊ[@Attack][@UnderAttack]ֶεġרֶΣᷢ
$TARINFO_RACE		// ĿRace
$TARINFO_ISHERO		// ĿǷӢ {'0', '1'}
$TARINFO_NAME		// Ŀ
$TARINFO_FNAME		// Ŀȫ
$ATTINFO_SKILLID	// ʹüID
$ATTINFO_RACE		// Race
$ATTINFO_ISHERO		// ǷӢ
$ATTINFO_NAME		// 
$ATTINFO_FNAME		// ȫ

// Ŀ
$T.CURRENTMAPDESC
$T.CURRENTMAP
$T.CURRENTX
$T.CURRENTY
$T.USERNAME
$T.MONKILLER
$T.KILLER
$T.LEVEL
$T.HP
$T.MAXHP
$T.MP
$T.MAXMP
$T.AC
$T.MAXAC
$T.MAC
$T.MAXMAC
$T.DC
$T.MAXDC
$T.MC
$T.MAXMC
$T.SC
$T.MAXSC
$T.HIT
$T.SPD

// QF
[@Attack]				// ˻ӹбָᴥ
#IF
COMPVAL <$TARINFO_FNAME> = 
COMPVAL <$T.HP> > 50
#ACT
T.HUMANHP - 50
SENDMSG 7 Ŀ꡾<$TARINFO_NAME>Ѫ<$T.HP>

#IF
COMPVAL <$ATTINFO_RACE> ! 1		// Race=1 ңǷңӣ
#ACT
SENDMSG 7 <$ATTINFO_NAME>ڹ<$TARINFO_NAME>


[@UnderAttack]						// ˻ӻбָ﹥ᴥ
#IF
COMPVAL <$ATTINFO_FNAME> = 				// ӻԼ
#ACT
HUMANHP - 50						// ˿Ѫ

#IF
COMPVAL <$ATTINFO_MNAME> ! ""				// ƲΪ
#ACT
SENDMSG 7 <$ATTINFO_MNAME><$ATTINFO_NAME>ڹ
#ELSEIF
COMPVAL <$TARINFO_RACE> ! 1					// Լ
#ACT
SENDMSG 7 <$ATTINFO_NAME>ڹӡ<$TARINFO_NAME>
#ELSEACT
SENDMSG 7 <$ATTINFO_NAME>ڹ



---------------------------------------
Զ尴ť20οõ½Զ
ͻdataĿ¼ļMainWidgetCfg.ini		// Զ尴ť20οõ½Զ
MainWidgetCfg.iniwmlib=LuiʱLui.pkgͼƬͼƬΪlui.pkgڵļluiͼƬ0Ч
MainWidgetCfg.ini LoginShowChildButton=0/1 ֶΣ½ǷʾӰť

ťݰťִQChatMission-0.txtűӦ[@MainBtnFunc_020]ֶΣ[@MainBtnFunc_20]ʾصĴ
ӦNPCƽű£
MAIN_FUNC_BTN_SHOW  0/1				// ʾ
MAIN_FUNC_BTN_FLASH  0/1				// ťǷ˸
MAIN_FUNC_BTN_POS  X Y				// ťλ
!Setup.txt OpenMainFuncBtns=0/1				// ر湦ܰťܣĬϹر






2019/9/29
---------------------------------------------------------------------------
!setup.txtMagicHitRateCompensate	// ԱܵĿħʵڣĬ0ԽԽߣ3Դﵽ100%Уøʣ-1൱ڸŲ
żֱ21E
ӢػģʽHeroGuardMode=1		// Ĭ1ԷɵĿ㣬0ǷɵĿ
21EDBServerһɫȡ






2019/9/16		DBSҪ
---------------------------------------------------------------------------
ŻDBSΪһЩɾݻ
INI_RENAME_SECTION	ļ 	½	// IniĽڵ
StringsReplace ļ ԭַ ַ 1 HardDisk	// ıеԭַ滻Ϊַе1ʾԴСд0ԴСд
					// HardDiskʾֱʹıдģʽǿҽڴģʽֱӶдıؽܣ

RenameFile Դļ ļ			// ļ֧ڴеļ磺
-----------------------------------
mov S1 <$PARAMSTR(1)>
inc S1 ".txt"
mov S2 <$PARAMSTR(2)>
inc S2 ".txt"
RenameFile <$STR(S1)> <$STR(S2)>







2019/9/07
---------------------------------------------------------------------------
ʹþ鴥QF[@OnUseExpBall] [@OnHeroUseExpBall] <$PARAM(1)>:Ʒ <$PARAM(2)>:۸ <$PARAM(3)>:۸(0-4) 
̯ƷQF[@OnBuyItemFromStall] <$PARAM(1)>:Ʒ <$PARAM(2)>:۸ <$PARAM(3)>:۸(/Ԫ) <$PARAM(4)>:






2019/9/06	RunGate/DBS/M2/ͻ Ҫʹ
---------------------------------------------------------------------------
һ﹥㲻׼ȷ
ּʼ
޸ƷԶ1bugԴҪϸµڼƷԵߵ
֧ͨ21ڣRunGate/DBS/M2/ͻ Ҫʹãԣ






2019/9/04
---------------------------------------------------------------------------
ҷʽˢҵ©
ӢػֱӷɵĿ
SearchTargetWhenIdle=1ԶֿʱѰͣԭصȴˢ
SkillMedusaEyeEffectPlayer=0ɯ֮ͫãĬ=1ãSkillMedusaEyeUseInterval=45ܼʱ()
޸̵۸






2019/9/01
---------------------------------------------------------------------------
⽻صƷ©
սʿ¶Էƶ״̬ԣ
Żͼתƴ
ŻͼԪ̣ռõڴ
ͨҩƷѪʹ淶
ע⣺ûмƷʵ






2019/8/12
---------------------------------------------------------------------------
GMʧЧ@DelDenyIPLogon
OfflinePlayEx(԰)
ܿܳʱ
Żִ
ProcessHurryMsgأĬϿŻϢӳ٣PK飬ܺĻ΢






2019/7/30
---------------------------------------------------------------------------
޸
ӵͼNoHeroGuardֹӢػ






2019/7/28
---------------------------------------------------------------------------
ߴ/С׵ħԱܶĻ
[սϻ]˺ӳɵı֮ǰ汾Ƚв죬Զ
޸[սϻ]㣬֮ǰ汾Ƚв죬Զ
޸status






2019/7/21
---------------------------------------------------------------------------
ܹbug

ʾҪսʿ(չ)˹༭magic.dbĴ͸ԣĶ͸ظ£
ɱĬӦPenetrate=3 PenetrateRate=100з





2019/7/19
---------------------------------------------------------------------------
ʰȡƷõmakeIndexΪ0bug
ж״̬bug


---------------------------------------------------------------------------
!setup.txt AttackTrigger=0	// ܿأĬ0رգ1QF[@Attack]
Envir\MonAttackTrigger.txt	// ԱĹбÿһ

// ר
$TARINFO_RACE		// ĿRace
$TARINFO_ISHERO		// ĿǷӢ {'0', '1'}
$TARINFO_NAME		// Ŀ
$TARINFO_FNAME		// Ŀȫ
$ATTINFO_SKILLID	// ʹüID
$ATTINFO_RACE		// Race
$ATTINFO_ISHERO		// ǷӢ
$ATTINFO_NAME		// 
$ATTINFO_FNAME		// ȫ

// Ŀ
$T.CURRENTMAPDESC
$T.CURRENTMAP
$T.CURRENTX
$T.CURRENTY
$T.USERNAME
$T.MONKILLER
$T.KILLER
$T.LEVEL
$T.HP
$T.MAXHP
$T.MP
$T.MAXMP
$T.AC
$T.MAXAC
$T.MAC
$T.MAXMAC
$T.DC
$T.MAXDC
$T.MC
$T.MAXMC
$T.SC
$T.MAXSC
$T.HIT
$T.SPD

// QF
[@Attack]				// ˻ӹбָᴥ
#IF
COMPVAL <$TARINFO_FNAME> = 
COMPVAL <$T.HP> > 50
#ACT
T.HUMANHP - 50
SENDMSG 7 Ŀ꡾<$TARINFO_NAME>Ѫ<$T.HP>

#IF
COMPVAL <$ATTINFO_RACE> ! 1		// Race=1 ңǷңӣ
#ACT
SENDMSG 7 <$ATTINFO_NAME>ڹ<$TARINFO_NAME>



[@UnderAttack]						// ˻ӻбָ﹥ᴥ
#IF
COMPVAL <$ATTINFO_FNAME> = 				// ӻԼ
#ACT
HUMANHP - 50						// ˿Ѫ

#IF
COMPVAL <$ATTINFO_MNAME> ! ""				// ƲΪ
#ACT
SENDMSG 7 <$ATTINFO_MNAME><$ATTINFO_NAME>ڹ
#ELSEIF
COMPVAL <$TARINFO_RACE> ! 1					// Լ
#ACT
SENDMSG 7 <$ATTINFO_NAME>ڹӡ<$TARINFO_NAME>
#ELSEACT
SENDMSG 7 <$ATTINFO_NAME>ڹ






2019/7/15
---------------------------------------------------------------------------
ŻϷPK
ֿȡصƷ©ʱ°汾
ϸ汾мʱεbug
ӷڼܴ͸ļ㣨עӷԲħܵĵҪħmagic.dbüܵĴ͸ԣ

ӵͼSensitiveCreatureã
һ/ӾΧзӦϹΪԱߣﲻǰһӦٶ
ڿSensitiveCreatureĵͼϣʿܸ͹á

־ѯӡɳ/ɳȡ/ȡء־ѯɹ/ʧܡѯbug






2019/6/13
---------------------------------------------------------------------------
֤KeyĻȡ + LoginSvrףӦӣ
--------------------------------------------------
[@main]
<ȡ֤״̬/@GetTotpKey>\ \<ر/@exit>

[@GetTotpKey]
#act
GetTotpKey	// ״̬ɹ󽫻ص[@OnGetTotpKey]ǩ

[@OnGetTotpKey]
#act
GetStrLenght <$TOTPKEY> M0
goto ~OnGetTotpKey

[~OnGetTotpKey]
#if
equal M0 16
#say
˺Ѿ֤ </@@totp>\ \<ر/@exit>
#elsesay
˺Żûа֤ <а/@@totp>\ \<ر/@exit>
--------------------------------------------------
ȡ
޸ļ¼־עʹҲҲ¼
СŻ






2019/4/28
---------------------------------------------------------------------------
ϷӺˣChatCmds.txtڴбݻ໰ˣÿһĬֻһ@ ˫ţעпո
Abusive.txt ʽ޸Ϊַ 0ȫ滻 1ַ滻Ϊ* 2ߣ磺 1ÿһ
ԶҲGuildRankNameFilter.txtеַй

޸ֿ洢صƷ©

ʰȡƷбPickItemRule.txtʽƷ 1ƷΪֲֻжӳʰȡ

LoginSvr֤

LoginGate	//  ½.exe µLoginGateע¼Ϳͻûи£
ͬһIPһʱڣۼƵָʱIPб[ȫ-½˺Ź]

LoginServer
֤汾ۼƽֹ¼ʱ

M2Server
Ӳ
SaveDataTimeoutMs=10000	// ݳʱ()ʱжϱѭʱƬעM2ѹʱ½1000010һϷ϶̵ֵʱ̣̫̣򱣴ЧʱͣĬ10000
DBSvrConnections=16	// M2DBServerĬ16϶Ӷݱ/Чʼӳɣһ8-64֮䣬16-32Ϊ32δչ˲֮ǰЧ15
KeepSaveDataCache=1	// ﱣݻǷĬ1ܻصıжпֱܳȽ϶(ϵ)뱣Ĭֵڲԡ
һֻDBSvrConnectionsɣĬϡ

DBServer
ʾϢ




2018/8/15
---------------------------------------------------------------------------
ʹõȼƣdbneedLevel
loginsvrд־bug
$CURTITLENAME ǰʹóƺ

!setup.txt ShowQueryStateInfoTips=1	// ˲鿴ԼװϢʱǷʾ

[@PickupItem] [@DropItem] ֵֵ֧߲ΪƷID
[@HeroDie] Ӣ<$PARAM(0)>:˽ɫ <$PARAM(1)>:Ӣ۽ɫ <$PARAM(2)>:ͼ <$PARAM(3)>:X <$PARAM(4)>:Y
¼ ʯ/  ȡ/ ־ֲ֧ѯ
NPCTakeOff λ	// װ汾λã0..16176/ĸλã0..13TakeOff All ȫ
HUMANHP ѪƮѪЧ
Ҫʱڹҽֹأûʲôã
ͻ˴ڲϵŻ
صƷŻ
ҹģʽ£ⲹȫ

--------------------------------------
PLAYEFFECT WIL X Y ʼͼƬ ֡  ѭ  ѭ(0/1) (""/All/Guild/ͼ)	
// X=-1겥ţ̶ꣻ󣺿ַԼall guildлߵ ͼĳƶͼ
// ִЧǰű[@OnPlayEffect]

<Ч/@PlayEffect>\
[@PlayEffect]
#act
PLAYEFFECT Prguse2 -1 -1 110 15 80 1 Wav\powerup.wav 0 ""
[@OnPlayEffect]
#act
SENDMSG 3 һЧ

--------------------------------------
¼QFǩ
[@BuildGuild]		// лᣬ<$PARAM(0)>л
[@JoinGuild]		// лᣬ<$PARAM(0)>л
[@LeaveGuild]		// ˳лᣬ<$PARAM(0)>л
[@KickOutOfGuild]	// ߳лᣬ<$PARAM(0)>л
[@DismissGuild]		// ɢлᣬ<$PARAM(0)>л

--------------------------------------
ܻӣֱȲֵԽߣֵܼĹԽĿΪ˸Ʊ̬汾(߹)ְҵļ
󹥻ӲԵ⣬ĬΪ0ݰ汾вԵڡ

--------------------------------------
żǿȥ룬Ϊ֤Ҫ/LoginSvr/ͻˡס
ͬʱ޸MD5LoginSvrֺ֧֮ǰMD5汾ݣ汾LoginSvrݼݡ
#SAY
<󶨻֤/@@totp>\\

޸LoginSvrʱϸ/֤Խ࣬ʱԽָ

--------------------------------------
˺Ŷ빦
֤Ƕ棬ԭĶݣ
Ҫʹµ֤ܣԭȵĶ룬ûϷNPCа֤




2018/7/01
---------------------------------------------------------------------------
ӢΧϸ
ͻʾǿȣλ7Իǿ
޸SETRANDOMNOָΧ		// SETRANDOMNO 1000000
NPCCOMPVAL ֵ1 >/</=/! ֵ2Ƚֵ1ֵ2		//磺COMPVAL <$USERNAME> = ƣCOMPVAL $STR(N1) > 50
 #ELSEIF #ELSEIFSAY #ELSEIFACT(#ACT)		// ɶԱд
------------------------------------
[@test]
#ACT
SETRANDOMNO 1000000		// 0~999999

#IF
COMPVAL <$RANDOMNO> < 100
#ACT
SENDMSG 3 صȽ<$RANDOMNO>
#ELSEIF
COMPVAL <$RANDOMNO> < 1000
#ACT
SENDMSG 5 һȽ<$RANDOMNO>
#ELSEIF
COMPVAL <$RANDOMNO> < 2000
#ACT
SENDMSG 6 Ƚ<$RANDOMNO>
#ELSEIF
COMPVAL <$RANDOMNO> < 4000
#ACT
SENDMSG 7 Ƚ<$RANDOMNO>
#ELSEIF
COMPVAL <$RANDOMNO> < 8000
#ACT
SENDMSG 7 <$RANDOMNO>
#ELSEACT
SENDMSG 7 лл<$RANDOMNO>





2018/6/15	ͿͻҪ׸
---------------------------------------------------------------------------
޸渺عͼмӶʧbug
ͻƵ΢˷bug
̯۸ʾbug
ʱʹƷʱ׼ȷstdmode=2 shape=18Ʒڿͻ˿ʾʣʱ
޸渺عͼʦٻԲӦbug
޸渺عͼ쳣bug
޸渺иС˺bug (ͼͼ治ͬ)
޸渺س½ɫ½bug
Ż־
¼ض̬NPC(֮ǰbugȥ)
NPCGOHOME			// ذȫ
NPCFINDDELETELINE		// ıвɾ
---------------------------------------
#IF
FINDDELETELINE ı· <$USERID>	// ֵȡרãıдͻˢԪbug
#ACT
GAMEGOLD + XX
#ELSESAY
ʧܣԵƬٲ






2018/5/13
---------------------------------------------------------------------------
ͻʹòԶ̹¹bug
ͻ֧24/32λwil/wzl
ChangeExp/ChangeIPExp Ϊʱ鲻ۼ
Ӣֱ֧ضƷ
Ӣ۳ƺŲƺbug
ʰȡHintItemList.txtеƷQF[@PickupItem] <$PARAM(1)>:Ʒ <$PARAM(2)>:Looks <$PARAM(3)>:ɫ <$PARAM(4)>:ͼ <$PARAM(5)>:X <$PARAM(6)>:Y
HintItemList.txtеƷQF[@DropItem] <$PARAM(1)>:Ʒ <$PARAM(2)>:Looks <$PARAM(3)>:ɫ <$PARAM(4)>:ͼ <$PARAM(5)>:X <$PARAM(6)>:Y
ϸ汾ƶ/ٶ쳣
QM[@OnInit]ִʱ[@Login]ڳʼ˽бע[@Login]ʼʱ磬һЩĽűӦñ






2018/4/5
---------------------------------------------------------------------------
/Ԫļ¼־
ͻƶbug
NPCȡ֧: !CHECKLEVELEX > 10  // ȼǷСڵ10






2018/2/4	!Ҫ޸Ľű
---------------------------------------------------------------------------
ԶVarزȥHardDiskͳһΪȷǷΪʵʱӲ̶д磺
[@login]
VAR INTEGER HUMAN player_level "" hardDisk				// "" ʾĲΪղ
LOADVAR GUILD player_level ..\QUESTDIARY\UserData\PlayerData.txt

[@dynvar_human_level]
#act
CALCVAR HUMAN player_level = <$LEVEL>
SAVEVAR HUMAN player_level ..\QuestDiary\UserData\PlayerData.txt force	//force ʱʵʱ棬ƵϷ

ӣPlayerData.txtѾʹhardDiskдPlayerData.txtıҪͳһΪhardDisk
עhardDisk ǷǳʱĲǱҪ£ҪʹãֻϷ

ֻʹüܵĹ׷Ŀ߼һЩ¹֡
ӵõHintItemList.txtƷQFunction[@OpenTreasureChest]<$PARAM(1)>Ʒ <$PARAM(2)> <$PARAM(3)>Looks






2018/1/29
---------------------------------------------------------------------------
Win10汾ͻAlt+Enterл/ȫģʽbug
̹򣬲HintItemList.txtƷQFunction[@shopping]<$PARAM(1)>Ʒ <$PARAM(2)>۸ <$PARAM(3)>Looks
ͻ˼win10＾(windows10FCUbug)
174 129 4116 ͨЧbug







2018/01/10
---------------------------------------------------------------------------
һbugܵ³ֱ̬װ
ȥʵԷŻģ飬Խڴռ







2017/12/28	԰棬
---------------------------------------------------------------------------
Ż/̣ԣһˢ12000ֻֻ֣ᱩƷǽգԱŻǰֵʱ䣬пٶԱ
[@HeroTakeOn+λ] [@HeroTakeOff+λ] 					// Ӣ۴/ȡװοĴ
IsNearby H/							// ָɫ/ǷڸHָԼӢ
ڴbug
NPC̵Ʒܵbug







2017/12/10
---------------------------------------------------------------------------
ͻ¹
ͻϢŻ
ͻȾŻ
1208ӵ¹







2017/12/08
---------------------------------------------------------------------------
NPC
KillMonGetFullExp +/-/= 						// ߵȼɱֻȡȫʱ䣨룩
REFITEMSHAPE λ ֵ							// ĳͬƷۣλã0· 1ֵοstditems.dbеƷidx⣬ϻ汾֧֣

Ϸؿܶɿ½
ϷCD汾 ·ϴİֶܳʧBUG翨
ڴصӦ
MonSpAbilList.txt 13ƶ޸Ϊ(0~100)

PIC=չ2:								// úXYԶм㣩
	<PIC=items,55,1,0,0,0,8,11,22 LABEL=@execlab HINT=þ>		//items=wilļͼƬѭ͸ƫXƫYXYԶм㣩

NPCϢ÷
----------------------------------------
{X=2,Y=3,C=clBlue,T=tips,AX=11,AY=22}				// X,YƫƣCɫTʾAXX{}ڵϵûḲǵcolor=hint=ȵĲ
									// AX/AYΪֵԶм㣬Y=Y+AY
ɫ÷
  color=#321321  color=$321321{c=#321321}  {c=$321321} ɫȡɫֵ
磺
  <color=clgreen {X=11,Y=22,AX=11,AX=22} HINT=tips>   <PIC=items,55,1,0,0,-40,8,0 LABEL=@execlab HINT=þ>þͼƬ{c=cllime}</>   <űǩ{c=cllime,T=tips}/@execlab> \ \
  <color=clgreen {X=11,Y=22} HINT=tips> ͬ {X=11,Y=22,c=clgreen,T=tips}
----------------------------------------

SETMERCHANTDLGIMGNAME ͼƬ 					// Ϊ0ͼƬΪЧزļزָͼƬ

NPC
----------------------------------------
NPC_DLG_OPTIONS ͼ NPC   ԻͼƬ 			// ڵ½ű壬ֻҪһΣǲı

ͼNPCڵͼţǾ3ͼΪ""ʱNPC
12Իƶ4˸Ǹϲ磺1 + 2 = 3 ʾƶ
У01Ĭϣ2У3ϣ4£5
ԻͼƬĬϣд0lui.pkgͼƬЧزļָͼƬزļҪдչ

һЩNPCֺͼQFunction/0QMapEvent/0QManage/0RobotManage/0QChatMission/0

飺
ҪʹSETMERCHANTDLGIMGNAMEʹNPC_DLG_OPTIONS棬иõ

ӣ
QManage.txt е
[@login]
#act
NPC_DLG_OPTIONS 0149 żҲ 7 2 MerchantDlg.png
NPC_DLG_OPTIONS 0149 ׵ 3 3 ui1 2731
NPC_DLG_OPTIONS 0149 ͷ 3 4 ui1 2924
NPC_DLG_OPTIONS 0 QFunction 3 4 ui1 3020
----------------------------------------






2017/11/27
---------------------------------------------------------------------------
ͨѶҵ½ԣ






2017/11/16
---------------------------------------------------------------------------
#IF(X)ж
ŻܣӦ






2017/9/19
---------------------------------------------------------------------------
NPCȡ
⿨
ڴص






2017/9/9
---------------------------------------------------------------------------
ٻٶ쳣
ŻNPCȡ
ܵȼ仯ûˢ¼װ
ϷֹͣŻ
ؽű⵽ظǩʱʾ(ظǩִֻһǴд)






2017/8/21
---------------------------------------------------------------------------
½űṩǷʵʱдӲ̲ĲĬϲдInTimeڴʽ
ҪⲿضıȥʵĳЩܣȥInTime
ΪʲôҪܣΪʵʱӲ̲ıЧرͣرıһСԺ󣬺Ϸ١
עUnMarry.txt Ϊڴ֮ǰĸ±˴θ¸
    !setup.txt UseFastTextFile=0ԻָȫӲ̶дģʽģʽǲ
    ֻҪԵļHardDiskͿԣϷܡ

//2ΪHardDiskʵʱдӲݣڴ
ADDNAMELIST
ADDGUILDLIST
ADDACCOUNTLIST
ADDIPLIST
DELNAMELIST
DELGUILDLIST
DELACCOUNTLIST
DELIPLIST
CHECKNAMELIST
CHECKACCOUNTLIST
CHECKIPLIST
CHECKGUILDLIST
AddNameDateList
DelNameDateList
ClearNameList
CheckAccountIPList
CheckNameIPList
CheckCodeList
AddUseDateList
DelUseDateList

//3ΪHardDiskʵʱдӲݣڴ
CHECKSTRINGLIST		
ReadRandomLine
ReadRandomStr
DelCodeList
WriteLineList
DeleteLineList

//4ΪHardDiskʵʱдӲݣڴ
ReadLine
DeleteLine
WriteLine
InsertLine
CheckNameListPostion

//6ΪHardDiskʵʱдӲݣڴ
CheckUserDateType


//7ΪHardDiskʵʱдӲݣڴ
CheckNameDateList






2017/7/01	˴θ+Ҫף·
---------------------------------------------------------------------------
2017/6/20bug
ϷCDŻ·
Ϸ @ ֡໰
ŻNPCMOVETOCELL X Y NPC	//XY0ȡﵱǰ꣬СNPCơ൱ڵӷΧڵָNPC
ӵNPCCLICKNPC NPC	//ͻ˶Ҫ
ͻʧЧ⣨ƣ~hum_she75.wil ļ
ClearNameList ڶΪգڴеıݡĬΪգӲϵıݡ

¸ⲿ޸Ӳļ
----------------------------------------
LoadVar		4ΪInTimeʵʱдӲ
SaveVar		4ΪInTimeʵʱдӲ
		4ΪForceʵʱڴӲ̣ʹʹforceҲÿ1Զ
CalcVar		5ΪЧļʱ浽ļڴУҵ6ΪInTimeʱʵʱдӲ

֮ǰĸ£magic.dbPower/MaxPower/DefPower/DefMaxPowerħ޸Ϊܸ˵ֵӰ죬
ΪϸӿأSetup.txtӿأĬϹرգCalcDBPowerWithLuck=0򹥻ܸ˵ֵӰ
ڿʹPower/MaxPowerһ£2ֵ0

ŻϷ
װҪ״̬ŻӹԭҪ״̬Ҳܻ棩






2017/6/20	˴θ+Ҫף·
---------------------------------------------------------------------------
ƶʱײ˻ﷴ´ƶټ⣨+Ϸף
ŻϷأʱӽʱbug






2017/5/2
---------------------------------------------------------------------------
Ż΢˹ܣЧʣҪͬʱµ¼ͻ˺΢˷
ͻչȡbug
<$USERID>  û˺
Żģʽ
Ż־Ĺ
ע⣺
--------------------------------------
ıNPC·ͳһΪNPCǰ·
д	addLineList QuestDiary\rolelist.txt <$USERNAME> Ҫ޸Ϊ
	addLineList ..\QuestDiary\rolelist.txt <$USERNAME>	// ..\ʾһĿ¼
--------------------------------------
NPCΪʱܻȡbug
ǿIOPS
Ϸֹͣʱֱܳbug
IniϵNPCԶ湦


--------------------------------------
<$CURITEMID>						//GiveGiveExGiveOKGMƷʱʹ<$CURITEMID>õǰƷID
GETDLGITEMID P/G/D/M/H				//ȡƷIDֵP/G/D/M/H (P0~90~99)
CHECKDLGITEMID 123456				//ƷƷIDǷ123456


Give Ʒ
INI_WRITE_INTEGER ļ <$USERNAME> ĳ_Ʒ <$CURITEMID> 	//¼ƷID´ҪУʱ INI_READ_INTEGER ȡ
sendMsg 1 <$CURITEMID>


INI_READ_INTEGER ļ <$USERNAME> ĳ_Ʒ P0
#if
CHECKDLGITEMID P0
--------------------------------------






2017/4/12
---------------------------------------------------------------------------
mysql汾ӽҽУ-ϷԵز
Żmysql汾棬dbserverݴȡЧ
ŻLoginGateSelGateLoginSvr_mysql棬mysqlṹı䣡
--------------------------------------
ŻNPCıı뵽ڴвֱ޸ıڲЧ
ָģʽ!setup.txt UseFastTextFile=0
NPCıǳԴرʱıϴ󡢲Ƶűʱؿ١
 ǿҽʹUseFastTextFile=1µģʽдıܻᵼڴ治㣬ôUseFastTextFile=0
 ƺð汾ı׵Ϸ

AddAccountList,AddNameList,AddIPList,AddGuildList 
DelAccountList,DelNameList,DelIPList,DelGuildList 
CheckAccountList,CheckNameList,CheckIPList,CheckGuildList ...ֲ䣬ݳֵϵͳı΢ӰЧʣϷ٣
--------------------------------------

---------------------------------------
Ӹ˴ֱʿƱ	
	ֵNPCMonDropRate +/-/= ֵĬֵ100ԽСֱԽͣΪ0ƷȡʹС;GETITEMFLAGıʿƲӰ
	NPCCheckMonDropRate >/</= ֵ
	Ӧʾ<$MONDROPRATE>
---------------------------------------
ƺżʱ٣׼ȷ
ŻϷ

mysql汾ʼϵͳĿǰֻϵͳʼΪϷṩ֧֣
ʹNPCʼ
;4ң5Ԫ5Ԫ6Ʒ(5)7ԣ8ͨ|ؼ|||	//GiveExװ
sendMail  ʼ ʼ 1000 10 سǾ|֮ 1=11,2=12,3=13,9=15   1=11,2=12,3=13,9=15|6=11,10=12,11=13,12=15|67|127|2






2016/8/28
---------------------------------------------------------------------------
ֶرջط񱨴
ƺ߶ıķ
ϻ˺㲻ܵضӰ
ĿЧʱԶԼ
ǻӷΧ
ٻ޸Ϊﵽ4ŻɵĿй
ͻʱȥС/˱
ͻͷЧ
ͻȪЧ
ͻObjectsX.wzlֵ֧60
¹...οmonster.txt


GameCenterCastleFileDBServerMapFile
ӢػΪ15
¼Ʒʾб Ч
¼ű֧ISCASTLEMASTER
лˢ
ˮ޼޸Ϊ
ƷӲʧ
ӵͼNOSHOPPING		//ֹ̹
		NORECOVERINGSTONE	//ʹħѪʯʧЧ

ŻM2ʹ½Ϸ̸˳
-ãƷݿⱶ Ʒ+HP/MP 
Сbug

Ӣɼӵ׼ȷЧ
Ӣ۲ӿأ[ӢĿ]˲ĿߣĬϹرˣӢػҪӢҰſ˲
޸ڹʬƷܵӦBUG
race=211ܹԹ


װװհٷֱ Ч
setup.txt ӲTaosNomAtkDiffLvVal=00ʱʿӢ۱ȹXʱֻʹͨսؿԿ
QFӴ[@JoinGroup] 뿪Ӵ[@LeaveGroup]
ӵͼHERONOATTACKHUMAN				//Ӣ۲
MonSpAbilList.txt 1޸Ϊص㣬ֵΪ1ʱＰ
ƮѪܳ65535
NPC
	#IF(3)						//չڶֻҪ3ִ#ACT,#SAY...
	StringReplace S1 $STR(S2) $STR(S3)		//滻ַS1ԴַS2->滻ΪS3
	CHECKCONTAINSSTR ַ 			//⡰ַǷСд
	CHECKCONTAINSTEXT ַ 			//⡰ַǷִСд
	CHECKRANGEPLAYERCOUNT ͼ X Y Χ >/</=  0 1	//ָͼ ָΧ 
	GOTO LABEL ģʽ(1,2,3,4) 2			//չ
		ģʽ=1 СԱ
		ģʽ=2 лԱ
		ģʽ=3 ǰͼﴥ
		ģʽ=4 ԼΪָΧﴥ


ٵ¼/ͻ
¼ֶ֧lui.pkg루lui.pkgʹõѹ룩

VarزŻȷǳ
-----------------------------------------
SaveVar 1 2 ļ Force	//ĲַΪForceʵʱӲ̣ʹʹforceҲÿ1Զ
					//ȽڣIni_Save ļ
					//VarϵزҲʵ޸ĺʹINI_ϵ档
CalcVar ΪЧļʱԶ浽ڴ


ϵͳĽ
-----------------------------------------
ٳֶͬ
ĳԵ

ʦԽװתƣ
-----------------------------------------
ͨתбָĿװAllowInheritItemList.txtʽװ ҪԪ ҪװƬװƬstdmode=41  ֵԣ0/1 Ҫоstdmode=41
תбָĿװAllowInheritTIItemListʽװ ҪԪ ҪƬƬstdmode=41 ֵԣ0/1 Ҫоstdmode=41
޸б¼бЧ
ֵԣָͬ2ԣֵұתװԸڽҪתƵװֵЧ
5ڵԶٻǰ£ֻͬԶٻһΣԿأĬϹر
ReadRandomStr,ReadRandomLine,ReadLine ļ·֧NPC·
stringreplace SʧЧbug
NPCָStrTok S1 S2 |, ԡ|ΪַָֽS1ԴַS2ŷַֽS1ŷֽʣಿ֣Ϊմո񣬡#9Tabһ֧SA
ŻNPC

mysql汾ݴȡЧ






2016/8/25	£
---------------------------------------------------------------------------
8·ͻ濨
ܵݸӿħڣֵ˺΢ֵ1/3˺
ܣָƮѪֲȷ
˺ļ
صƷܶ1
LoginSrvֶ֧(md5)
ͻѪٷֱʾ⣬WebBrowser򿪵ҳϷ






2016/8/15	£ + ͻ
---------------------------------------------------------------------------
SendScrollMsg ݲɹᵼ¿ͻڲXPϵͳг쳣
ͻһЩϸڣװļҪѧϰ˲ʾΪɫ...
0806Ӣ۰ȫ
·
ܲӷTʱڣĬ60룬ʹƶؼ鿴˵
<$NPCEXECUTECOUNT>ʾNPCִеĴ
Give ޸ԭ1-50
PIC=չ:			
	<PIC=items,55,1,0,0,0,8 LABEL=@execlab HINT=þ>		//items=wilļͼƬѭ͸ƫXƫY
	<PIC=magic,1630,6,1,1,0,8 LABEL=@execlabfirecross HINT=ǽ>
	SendScrollMsg <$DLGITEMSHOW>`PIC=magic,0,10,1,1,0,-33&LABEL=@xxxxx~




Ӽ򵥵Ʒչʾܣ	//ҪͿͻʹ
-----------------------------------------
(@@inputstring)
[@main]
<ִнű/@ExecuteLabel>\ \
<ҪѯƷ/@@inputstring1>   <չʾҵƷ/@@inputstring2>\ \<ر/@exit>

[@@inputstring1]
#ACT
SETDLGITEM <$STR(S1)>
#SAY
ƷϢ\ \        <$DLGITEMSHOW>\ \</@back>   <ر/@exit>

[@@inputstring2]
#SAY
ҪչʾƷ\ \</@back>   <ر/@exit>
#ACT
QUERYITEMDLG չʾƷ @showMyItem 0

[@showMyItem]
#SAY
ҵƷ<$DLGITEMSHOW>\ \</@back>   <ر/@exit>
#ACT
SENDMSG 1 <$USERNAME>:<$DLGITEMSHOW>...<$STR(S2)> 255 241 65000
SendScrollMsg `NAME=%s:~<$DLGITEMSHOW>...<$STR(S2)>
CLOSE

[@ExecuteLabel]
#SAY
<CMD=@ExecNPCLabel HINT=ʾ...\ڶʾ...>ִеǰNPCLabel</>
#ACT
SendScrollMsg <PIC=DscStart0.bmp&LABEL=@qclabel&HINT=ʾ...>ִQChatMission</>

[@ExecNPCLabel]
#ACT
SENDMSG 5 @Label_executed...  255 168
-----------------------------------------






2016/8/10	£ + ͻ
---------------------------------------------------------------------------
ͻͨѾѪɫʾΪɫ
ͻڹҵĻس/߱ڳҩ
ٻﵽ3ʹָ趨Ŀ
Ӣ۹ֳٶ
һʱ96︴bug
NPCԻݼӣHINT=ʾϢ... ʧЧbug
صĿհͨѶɷֹطֻ±ǽߵ






2016/8/08	£ + ͻ
---------------------------------------------------------------------------
ͻˢ°Ʒ
ͻ˹һܸ
ͻûһ·سϷȷϿȷϿ԰سո
ͻװʯλʾȷ
ͻ˿Զ岿ּǷF11ãǷ񿪷Ÿùܿ°汾¼
ͻڲXPϵͳһʱְťʧ⣨治ɹ
¼ԶбԶõĿͻƣ¼µ"˵.txt"
ͻͨѾѪɫʾΪɫ
ͻڹҵĻس/߱ڳҩ

ٻﵽ3ʹָ趨Ŀ
Ǩ
ʶ±
ڴй©_724
ڴռ
Ӣʹûǽ
InputInteger/InputString ҪʹDelayGotoҪ޸Ľű
Ӱ̯˰ÿԵڣ0˰
ƷݱʱԶļУرԶƷ
stditem.dbչDropRatePlusֶΣƷӻʣԭĳװ伸Ϊ1/30DropRatePlus0ʱ伸ʱΪ1/(30+DropRatePlus)
ж<$KILLER>ȱЧʾ
h.takeon ˢӢװڹ
@ReloadMonItems 
۳صɲʧ
NPCʱBUG
ħ%10Ϊ%0
ﱻٻõطˢbug
96ﲻ
ӿأֻõʿ˺춾ĶӹЧ
װ޳־ʾ·޳־
OffLine 3<=0ʱʱѻţΪѻʱ()ʱ
pk½лͼıʱڣĬ3룬ڵ2.5
һֱ龭鿪أĬϹرավҲǨƵ
ܲʱˢԣٻӵ



Ӽͼ۵İ̯ƷNPC
----------------------------
SEARCHONSALEITEM Ʒ (Ԫ/) ߸(1-10)	//ϢԶsendmsgʽ͸
:
#IF
CHECKGAMEGOLD ~ 1
SEARCHONSALEITEM  Ԫ 3
#ACT
GAMEGOLD - 1
#ELSEACT
SENDMSG 5 ҲָƷ
----------------------------


ͻزļչӦã
----------------------------
װڷ⣺
    shine>=100 Ӧ data\~witemsshine.wil ļÿ50ͼһЧЧͼƬ뱣shine=1000~49ͼƬshine=10150~99ͼƬ

·
    shape>=75 Ӧ data\~hum_shape.wil ļshape=75 Ӧ~hum_75.wil~hum_s75.wil

    anicount>=75 Ӧ data\~hum_he+anicount.wil ļanicount=75 Ӧ~hum_he75.wil~hum_she75.wil


    shape>=100 Ӧ data\~weapon_shape.wil ļshape=105 Ӧ~weapon_105.wilÿ1200ͼһ+Ů~weapon_s105.wil
ⷢ⣺
    shine>=100 Ӧ data\~weapon_we+shine.wil ļshine=105 Ӧ~weapon_we105.wilÿ1200ͼһ+Ů~weapon_swe105.wil


    Appr>=5000ģȡdata\~mon_(Appr  100).wilappr=5005 Ӧ~mon_50.wilÿ360ͼƬΪһֻ֣֧һļ99ֻ

NPC
    Appr>=1000ģȡdata\~npc_(Appr  100).wilappr=1005 Ӧ~npc_10.wilÿ60ͼƬΪһNPC

Ʒ
    Looks>=20000ȡdata\~item_bg+(looks  10000).willooks=20005 Ӧ~item_bg2.wil 5ͼ
Ʒ
    Looks>=20000ȡdata\~item_st+(looks  10000).willooks=20005 Ӧ~item_st2.wil 5ͼ
Ʒ
    Looks>=20000ȡdata\~item_dn+(looks  10000).willooks=20005 Ӧ~item_dn2.wil 5ͼ

¹֣ļб༭ȻʹԶ£ļ\Wav\sound2.lst
ֹ	200 + Appr * 10;
	200 + Appr * 10 + 1;
﹥	200 + Appr * 10 + 2;
	200 + Appr * 10 + 3;
ܹ		200 + Appr * 10 + 4;
		200 + Appr * 10 + 5;
⹥	200 + Appr * 10 + 6;
һ£ֻӡֹ͡﹥͡
----------------------------






2016/7/23	£ + ͻ
---------------------------------------------------------------------------
ףͿ+˵ģ
ϰ汾#defineʧЧ
ﱨ
Race60/61 ιʹӢ۴ע62Ǵι֣
176⣬Ҫ
ߵġά-ѯӽ/Ԫ/ʯ/ȵͳ
ٿͻ/CDͻ˵CPUռ
װƱ
ﱻصڿԹΧĿ
SETSCTIMER չ15ԭ10
ŻӢۼб
ŻƷб
ŻƷ
Ż·/ܲ/㲥/Ѱ...
ﲻHM/MPָʵڵӰ
Ż/̣ռøٵCPUԴ






2016/07/08	£
---------------------------------------------------------------------------
õӢػģʽ
ӢöϵĹٶģʽ
콢/CD ħIDΧ1~127޸Ϊ1~254رʱ侫ȿ
Żӳٽű






2016/07/05	£
---------------------------------------------------------------------------
װƱϵͳbug
Ƽbug
ﱨ
Żݶд
ϻ
õӢػģʽ
ӢöϵĹٶģʽ
콢/CD ħIDΧ1~127޸Ϊ1~254رʱ侫ȿ






2016/07/01	£
---------------------------------------------------------------------------
0628ϻŲbug
NPCִbugҪ
Ż






2016/6/28	£ + StdItemConverter
---------------------------------------------------------------------------
 INI_SORT_READ_SECTION_VALUES Ϊʱȡ
 INI_SORT_DELETE 浽ڴıʶ(All=ɾ)	//ɾӦڴ־бϢ
 TUserEngine::ProcessHumans -> Ready, Save, Load...
ܳƷʾ
NPCDropItemMap Ӳ7ΪƷʰȡĵʱ0ʰȡ
reloadnpc all һϵֱ
ùɱͻ޸ùɱЧ
magic.dbPower/MaxPower/DefPower/DefMaxPowerħ޸Ϊܸ˵ֵӰ
magic.dbPenetratePenetrateRateֶΣʹstditemConverter߽չPenetrateֵ1ӷ2ħܣ4ħ1+2=3ӷħܣPenetrateRateΪ͸ʣٷֱȣ
Żħ
CHECKITEMDURACOUNT Ʒ Ƿ(0=δģ1=) >/</= 	//ָƷǷ־(ھ...)
TakeDuraItem Ʒ Ƿ(0=δģ1=) 			//ָ߱Ʒ()(ھ...)






2016/6/12	£ + ̨ + ͻ + 
---------------------------------------------------------------------------
̨ӱĿ¼
װӱģʽأԭ㷽ʽ
չװڴй©
˸װЧ󣬸ΪЧװħЧȻڵ⣬Ȼ˿Ч
ɱħµ˺
汾ᱨ"%d ..."Ĵ
ŻƷسܣΪֵ
ʱȡϵƷ˺/IP/ɫܣЧ̫ͣDBƷ󶨣ͬʱڹ-ȫֹҳڰ
ͻװʾ
ͻǿ
stditem.dbMaxOverlapصʹµStditemConvert.exeչstditem.db
givegiveexԶص
Ż
־鲻ݵ
䣺
READLINE ļ  S10 						//ȡָһַS10A10ȫ֣
DELETELINE ļ  S10 					//ȡָһַS10A10ȫ֣,ɾ
WRITELINE ļ  S10// 				//дֵָǷʽ
INSERTLINE ļ  S10// 				//ֵָǸ

ЧʵIniļNPC
-----------------------------------------------------------
INI_READ_STRING		ļ   S/A 			//Iniġļ--ȡֵַS/A
INI_WRITE_STRING	ļ   S/A// 		//дֵַIniġļ--
INI_READ_INTEGER	ļ   P/G/D/M/H		//Iniġļ--ȡֵP/G/D/M/H
INI_WRITE_INTEGER	ļ   P/G/D/M/H/ 		//дֵIniġļ--
INI_WRITE_INTEGER_EX	ļ   +/-/= P/G/D/M/H/ 	//дֵIniġļ--
INI_DELETE_KEY		ļ  				//ɾIniġļ--
INI_SECTION_COUNT	ļ  P/G/D/M/H			//ȡIniġļ-ڡµļֵP/G/D/M/H
INI_CLEAR_SECTION	ļ 				//Iniġļ-ڡµļֵ
INI_ERASE_SECTION	ļ 				//ɾIniġļ-ڡֵ
INI_SAVE		ļ					//浽ļĲԶ棬ƵıȽ϶CPUԴ
INI_RELOAD		ļ					//¼ļֶ޸ıļ¡

INI_SORT_READ_SECTION_VALUES	ļ  ֵ(0=/1=ֵ) (0=ַ/1=) (0/1) 浽ڴıʶ 浽ļ(0/1)
INI_SORT_SECTION_VALUES_COUNT	浽ڴıʶ P/G/D/M/H		//ȡָʶбP/G/D/M/H˽ڣбһ
INI_SORT_GET_SECTION_STRING	浽ڴıʶ S/A			//ȡָʶַS/A
INI_SORT_GET_IDENT_STRING	浽ڴıʶ  S/A		//ȡָʶַָ  S/A
INI_SORT_GET_VALUE_STRING	浽ڴıʶ  S/A		//ȡָʶֵַָ  S/A
INI_SORT_GET_IDENT_VALUE_STRING	浽ڴıʶ  S/A		//ȡָʶֵַָS/A
INI_SORT_GET_VALUE_INTEGER	浽ڴıʶ  P/G/D/M/H	//ȡָʶָ  ֵ  P/G/D/M/H
INI_SORT_DELETE			浽ڴıʶ(All=ɾ)	//ɾӦڴ־бϢ
-----------------------------------------------------------
NPCʹÿԲοINI_SORT ű.txt






2016/4/18
---------------------------------------------------------------------------
ϸ汾ӢϢ״̬ʧЧ⣬ı·ӢСŻ
ԿڵĹ3ȡЧϷȡΪ900
װ޸ģ
----------------------------
༭װüʾΪգװԣͬʱ5
װڿѡ񡾰ٷֱȡ򡾰
װ޸ΪԣԭǺϲԣԺԭ㷨С
װӼ֧֣ԵڼЧͼһװ֧30	//+Ч빥㣬+Ҫвԣ˺ͶԷӰ

չ:
еĿ2һֻNƷԣһɹʾԶ壬磺
------------------------------------------------------------
[ʯƬ+ħ+]										;ֹƷװ	;2	;ɹĵʾ
â	70    100    0    70    1-5,1-5,0-5,0-5,1-5,0-5,0-5,0-5,0-5,0-5,0-5,0-5,0-5,0-5,	1			2			ɹ|ɹδ|ʧ
	70    100    0    70    1-5,1-5,0-5,1-5,0-5,0-5,0-5,0-5,0-5,0-5,0-5,0-5,0-5,0-5,	1			2 			123456|654321
	70    100    0    70    1-5,1-5,1-5,0-5,0-5,0-5,0-5,0-5,0-5,0-5,0-5,0-5,0-5,0-5,	1			2 
------------------------------------------------------------
ʼʱֻ0~13λãԭԶ






2016/3/26
---------------------------------------------------------------------------
CHECKMAPMONCOUNT ͼSelfʾǰͼ
ӣCHECKMAPRANGEMONNAMECOUNT ͼ(Selfָǰͼ) X Y Χ (*ָ) >/</=/? 	//ָͼ귶ΧڵĹ
Ż촦
ŻϢжӺͷ
Ʒбӡʧѡ
Ӣ۵õΪ0%
ʦӢ޸Ϊ״̬ҲԳ
GMԪˢBUG
Ӣмڰȫbug






2016/3/19
---------------------------------------------------------------------------
---------------------------------------
ͣԱְҵȼңԪݵ㣬0~9ĶӦGM֧޸ģ
ﲻʱֱ޸ݣҪM2DBServerʹãıNPCЧ
---------------------------------------
7GM@ints 0~9 ɫ +/-/= ֵ޸ϸ汾ӵ10֧޸
loginsvr_mysqlעIDܳ






2016/3/14
---------------------------------------------------------------------------
---------------------------------------
NPCINTS 0~9 +/-/= 
ṩʮ¼־ԪУ־Թؼ֡йˣ
ʹ<$INTS0~9>ȡʾӢ<$H.INTS0~9>ȡʾ
MYSQL汾ҪݿTBL_ADDONDBServerԶȡͱݣݿṹοlegendofmir.sql
Ҫѵǰ汾ͨתMYSQLݣͬҪʹñθµDB2MySQL.exe
NPCCHECKINTS 0~9 >/</= 
---------------------------------------
ȫֱ(Var/CheckVar/LoadVar...)BUGߴ˵ȲЧ
ȶ






2016/3/09
---------------------------------------------------------------------------
;GETITEMFLAGżֱƷ
Сbug






2016/1/20
---------------------------------------------------------------------------
ϸ汾(2016/01/11~13)
濪29󣬶֮лսϢԽ






2016/1/13
---------------------------------------------------------------------------
Ӣ۷ɵߵļ
ӿӢԶĿĹӳ
ھ£ﲻһֱ۾ľ
Ĺﱻٻ󣬿ٴˢ£176治ᣬǹʧ
Ż΢ڴͷţ΢޸ΪҪʹá
棬ظտʱӵĳBug
ݶȡͱ߳߼






2016/1/2
---------------------------------------------------------------------------
ӢԶĿԷɵĿ߽й
棬·˳BUG
Ż΢˷ȡܺ·
Ӣ۶Ŀ
ӢɱPKֵʱҲ
ͷź͹
Ӣ۶Ŀ
MonSayMsg.txt ֧±SERVERNAME,SERVERIP, WEBSITE ȫֱ
CURRENTMAPDESC, CURRENTMAP, CURRENTX, CURRENTY, USERNAME, MONKILLER, KILLER
HP, MAXHP, MP, MAXMP ... MAXSC, YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, MILLISECONDS
Ľͻ˵ĸλɱ
ͻӽɫ(NPN)ʾбBOSSʾPKĿĿ
¶Ѿʶ






2015/12/31	ȫ׸£
---------------------------------------------------------------------------
Ʒʦ/ʿְҵӢ
Ӣۻصߵķӳ
ƶT
Ӣʱٶ쳣⣬ӢҰʱ䲹ڿӽҵĶ
ͻʹ΢ʱԴѹУδʾ
ˢƶ







2015/12/18	M2 + RunGateʹ
---------------------------------------------------------------------------
mCryptModule.dllֱƵM2LoginGateRungateĿ¼£ܱ漤롣
ͻӼƷƷͷʾ
ͻʱʧЧ
ƻٻˢ
ͻ˶NPCWebBrowserҳ򲻿
mysql汾dbserverloginsvrļУLoginPrompt=1ÿοҪ룬ʱiniвҪsql롣
ŻLogServer






2015/12/12
---------------------------------------------------------------------------
ȡ񵼺ִ֧QFűܣȡִ֧QFűܣ©
ΪִжűQChatMission-0.txtΪͻ˿ֱִиýűǩҪעűдֹ©
------------------------
ŻNPCִ
ŻշbugԿͻ˷Ч
ͻԶַĬϹˡ@<>/\5ַֹǩǷִ

2015/11/30޸ɱִű
ȡҽг






2015/11/30
---------------------------------------------------------------------------
Żͻغ͹
Żͻ˲
ƷʰȡżµƷ
½űߺٽܿͻ˷
ŻIOCPֵ
ŻͻȾЧ
ŻͻƮѪѪ
߻ƶĿ
ͷħQFunction[@MagSelfFuncXX][@MagTagFuncXX]ĿأĬϹر
ǽ

[@KillPlayXX][@KillPlayMonXX]ʱʹKILLERTYPEɱ/˵
磺
[@KillPlay1]
#IF
KILLERTYPE = 1  //12Ӣۣ3
#ACT
SENDMSG 5 ɱ






2015/11/10
---------------------------------------------------------------------------
޸ϸ汾ͻƬֱ̻˳bug
޸Ϸһصѭ©ᵼ±˳
޸ϸ汾Żͼű治ܶȡ⣬磺¼ļ̵Ʒص...

ݹߵ־ѯЧ
ӿأйʹµˢģʽ൱MonGen.txtйﶼʹµˢģʽЧ
LoginSvrһbugLoginSvrһ©
LoginSvrһ޸Ϊ1122ȷܳɹһأ˺ŵĴں͸ڴbug
LoginSvr mysql汾Ż䣬Ʒע
LoginSvr mysql汾Ӷ룬ʹMD5
Żйϸ汾ֹٶBUG
ٶȣ߶̬(LoadVar,SaveVar)Ч






2015/10/25
---------------------------------------------------------------------------
Ľˢֺ͹йɵͼӹ
ĽŻͼ
Ӣ۹
ͻӾܾȫأ@ ֮ĺϢ棻ͬʱпƿأϷ-Ϣ-ȫֺ
Ӻʾ˽ɫ
ӺڷϽֹ˽
simli.ttfͻdataĿ¼£øԻNPC
߿ͻ˶WzlĶȡЧ






2015/10/14
---------------------------------------------------------------------------
ʦ£¼ͽܳʦĵBUG
쳣
лս߿ɳ12Сʱ
ƿͻϸ

ˢļһڸʽ£
	; x y  Χ  ʱ (0~100) ˢģʽ(0~1)
	-------------------------------------------------------------------
	ˢģʽ=0ʱˢģʽ䣬ǰһbossձɱδʱˢһֻ	//ˢģʽĬΪ0
	ˢģʽ=1ʱˢ¼ʱ1Сʱɱ󣬾1СʱŻٴ
ˢù 
		      

bossĹ￪µˢģʽӺ

Ӽ
	$YEAR		//
	$MONTH		//
	$DAY		//
	$HOUR		//ʱ
	$MINUTE		//
	$SECOND		//
	$MILLISECONDS	//

NPC		//ΪҪͷűȽϴڴ棬Ƶʹ
AddMirrorMap Դͼ ͼ ͼ Сͼ ʹ() ˢ(0,1)
DelMirrorMap ͼ
MirrorMapTime ͼ +/-/= ʱ䣨ӣ	//MirrorMapTime ͼֱӻȡʣʹʱ
ھͼпʹ<$MIRRORMAPTIME>鿴ʣʹʱ䣬¿ͻ˿ֱϽʾ

MobNpc ͼ X Y NPC űļ () ɳ(0,1) űļͼ(0,1)	//ˢNPCűļͼ=1Ҫͼ
DelNpc ͼ X Y									//ˢNPC


űʾ
----------------------------------------
[@AddMirrorMap]
#ACT
AddMirrorMap D71615 MRD71615 [D71615]ľ 0 2 1

[@AddMirrorMap_Success]
#ACT
SENDMSG 5 ͼɹ 255 168
AddMapRoute 3 333 333 M71615 22 33 0
AddMapRoute M71615 21 33 3 332 333 0

[@AddMirrorMap_Failed_SourceMapNotExists]
#SAY
ͼʧܣԴͼڣ\ \
</@main>

[@AddMirrorMap_Failed_MirrorMapExists]
#SAY
ͼʧܣͼѾڣ\ \
</@main>



[@DelMirrorMap]
#ACT
DelMirrorMap MRD71615

[@DelMirrorMap_Success]
#ACT
SENDMSG 5 ɾͼɹ 255 168

[@DelMirrorMap_Failed_MirrorMapNotExists]
#SAY
ɾͼʧܣͼڣ\ \
</@main>

[@DelMirrorMap_Failed_NotMirrorMap]
#SAY
ɾͼʧܣĿǾͼ\ \
</@main>


[@MirrorMapTime]
#ACT
;;MirrorMapTime MRD71615
MirrorMapTime MRD71615 + 1

[@MirrorMapTime_Success]
#SAY
ͼʹʣʱ䣺<$STR(M98)><$STR(M97)>\ \
</@main>

[@MirrorMapTime_Failed_NotMirrorMap]
#SAY
ĿǾͼ\ \
</@main>

[@MirrorMapTime_Failed_MirrorMapNotExists]
#SAY
Ŀ꾵ͼڣ\ \
</@main>
----------------------------------------






2015/10/10
---------------------------------------------------------------------------
ˮģʽʾ
©ܵƷԻҡ
¼ִܳ
LoginGateдʱִ󲢲ܽBUG
ִQManageNPC [@OnStart]
̶ıƷռȨ
ϵͳ
лᴫGMNPC


޴
ʾ
лս
ȫֱͬ
ͬʱװƷԵ






2015/9/30
---------------------------------------------------------------------------
ʱȥַ̣֤߳ȶ
Ӣ۹ģʽʱΪ200ms
޸дĿԱ߹߻ͷ⣨£
޸Զ£CTRL+Aлģʽ²ص
NPCMOVETOCELL X Y NPC	//Զƶ㣬NPCNPCơɺԡ
ӹȵ
رM2ٹܲ
Ż
Ӣٶѵ
Ⲣƹȵ

ͻˣ
סʩᵼ¶ҩʧ
뷨ʹWindowsԭʼ
ȫ뷨״̬£԰1~6ҩʹĸͷħԼʹ~!@ȿַ
ˢ°ť
ӰȫϽǱʶ






2015/9/24
---------------------------------------------------------------------------
2015/9/23ĽӢٻӢ۵
ǷʰȡɱﱬƷ
µķӦȽ
LogingateҪļ룬Confing.ini [Strings] ActivateCode=
½غͿͻ˵ĵ½޸


ͻˣ

״̬԰`~ʰȡƷ
סʩᵼ¶ҩʧ
ʹĸԶ弼ܿݼ޸ԭȿݼΪͻ
CTRL+Z	-> ALT+A	Զһ
V	-> ALT+V	عʬ
O	-> CTRL+O	鿴
P	-> CTRL+P	鿴
T	-> CTRL+T	






2015/9/23
---------------------------------------------------------------------------
Զʼ2ʱĿˢ
Ӣۺ͹Ч
ϸ汾ܳҩƷԶ⣨עҩAnicount=1ҩAnicount=2 ҩҩAnicount=3
׹/˲Ϣƶ֮ħħͷʧ
ĽӢ۵Ⱥ弼ܵͷ
ύڳڳʧbug
Ż߳ͼȡ






2015/9/20
---------------------------------------------------------------------------
޸һbugض»ĴCPU
̴߳/Ӣ//ͨѶ̣Ƿԣ
лʱģʽ㻺
ɻͷźͷŵ淶Χڽж5ʱ䣨ʹ¿ͻ0920ϣɽMagic.DBɻ͵EffectType=2Ŀƶ

ͻˣ
·жϸڹϸʬŻCPU






2015/9/12
---------------------------------------------------------------------------
޸һɵԶرյ©
޸ͻƮѪʵʵѪBUG
·
ʹƷܵڴbug
½Ʒʧbug






2015/8/22	+ͻ Ҫ
---------------------------------------------------------------------------
õļд!Setup.txt
[Server]
ActivateCode=
һμȽϾãԵ3ң¿򼴿ɡ

NPC·űСbug
ƷbugƷ۸
Ʒżbug(ͻ)
漫Ʒװ˸ѡ-Ʒװ-п
ʱ亯Ĵ
żGMbug
ͻزĿbug(ͻ)
--------------------
MonItemsĿ¼µıļһӱ־;GETITEMFLAG(3)3ʾرΪ1/999999993Ʒ
Ұ.txt ļݸʽ£
;GETITEMFLAG(3)  
1/5  200
1/2 ǿЧħҩ
1/2 ǿЧҩ
1/5 ̫ˮ
1/5 ǿЧ̫ˮ
1/99999999 Ϲ
1/99999999 Ϲű
1/99999999 Ϲ
1/99999999 Ϲ
1/99999999 Ϲŵ
1/99999999 Ϲų
--------------------






2015/8/11
---------------------------------------------------------------------------
MapInfo.txtĵͼӲOPTIиòĵͼǰҪĲڴŻPSʺڹֶ࣬˾ȥPKĵͼʹá
طòּơɱЧ
Ƹű

񵼺ִ֧QFű
-------------------------
[1-1]	1
ƶ<Ӣʹ()(334,270)/@_automove 334:270:ʡ>\űִзʽ1<LABEL=@QFLabel>ִнű</>\űִзʽ2<ִнű/@QFLabel>...\űִзʽ3<PIC=DscStart0.bmp&LABEL=@QFLabel>ͨ




2015/8/7
---------------------------------------------------------------------------
Żַ·
Żģ飬бȽϴӰз
Ľˢģʽˢٶȼͬģʽܸˢָͬʱӻϵˢģʽṩѡ
ƹȶ
ڶȡƷbug
ӹȼݿأ󣬹ȵͬǰ汾ġ
Ż촦
ȶ


2015/7/30
---------------------------------------------------------------------------
Χȡ̯ʧbug
˺ط¼ʱżʾϢbug
ʱﲻʾ
żָﱨ
ι/ʱ۲ȷʾbug
ӾΧƣڲã귶ΧX=18 Y=16
DBSǰʹóƺźʾʱװزbug (MySQL汾)

SENDMSG 5 ͨ1<LABEL=@QFLabel&HINT=нű>[ִнű]</>ͨ2 255 168 65000	//ö+ִнű
SENDMSG 5 ͨ1<PIC=DscStart0.bmp&LABEL=@QFLabel>ͨ2 255 168 65000	//ö+ťִнűDscStart0.bmplui.pkg
SENDMSG 5 <URL=www.XXXXX.com&HINT=վ>ʹٷ</> 255 168
öҪ¿ͻ֧֡



2015/7/19
---------------------------------------------------------------------------
棺
ϸ汾һȽϴڴй©
ѻͼظbug
ڳڴ
żֹ
ReQuestBuildGuild bug...
ŻReGetHumanNameHumamOperation...
Żͼ̣ӵͼڴ
ͨѶö߳IOCPģʽ
ĽͼܹܣڴƬ
ӵͼڴ濪֧
֮bug
dbƺŵ weight = 1ͼƬַΪʾ
˿ˢֿ
ŻȫֱӦò

ݴȡʽMySQL(MySQL汾)
m2 Ľڴ̣߹ȣCPUʹʣִ
m2dbsݴȡָö߳ģʽ(MySQL汾)
GameCenterӡ߷ã֧MySQLָѹָҪMySQLbinĿ¼·gzip.exe(MySQL汾)




½Ŷӹܣ +  + ͻ ϣ
---------------------------------------------------------------------------
MaxUserForLoginWait=8000			ʵ½ϷŶӣֵ0رյ½Ŷӹܡ
LoginWaitTimeRate=0.800000			½ȴʱ = (ʵ - MaxUserForLoginWait) * LoginWaitTimeRate
OnlinePlayerCountRate=13.240000			Ŷʱ = ʵ * OnlinePlayerCountRate




:
---------------------------------------------------------------------------
˺ԣֻ
չHeroDBݿ,ʹStditemConvertߣȻֵ
Monster.DBģ
RaceEx		0=δ壬1=壬2=壬3=4=壬5=ħ
ShapeEx		0=δ壬1=Сͣ2=ͣ3=ͣ4= עĿǰδã

Stditem.DBģ
RaceDamage  ˺ֵ 0~255
ShapeDamage ˺ֵ 0~255 עĿǰδã

@supermake 1 24 0~255	//˺ֵ˺˺ֵ.ǰ3˺3˺˺ֵͬʱһ
@supermake 1 25 1~31	//˺Ե壬1=壬2=壬4=8=壬16=ħ壬Զ棬ӦֵӼɣֵȷδãͻʾ˺ +xx%δ
			//Ҫ2Թ@supermake 1 25 3
			//Ҫ壬壬Թ@supermake 1 25 7
űGIVEGIVEEXUPGRADEITEMUPGRADEITEMEX ͬԵ








1װPKĿ걬 ޸Ϊ ɱʣʹðٷֱȼ㣬ڲֹЧԹҲЧ
   ʽ = ԭ + ((ɱ - ) / 100 * ԭ);
   ע/ԭ/ɱ/ ǰٷֱȣ 
   ԭ10%ɱ 50%0%ݹʽ10 + (( 50 - 0) / 100 * 10) = 15ձʾ15%
   ԭ10%ɱ100%0%ݹʽ10 + ((100 - 0) / 100 * 10) = 20ձʾ20%

2 ޸Ϊʹðٷֱȼ

3ӢȣRECE=61ι֧

4ĽˢֻƣģʽܣٷڴƬ׼ȷˢʱ

5HGEͻŻʹûǽͬʱ2000֣CPUҲΪ0~1%

6ŻڷӲ䱸£ԣ߲3000ͬʱɳս

MonSpAbilList  춾 ̶ ƶ
˵--ӹ¼ˢʱ أĬϹر
˵-Ʒװ-ãװ־0Ƿʧ أѡʧʧЧ
޸ĸƺʱԶ



HGEͻֹ֧ӣ
߶;81;124;360;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0;
߽;81;124;361;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0;
;81;124;362;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0;
ߵ;115;124;363;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0;
ʹ;81;124;364;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0;
߳;81;124;365;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0;
ͳ˧;81;124;366;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0;
ȭè;210;124;367;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0;
аɳ;127;125;370;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0;
ͺ;81;125;371;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0;
;87;125;372;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0;
;81;125;373;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0;
;87;125;374;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0;
;128;125;375;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0;
ѵ;81;125;376;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0;
;81;125;377;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0;
ʦ;129;125;378;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;2000;1;0;2050;0;0;0;
ʦ;81;125;379;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0;
Ǵ;159;125;3710;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0;
m38_11;160;125;3711;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0;
m38_12;160;125;3712;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0;
m38_13;160;125;3713;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0;


