Globals.pm.svn-base
上传用户:market2
上传日期:2018-11-18
资源大小:18786k
文件大小:13k
源码类别:

外挂编程

开发平台:

Windows_Unix

  1. #########################################################################
  2. #  OpenKore - Global variables
  3. #
  4. #  This software is open source, licensed under the GNU General Public
  5. #  License, version 2.
  6. #  Basically, this means that you're allowed to modify and distribute
  7. #  this software. However, if you distribute modified versions, you MUST
  8. #  also distribute the source code.
  9. #  See http://www.gnu.org/licenses/gpl.html for the full license.
  10. #
  11. #  $Revision$
  12. #  $Id$
  13. #
  14. #########################################################################
  15. ##
  16. # MODULE DESCRIPTION: Global variables
  17. #
  18. # This module defines all kinds of global variables.
  19. package Globals;
  20. use strict;
  21. use Exporter;
  22. use base qw(Exporter);
  23. use Modules 'register';
  24. # Do not use any other Kore modules here. It will create circular dependancies.
  25. our %EXPORT_TAGS = (
  26. config  => [qw(%arrowcraft_items %avoid @chatResponses %cities_lut %config %consoleColors %directions_lut %equipTypes_lut %equipSlot_rlut %equipSlot_lut %haircolors @headgears_lut %items_control %items_lut %itemSlotCount_lut %itemsDesc_lut %itemTypes_lut %jobs_lut %maps_lut %masterServers %monsters_lut %npcs_lut %packetDescriptions %portals_lut %responses %sex_lut %shop %skillsDesc_lut %skillsLooks %skillsArea %skillsEncore %skillsSP_lut %spells_lut %emotions_lut %timeout $char %mon_control %priority %routeWeights %pickupitems %rpackets %itemSlots_lut %skillsStatus %portals_los %skillsState %skillsAilments %elements_lut)],
  27. ai      => [qw(@ai_seq @ai_seq_args %ai_v $AI $AI_forcedOff %targetTimeout)],
  28. state   => [qw($accountID $cardMergeIndex @cardMergeItemsID $charID @chars @chars_old %cart @friendsID %friends %incomingFriend %field $field %homunculus $itemsList @itemsID %items $monstersList @monstersID %monsters @npcsID %npcs $npcsList @playersID %players @portalsID @portalsID_old %portals %portals_old $portalsList @storeList $currentChatRoom @currentChatRoomUsers @chatRoomsID %createdChatRoom %chatRooms @skillsID %storage @storageID @arrowCraftID %guild %incomingGuild @spellsID %spells @unknownPlayers @unknownNPCs $statChanged $skillChanged $useArrowCraft %currentDeal %incomingDeal %outgoingDeal @identifyID @partyUsersID %incomingParty @petsID %pets @venderItemList $venderID @venderListsID @articles $articles %venderLists %monsters_old @monstersID_old %npcs_old %items_old %players_old @playersID_old @servers $sessionID $sessionID2 $accountSex $accountSex2 $map_ip $map_port $KoreStartTime $secureLoginKey $initSync $lastConfChangeTime $petsList $playersList $portalsList @playerNameCacheIDs %playerNameCache %pet $pvp @cashList %repairList $slavesList @slavesID %slaves)],
  29. network => [qw($remote_socket $net $messageSender $charServer $conState $conState_tries $encryptVal $ipc $bus $lastPacketTime $masterServer $lastswitch $packetParser $bytesSent $bytesReceived $incomingMessages $outgoingClientMessages $enc_val1 $enc_val2)],
  30. interface => [qw($interface)],
  31. misc    => [qw($quit $reconnectCount @lastpm %lastpm @privMsgUsers %timeout_ex $shopstarted $dmgpsec $totalelasped $elasped $totaldmg %overallAuth %responseVars %talk $startTime_EXP $startingZenny @monsters_Killed $bExpSwitch $jExpSwitch $totalBaseExp $totalJobExp $shopEarned %itemChange $XKore_dontRedirect $monkilltime $monstarttime $startedattack $firstLoginMap $sentWelcomeMessage $versionSearch $monsterBaseExp $monsterJobExp %descriptions %flags %damageTaken $logAppend @sellList $userSeed $taskManager $mailList $auctionList $hotkeyList)],
  32. syncs => [qw($syncSync $syncMapSync)],
  33. cmdqueue => [qw($cmdQueue @cmdQueueList $cmdQueueStartTime $cmdQueueTime @cmdQueuePriority)],
  34. );
  35. our @EXPORT = (
  36. @{$EXPORT_TAGS{config}},
  37. @{$EXPORT_TAGS{ai}},
  38. @{$EXPORT_TAGS{state}},
  39. @{$EXPORT_TAGS{network}},
  40. @{$EXPORT_TAGS{interface}},
  41. @{$EXPORT_TAGS{misc}},
  42. @{$EXPORT_TAGS{syncs}},
  43. @{$EXPORT_TAGS{cmdqueue}},
  44. );
  45. # Configuration variables
  46. our %arrowcraft_items;
  47. our %avoid;
  48. our @chatResponses;
  49. our $char;
  50. our %cities_lut;
  51. our %config;
  52. our %consoleColors;
  53. our %equipTypes_lut;
  54. our %equipSlot_lut = (
  55. '0'    => 'Item',
  56. '1'    => 'lowHead',
  57. '2'    => 'rightHand',
  58. '4'    => 'robe',
  59. '8'    => 'rightAccessory',
  60. '16'   => 'armor',
  61. '32'   => 'leftHand',
  62. '64'   => 'shoes',
  63. '128'  => 'leftAccessory',
  64. '256'  => 'topHead',
  65. '512'  => 'midHead',
  66. '1024' => 'carry', #used in messyKore don't know if it actually exists
  67. '32768'   => 'arrow' #just use an made up ID since arrow doesn't have any
  68. );
  69. our %equipSlot_rlut = (
  70. 'Item'           => 0,
  71. 'lowHead'        => 1,
  72. 'rightHand'      => 2,
  73. 'robe'           => 4,
  74. 'rightAccessory' => 8,
  75. 'armor'          => 16,
  76. 'leftHand'       => 32,
  77. 'shoes'          => 64,
  78. 'leftAccessory'  => 128,
  79. 'topHead'        => 256,
  80. 'midHead'        => 512,
  81. 'carry'   => 1024,
  82. 'arrow'          => '' #arrow seems not to have any ID
  83. );
  84. our %elements_lut;
  85. our %directions_lut;
  86. our %haircolors;
  87. our @headgears_lut;
  88. our %items_control;
  89. our %items_lut;
  90. our %itemSlotCount_lut;
  91. our %itemsDesc_lut;
  92. our %itemTypes_lut;
  93. our %itemSlots_lut;
  94. our %maps_lut;
  95. our %masterServers;
  96. our %mon_control;
  97. our %monsters_lut;
  98. our %npcs_lut;
  99. our %packetDescriptions;
  100. our %portals_los;
  101. our %portals_lut;
  102. our %priority;
  103. our %responses;
  104. our %routeWeights;
  105. our %rpackets;
  106. our %sex_lut;
  107. our %shop;
  108. our %skillsDesc_lut;
  109. our %skillsSP_lut;
  110. our %skillsLooks;
  111. our %skillsAilments;
  112. our %skillsArea;
  113. our %skillsEncore;
  114. our %skillsState;
  115. our %skillsStatus;
  116. our %spells_lut;
  117. our %timeout;
  118. our %jobs_lut = (
  119. 0 => 'Novice',
  120. 1 => 'Swordsman',
  121. 2 => 'Mage',
  122. 3 => 'Archer',
  123. 4 => 'Acolyte',
  124. 5 => 'Merchant',
  125. 6 => 'Thief',
  126. 7 => 'Knight',
  127. 8 => 'Priest',
  128. 9 => 'Wizard',
  129. 10 => 'Blacksmith',
  130. 11 => 'Hunter',
  131. 12 => 'Assassin',
  132. 13 => 'Peco Knight',
  133. 14 => 'Crusader',
  134. 15 => 'Monk',
  135. 16 => 'Sage',
  136. 17 => 'Rogue',
  137. 18 => 'Alchemist',
  138. 19 => 'Bard',
  139. 20 => 'Dancer',
  140. 21 => 'Peco Crusader',
  141. 22 => 'Wedding Suit',
  142. 23 => 'Super Novice',
  143. 24 => 'Gunslinger',
  144. 25 => 'Ninja',
  145. 161 => 'High Novice',
  146. 162 => 'High Swordsman',
  147. 163 => 'High Magician',
  148. 164 => 'High Archer',
  149. 165 => 'High Acolyte',
  150. 166 => 'High Merchant',
  151. 167 => 'High Thief',
  152. 168 => 'Lord Knight',
  153. 169 => 'High Priest',
  154. 170 => 'High Wizard',
  155. 171 => 'Whitesmith',
  156. 172 => 'Sniper',
  157. 173 => 'Assassin Cross',
  158. 174 => 'Peco Lord Knight',
  159. 175 => 'Paladin',
  160. 176 => 'Champion',
  161. 177 => 'Professor',
  162. 178 => 'Stalker',
  163. 179 => 'Creator',
  164. 180 => 'Clown',
  165. 181 => 'Gypsy',
  166. 4001 => 'High Novice',
  167. 4002 => 'High Swordsman',
  168. 4003 => 'High Magician',
  169. 4004 => 'High Archer',
  170. 4005 => 'High Acolyte',
  171. 4006 => 'High Merchant',
  172. 4007 => 'High Thief',
  173. 4008 => 'Lord Knight',
  174. 4009 => 'High Priest',
  175. 4010 => 'High Wizard',
  176. 4011 => 'Whitesmith',
  177. 4012 => 'Sniper',
  178. 4013 => 'Assassin Cross',
  179. 4014 => 'Peco Lord Knight',
  180. 4015 => 'Paladin',
  181. 4016 => 'Champion',
  182. 4017 => 'Professor',
  183. 4018 => 'Stalker',
  184. 4019 => 'Creator',
  185. 4020 => 'Clown',
  186. 4021 => 'Gypsy',
  187. 4022 => 'Peco Paladin',
  188. 4023 => 'Baby Novice',
  189. 4024 => 'Baby Swordsman',
  190. 4025 => 'Baby Magician',
  191. 4026 => 'Baby Archer',
  192. 4027 => 'Baby Acolyte',
  193. 4028 => 'Baby Merchant',
  194. 4029 => 'Baby Thief',
  195. 4030 => 'Baby Knight',
  196. 4031 => 'Baby Priest',
  197. 4032 => 'Baby Wizard',
  198. 4033 => 'Baby Blacksmith',
  199. 4034 => 'Baby Hunter',
  200. 4035 => 'Baby Assassin',
  201. 4036 => 'Baby Peco Knight',
  202. 4037 => 'Baby Crusader',
  203. 4038 => 'Baby Monk',
  204. 4039 => 'Baby Sage',
  205. 4040 => 'Baby Rogue',
  206. 4041 => 'Baby Alchemist',
  207. 4042 => 'Baby Bard',
  208. 4043 => 'Baby Dancer',
  209. 4044 => 'Baby Peco Crusader',
  210. 4045 => 'Super Baby', # or Baby Super Novice, I like the way eAthena calls it though
  211. 4046 => 'Taekwon',
  212. 4047 => 'Star Gladiator',
  213. 4048 => 'Flying Star Gladiator',
  214. 4049 => 'Soul Linker',
  215. 4050 => 'Munak',
  216. 4051 => 'Death Knight',
  217. 4052 => 'Dark Collector',
  218. 4054 => 'Rune Knight',
  219. 4055 => 'Warlock',
  220. 4056 => 'Ranger',
  221. 4057 => 'Arch Bishop',
  222. 4058 => 'Mechanic',
  223. 4059 => 'Glt. Cross',
  224. 4060 => 'Rune Knight',
  225. 4061 => 'Warlock',
  226. 4062 => 'Ranger',
  227. 4063 => 'Arch Bishop',
  228. 4064 => 'Mechanic',
  229. 4065 => 'Glt. Cross',
  230. 4066 => 'Royal Guard',
  231. 4067 => 'Sorcerer',
  232. 4068 => 'Minstrel',
  233. 4069 => 'Wanderer',
  234. 4070 => 'Sura',
  235. 4071 => 'Genetic',
  236. 4072 => 'Shadow Chaser',
  237. 4073 => 'Royal Guard',
  238. 4074 => 'Sorcerer',
  239. 4075 => 'Minstrel',
  240. 4076 => 'Wanderer',
  241. 4077 => 'Sura',
  242. 4078 => 'Genetic',
  243. 4079 => 'Shadow Chaser',
  244. 4080 => 'Rune Knight',
  245. 4081 => 'Rune Knight',
  246. 4082 => 'Royal Guard',
  247. 4083 => 'Royal Guard',
  248. # Homunculus
  249. 6001 => 'Lif',
  250. 6002 => 'Amistr',
  251. 6003 => 'Filir',
  252. 6004 => 'Vanilmirth',
  253. 6005 => 'Lif 2',
  254. 6006 => 'Amistr 2',
  255. 6007 => 'Filir 2',
  256. 6008 => 'Vanilmirth 2',
  257. 6009 => 'High Lif',
  258. 6010 => 'High Amistr',
  259. 6011 => 'High Filir',
  260. 6012 => 'High Vanilmirth',
  261. 6013 => 'High Lif 2',
  262. 6014 => 'High Amistr 2',
  263. 6015 => 'High Filir 2',
  264. 6016 => 'High Vanilmirth 2',
  265. # Mercenary
  266. 6017 => 'Mercenary Archer 1',
  267. 6018 => 'Mercenary Archer 2',
  268. 6019 => 'Mercenary Archer 3',
  269. 6020 => 'Mercenary Archer 4',
  270. 6021 => 'Mercenary Archer 5',
  271. 6022 => 'Mercenary Archer 6',
  272. 6023 => 'Mercenary Archer 7',
  273. 6024 => 'Mercenary Archer 8',
  274. 6025 => 'Mercenary Archer 9',
  275. 6026 => 'Mercenary Archer 10',
  276. 6027 => 'Mercenary Lancer 1',
  277. 6028 => 'Mercenary Lancer 2',
  278. 6029 => 'Mercenary Lancer 3',
  279. 6030 => 'Mercenary Lancer 4',
  280. 6031 => 'Mercenary Lancer 5',
  281. 6032 => 'Mercenary Lancer 6',
  282. 6033 => 'Mercenary Lancer 7',
  283. 6034 => 'Mercenary Lancer 8',
  284. 6035 => 'Mercenary Lancer 9',
  285. 6036 => 'Mercenary Lancer 10',
  286. 6037 => 'Mercenary Swordman 1',
  287. 6038 => 'Mercenary Swordman 2',
  288. 6039 => 'Mercenary Swordman 3',
  289. 6040 => 'Mercenary Swordman 4',
  290. 6041 => 'Mercenary Swordman 5',
  291. 6042 => 'Mercenary Swordman 6',
  292. 6043 => 'Mercenary Swordman 7',
  293. 6044 => 'Mercenary Swordman 8',
  294. 6045 => 'Mercenary Swordman 9',
  295. 6046 => 'Mercenary Swordman 10'
  296. );
  297. # AI
  298. our @ai_seq;
  299. our @ai_seq_args;
  300. our %ai_v;
  301. our %targetTimeout;
  302. our $AI = 2;
  303. our $AI_forcedOff;
  304. # Game state
  305. our $accountID;
  306. our $cardMergeIndex;
  307. our @cardMergeItemsID;
  308. our @chars;
  309. our @chars_old;
  310. our %cart;
  311. our %field;
  312. our $field;
  313. our @friendsID;
  314. our %friends;
  315. our %homunculus;
  316. our %incomingFriend;
  317. our $itemsList;
  318. our @itemsID;
  319. our %items;
  320. our $monstersList;
  321. our @monstersID;
  322. our %monsters;
  323. our @npcsID;
  324. our %npcs;
  325. our @playersID;
  326. our %players;
  327. our @portalsID;
  328. our @portalsID_old;
  329. our %portals;
  330. our %portals_old;
  331. our @storeList;
  332. our $currentChatRoom;
  333. our @currentChatRoomUsers;
  334. our @chatRoomsID;
  335. our %createdChatRoom;
  336. our %chatRooms;
  337. our @skillsID;
  338. our %storage;
  339. our @storageID;
  340. our @arrowCraftID;
  341. our %guild;
  342. our %incomingGuild;
  343. our @spellsID;
  344. our %spells;
  345. our @unknownPlayers;
  346. our @unknownNPCs;
  347. our $statChanged;
  348. our $skillChanged;
  349. our $useArrowCraft;
  350. our %currentDeal;
  351. our %incomingDeal;
  352. our %outgoingDeal;
  353. our @identifyID;
  354. our $playersList;
  355. our $npcsList;
  356. our $petsList;
  357. our $portalsList;
  358. our $slavesList;
  359. our @slavesID;
  360. our %slaves;
  361. our @petsID;
  362. our %pets;
  363. our $pvp;
  364. our @venderItemList;
  365. our $venderID;
  366. our @venderListsID;
  367. our @articles;
  368. our $articles;
  369. our %monsters_old;
  370. our @monstersID_old;
  371. our %npcs_old;
  372. our %items_old;
  373. our %players_old;
  374. our @playersID_old;
  375. our @servers;
  376. our $sessionID;
  377. our $sessionID2;
  378. our $accountSex;
  379. our $accountSex2;
  380. our $map_ip;
  381. our $map_port;
  382. our $KoreStartTime;
  383. our $secureLoginKey;
  384. our $initSync;
  385. our $lastConfChangeTime;
  386. our @playerNameCacheIDs;
  387. our %playerNameCache;
  388. our %pet;
  389. our @cashList;
  390. our %repairList;
  391. # Network
  392. our $remote_socket; # Unused, but required for outdated plugins
  393. our $net;
  394. our $messageSender;
  395. our $charServer;
  396. our $conState;
  397. our $conState_tries;
  398. our $encryptVal;
  399. our $ipc;
  400. our $bus;
  401. our $lastPacketTime;
  402. our $masterServer;
  403. our $incomingMessages;
  404. our $outgoingClientMessages;
  405. our $lastswitch;
  406. our $enc_val1;
  407. our $enc_val2;
  408. # Interface
  409. our $interface;
  410. # Misc
  411. our $quit;
  412. our $reconnectCount;
  413. our @lastpm;
  414. our %lastpm;
  415. our @privMsgUsers;
  416. our %timeout_ex;
  417. our %overallAuth;
  418. our $shopstarted;
  419. our $dmgpsec;
  420. our $totalelasped;
  421. our $elasped;
  422. our $totaldmg;
  423. our %responseVars;
  424. our %talk;
  425. our $startTime_EXP;
  426. our $startingZenny;
  427. our @monsters_Killed;
  428. our $bExpSwitch;
  429. our $jExpSwitch;
  430. our $totalBaseExp;
  431. our $totalJobExp;
  432. our $shopEarned;
  433. our %itemChange;
  434. our %damageTaken;
  435. our $XKore_dontRedirect;
  436. our $monkilltime;
  437. our $monstarttime;
  438. our $startedattack;
  439. our $firstLoginMap;
  440. our $sentWelcomeMessage;
  441. our $versionSearch;
  442. our $monsterBaseExp;
  443. our $monsterJobExp;
  444. our %descriptions;
  445. our %flags;
  446. our $logAppend;
  447. our @sellList;
  448. our $userSeed;
  449. our $taskManager;
  450. our $bytesSent = 0;
  451. our $bytesReceived = 0;
  452. our $syncSync;
  453. our $syncMapSync;
  454. our $cmdQueue = 0;
  455. our $cmdQueueStartTime;
  456. our $cmdQueueTime = 0;
  457. our @cmdQueueList;
  458. our @cmdQueuePriority = ('ai','aiv','al','debug','chist','dl','exp','friend','g','guild','help','i',
  459. 'ihist','il','ml','nl','p','party','petl','pl','plugin','relog','pml','portals','quit','rc',
  460. 'reload','s','skills','spells','st','stat_add','store','vl','weight');
  461. our $mailList;
  462. our $auctionList;
  463. our $hotkeyList;
  464. END {
  465. undef $interface if defined $interface;
  466. }
  467. return 1;