Advertisement
Guest User

Untitled

a guest
Apr 18th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.53 KB | None | 0 0
  1. import MySQLdb
  2. host_mysql = 'localhost'
  3. user_mysql = 'mt2'
  4. passwd_mysql = 'mt2!@#'
  5. def mob_proto():
  6. rank = {
  7. 1: "S_PAWN",
  8. 2: "KNIGHT",
  9. 3: "S_KNIGHT",
  10. 4: "BOSS",
  11. 5: "KING",
  12. }
  13.  
  14. typeee = {
  15. 1: "NPC",
  16. 2: "STONE",
  17. 3: "WARP",
  18. 4: "DOOR",
  19. 5: "BUILDING",
  20. 7: "POLYMORPH_PC",
  21. 8: "HORSE",
  22. 9: "GOTO",
  23. }
  24.  
  25. battletype = {
  26. 2: "RANGE",
  27. 3: "MAGIC",
  28. 4: "SPECIAL",
  29. 5: "POWER",
  30. 6: "TANKER",
  31. }
  32.  
  33. def get_rank(level):
  34. if level in rank:
  35. return "\"" + rank[level] + "\""
  36. else:
  37. return "\"PAWN\""
  38.  
  39. def get_type(typee):
  40. if typee in typeee:
  41. return "\"" + typeee[typee] + "\""
  42. else:
  43. return "\"MONSTER\""
  44.  
  45. def get_battletype(battle):
  46. if battle in battletype:
  47. return "\"" + battletype[battle] + "\""
  48. else:
  49. return "\"MELEE\""
  50.  
  51. def get_flag(flag):
  52. if flag == "":
  53. return flag
  54. else:
  55. return "\"" + flag + "\""
  56.  
  57. def get_race(race):
  58. if race == "":
  59. return race
  60. else:
  61. return "\"" + race + "\""
  62.  
  63. def get_immune(immune):
  64. if immune == "":
  65. return immune
  66. else:
  67. return "\"" + immune + "\""
  68.  
  69. def get_folder(folder):
  70. if folder == "":
  71. return "\"wolf\""
  72. else:
  73. return "\"" + folder + "\""
  74.  
  75. print "Laczenie z baza danych..."
  76. data = "player"
  77. db = MySQLdb.connect(host_mysql,user_mysql,passwd_mysql,data)
  78. cur = db.cursor()
  79. print "Polaczono."
  80. cur.execute("select * from mob_proto")
  81. rows = cur.fetchall()
  82. out_file_mobproto = open("mob_proto.txt", "w")
  83. out_file_mobproto.write('"Vnum" "Name" "Rank" "Type" "BattleType" "Level" "Size" "AiFlags" "MountCapacity" "RaceFlags" "ImmuneFlags" "Empire" "Folder" "OnClick" "St" "Dx" "Ht" "Iq" "MinDamage" "MaxDamage" "MaxHp" "RegenCycle" "RegenPercent" "MinGold" "MaxGold" "Exp" "Def" "AttackSpeed" "MoveSpeed" "AggressiveHpPct" "AggressiveSight" "AttackRange" "DropItemGroup" "ResurrectionVnum" "EnchantCurse" "EnchantSlow" "EnchantPoison" "EnchantStun" "EnchantCritical" "EnchantPenetrate" "ResistSword" "ResistTwoHanded" "ResistDagger" "ResistBell" "ResistFan" "ResistBow" "ResistFire" "ResistElect" "ResistMagic" "ResistWind" "ResistPoison" "DamMultiply" "SummonVnum" "DrainSp" "MobColor" "PolymorphItem" "SkillLevel0" "SkillVnum0" "SkillLevel1" "SkillVnum1" "SkillLevel2" "SkillVnum2" "SkillLevel3" "SkillVnum3" "SkillLevel4" "SkillVnum4" "SpBerserk" "SpStoneskin" "SpGodspeed" "SpDeathblow" "SpRevive"\n')
  84. out_file_mobnames = open("mob_names.txt", "w")
  85. out_file_mobnames.write("VNUM LOCALE_NAME\n")
  86. print "Konwertowanie mob_proto..."
  87. for row in rows:
  88. mob_proto_line = "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s" % (row[0], "\"" + row[1] + "\"", get_rank(row[3]), get_type(row[4]), get_battletype(row[5]), row[6], row[7], get_flag(row[8]), row[9], get_race(row[10]), get_immune(row[11]), row[12], get_folder(row[13]), row[14], row[15], row[16], row[17], row[18], row[19], row[20], row[21], row[22], row[23], row[24], row[25], row[26], row[27], row[28], row[29], row[30], row[31], row[32], row[33], row[34], row[35], row[36], row[37], row[38], row[39], row[40], row[41], row[42], row[43], row[44], row[45], row[46], row[47], row[48], row[49], row[50], row[51], row[52], row[53], row[54], row[55], row[56], row[57], row[58], row[59], row[60], row[61], row[62], row[63], row[64], row[65], row[66], row[67], row[68], row[69], row[70], row[71])
  89. mob_names_line = "%s\t%s" % (row[0], row[2])
  90. out_file_mobproto.write(mob_proto_line + "\r\n")
  91. out_file_mobnames.write(mob_names_line + "\r\n")
  92. out_file_mobproto.close()
  93. return "Mob_proto skonwertowano!"
  94.  
  95. def item_proto():
  96. item_type = {
  97. 0: "ITEM_NONE",
  98. 1: "ITEM_WEAPON",
  99. 2: "ITEM_ARMOR",
  100. 3: "ITEM_USE",
  101. 4: "ITEM_AUTOUSE",
  102. 5: "ITEM_MATERIAL",
  103. 6: "ITEM_SPECIAL",
  104. 7: "ITEM_TOOL",
  105. 8: "ITEM_LOTTERY",
  106. 9: "ITEM_ELK",
  107. 10: "ITEM_METIN",
  108. 11: "ITEM_CONTAINER",
  109. 12: "ITEM_FISH",
  110. 13: "ITEM_ROD",
  111. 14: "ITEM_RESOURCE",
  112. 15: "ITEM_CAMPFIRE",
  113. 16: "ITEM_UNIQUE",
  114. 17: "ITEM_SKILLBOOK",
  115. 18: "ITEM_QUEST",
  116. 19: "ITEM_POLYMORPH",
  117. 20: "ITEM_TREASURE_BOX",
  118. 21: "ITEM_TREASURE_KEY",
  119. 22: "ITEM_SKILLFORGET",
  120. 23: "ITEM_GIFTBOX",
  121. 24: "ITEM_PICK",
  122. 25: "ITEM_HAIR",
  123. 26: "ITEM_TOTEM",
  124. 27: "ITEM_BLEND",
  125. 28: "ITEM_COSTUME",
  126. 29: "ITEM_DS",
  127. 30: "ITEM_SPECIAL_DS",
  128. 31: "ITEM_EXTRACT",
  129. 32: "ITEM_SECONDARY_COIN",
  130. 33: "ITEM_RING",
  131. 34: "ITEM_BELT"
  132. }
  133.  
  134. item_subtype = {
  135. 1: {
  136. 0: "WEAPON_SWORD",
  137. 1: "WEAPON_DAGGER",
  138. 2: "WEAPON_BOW",
  139. 3: "WEAPON_TWO_HANDED",
  140. 4: "WEAPON_BELL",
  141. 5: "WEAPON_FAN",
  142. 6: "WEAPON_ARROW",
  143. 7: "WEAPON_MOUNT_SPEAR",
  144. 8: "WEAPON_NUM_TYPES",
  145. },
  146. 2: {
  147. 0: "ARMOR_BODY",
  148. 1: "ARMOR_HEAD",
  149. 2: "ARMOR_SHIELD",
  150. 3: "ARMOR_WRIST",
  151. 4: "ARMOR_FOOTS",
  152. 5: "ARMOR_NECK",
  153. 6: "ARMOR_EAR",
  154. 7: "ARMOR_NUM_TYPES",
  155. },
  156. 3 : {
  157. 0: "USE_POTION",
  158. 1: "USE_TALISMAN",
  159. 2: "USE_TUNING",
  160. 3: "USE_MOVE",
  161. 4: "USE_TREASURE_BOX",
  162. 5: "USE_MONEYBAG",
  163. 6: "USE_BAIT",
  164. 7: "USE_ABILITY_UP",
  165. 8: "USE_AFFECT",
  166. 9: "USE_CREATE_STONE",
  167. 10: "USE_SPECIAL",
  168. 11: "USE_POTION_NODELAY",
  169. 12: "USE_CLEAR",
  170. 13: "USE_INVISIBILITY",
  171. 14: "USE_DETACHMENT",
  172. 15: "USE_BUCKET",
  173. 16: "USE_POTION_CONTINUE",
  174. 17: "USE_CLEAN_SOCKET",
  175. 18: "USE_CHANGE_ATTRIBUTE",
  176. 19: "USE_ADD_ATTRIBUTE",
  177. 20: "USE_ADD_ACCESSORY_SOCKET",
  178. 21: "USE_PUT_INTO_ACCESSORY_SOCKET",
  179. 22: "USE_ADD_ATTRIBUTE2",
  180. 23: "USE_RECIPE",
  181. 24: "USE_CHANGE_ATTRIBUTE2",
  182. 25: "USE_BIND",
  183. 26: "USE_UNBIND",
  184. 27: "USE_TIME_CHARGE_PER",
  185. 28: "USE_TIME_CHARGE_FIX",
  186. 29: "USE_PUT_INTO_BELT_SOCKET",
  187. 30: "USE_PUT_INTO_RING_SOCKET",
  188. },
  189. 4: {
  190. 0: "AUTOUSE_POTION",
  191. 1: "AUTOUSE_ABILITY_UP",
  192. 2: "AUTOUSE_BOMB",
  193. 3: "AUTOUSE_GOLD",
  194. 4: "AUTOUSE_MONEYBAG",
  195. 5: "AUTOUSE_TREASURE_BOX",
  196. },
  197. 5: {
  198. 0: "MATERIAL_LEATHER",
  199. 1: "MATERIAL_BLOOD",
  200. 2: "MATERIAL_ROOT",
  201. 3: "MATERIAL_NEEDLE",
  202. 4: "MATERIAL_JEWEL",
  203. 5: "MATERIAL_DS_REFINE_NORMAL",
  204. 6: "MATERIAL_DS_REFINE_BLESSED",
  205. 7: "MATERIAL_DS_REFINE_HOLLY",
  206. },
  207. 6: {
  208. 0: "SPECIAL_MAP",
  209. 1: "SPECIAL_KEY",
  210. 2: "SPECIAL_DOC",
  211. 3: "SPECIAL_SPIRIT",
  212. },
  213. 7: {
  214. 0 : "TOOL_FISHING_ROD",
  215. },
  216. 8: {
  217. 0: "LOTTERY_TICKET",
  218. 1: "LOTTERY_INSTANT",
  219. },
  220. 10: {
  221. 0: "METIN_NORMAL",
  222. 1: "METIN_GOLD",
  223. },
  224. 12: {
  225. 0: "FISH_ALIVE",
  226. 1: "FISH_DEAD",
  227. },
  228. 14: {
  229. 0: "RESOURCE_FISHBONE",
  230. 1: "RESOURCE_WATERSTONEPIECE",
  231. 2: "RESOURCE_WATERSTONE",
  232. 3: "RESOURCE_BLOOD_PEARL",
  233. 4: "RESOURCE_BLUE_PEARL",
  234. 5: "RESOURCE_WHITE_PEARL",
  235. 6: "RESOURCE_BUCKET",
  236. 7: "RESOURCE_CRYSTAL",
  237. 8: "RESOURCE_GEM",
  238. 9: "RESOURCE_STONE",
  239. 10: "RESOURCE_METIN",
  240. 11: "RESOURCE_ORE",
  241. },
  242. 16: {
  243. 0: "UNIQUE_NONE",
  244. 1: "UNIQUE_BOOK",
  245. 2: "UNIQUE_SPECIAL_RIDE",
  246. 3: "UNIQUE_3",
  247. 4: "UNIQUE_4",
  248. 5: "UNIQUE_5",
  249. 6: "UNIQUE_6",
  250. 7: "UNIQUE_7",
  251. 8: "UNIQUE_8",
  252. 9: "UNIQUE_9",
  253. 10: "USE_SPECIAL",
  254. },
  255. 28: {
  256. 0: "COSTUME_BODY",
  257. 1: "COSTUME_HAIR",
  258. 2: "COSTUME_SASH",
  259. 3: "COSTUME_MOUNT",
  260. },
  261. 29: {
  262. 0: "DS_SLOT1",
  263. 1: "DS_SLOT2",
  264. 2: "DS_SLOT3",
  265. 3: "DS_SLOT4",
  266. 4: "DS_SLOT5",
  267. 5: "DS_SLOT6",
  268. },
  269. 31: {
  270. 0: "EXTRACT_DRAGON_SOUL",
  271. 1: "EXTRACT_DRAGON_HEART",
  272. },
  273. }
  274.  
  275. wearflag = {
  276. 1: "WEAR_BODY",
  277. 2: "WEAR_HEAD",
  278. 4: "WEAR_FOOTS",
  279. 8: "WEAR_WRIST",
  280. 16: "WEAR_WEAPON",
  281. 32: "WEAR_NECK",
  282. 64: "WEAR_EAR",
  283. 128: "WEAR_SHIELD",
  284. 256: "WEAR_UNIQUE",
  285. 512: "WEAR_ARROW",
  286. 1024: "WEAR_HAIR",
  287. 2048: "WEAR_ABILITY",
  288. }
  289.  
  290. limittype = {
  291. 1: "LEVEL",
  292. 2: "STR",
  293. 3: "DEX",
  294. 4: "INT",
  295. 5: "CON",
  296. 6: "PC_BANG",
  297. 7: "REAL_TIME",
  298. 8: "REAL_TIME_FIRST_USE",
  299. 9: "TIMER_BASED_ON_WEAR",
  300. }
  301.  
  302. bonus = {
  303. 1: "APPLY_MAX_HP",
  304. 2: "APPLY_MAX_SP",
  305. 3: "APPLY_CON",
  306. 4: "APPLY_INT",
  307. 5: "APPLY_STR",
  308. 6: "APPLY_DEX",
  309. 7: "APPLY_ATT_SPEED",
  310. 8: "APPLY_MOV_SPEED",
  311. 9: "APPLY_CAST_SPEED",
  312. 10: "APPLY_HP_REGEN",
  313. 11: "APPLY_SP_REGEN",
  314. 12: "APPLY_POISON_PCT",
  315. 13: "APPLY_STUN_PCT",
  316. 14: "APPLY_SLOW_PCT",
  317. 15: "APPLY_CRITICAL_PCT",
  318. 16: "APPLY_PENETRATE_PCT",
  319. 17: "APPLY_ATTBONUS_HUMAN",
  320. 18: "APPLY_ATTBONUS_ANIMAL",
  321. 19: "APPLY_ATTBONUS_ORC",
  322. 20: "APPLY_ATTBONUS_MILGYO",
  323. 21: "APPLY_ATTBONUS_UNDEAD",
  324. 22: "APPLY_ATTBONUS_DEVIL",
  325. 23: "APPLY_STEAL_HP",
  326. 24: "APPLY_STEAL_SP",
  327. 25: "APPLY_MANA_BURN_PCT",
  328. 26: "APPLY_DAMAGE_SP_RECOVER",
  329. 27: "APPLY_BLOCK",
  330. 28: "APPLY_DODGE",
  331. 29: "APPLY_RESIST_SWORD",
  332. 30: "APPLY_RESIST_TWOHAND",
  333. 31: "APPLY_RESIST_DAGGER",
  334. 32: "APPLY_RESIST_BELL",
  335. 33: "APPLY_RESIST_FAN",
  336. 34: "APPLY_RESIST_BOW",
  337. 35: "APPLY_RESIST_FIRE",
  338. 36: "APPLY_RESIST_ELEC",
  339. 37: "APPLY_RESIST_MAGIC",
  340. 38: "APPLY_RESIST_WIND",
  341. 39: "APPLY_REFLECT_MELEE",
  342. 40: "APPLY_REFLECT_CURSE",
  343. 41: "APPLY_POISON_REDUCE",
  344. 42: "APPLY_KILL_SP_RECOVER",
  345. 43: "APPLY_EXP_DOUBLE_BONUS",
  346. 44: "APPLY_GOLD_DOUBLE_BONUS",
  347. 45: "APPLY_ITEM_DROP_BONUS",
  348. 46: "APPLY_POTION_BONUS",
  349. 47: "APPLY_KILL_HP_RECOVER",
  350. 48: "APPLY_IMMUNE_STUN",
  351. 49: "APPLY_IMMUNE_SLOW",
  352. 50: "APPLY_IMMUNE_FALL",
  353. 51: "APPLY_SKILL",
  354. 52: "APPLY_BOW_DISTANCE",
  355. 53: "APPLY_ATT_GRADE_BONUS",
  356. 54: "APPLY_DEF_GRADE_BONUS",
  357. 55: "APPLY_MAGIC_ATT_GRADE",
  358. 56: "APPLY_MAGIC_DEF_GRADE",
  359. 57: "APPLY_CURSE_PCT",
  360. 58: "APPLY_MAX_STAMINA",
  361. 59: "APPLY_ATTBONUS_WARRIOR",
  362. 60: "APPLY_ATTBONUS_ASSASSIN",
  363. 61: "APPLY_ATTBONUS_SURA",
  364. 62: "APPLY_ATTBONUS_SHAMAN",
  365. 63: "APPLY_ATTBONUS_MONSTER",
  366. 64: "APPLY_MALL_ATTBONUS",
  367. 65: "APPLY_MALL_DEFBONUS",
  368. 66: "APPLY_MALL_EXPBONUS",
  369. 67: "APPLY_MALL_ITEMBONUS",
  370. 68: "APPLY_MALL_GOLDBONUS",
  371. 69: "APPLY_MAX_HP_PCT",
  372. 70: "APPLY_MAX_SP_PCT",
  373. 71: "APPLY_SKILL_DAMAGE_BONUS",
  374. 72: "APPLY_NORMAL_HIT_DAMAGE_BONUS",
  375. 73: "APPLY_SKILL_DEFEND_BONUS",
  376. 74: "APPLY_NORMAL_HIT_DEFEND_BONUS",
  377. 75: "APPLY_PC_BANG_EXP_BONUS",
  378. 76: "APPLY_PC_BANG_DROP_BONUS",
  379. 77: "APPLY_EXTRACT_HP_PCT",
  380. 78: "APPLY_RESIST_WARRIOR",
  381. 79: "APPLY_RESIST_ASSASSIN",
  382. 80: "APPLY_RESIST_SURA",
  383. 81: "APPLY_RESIST_SHAMAN",
  384. 82: "APPLY_ENERGY",
  385. 83: "APPLY_DEF_GRADE",
  386. 84: "APPLY_COSTUME_ATTR_BONUS",
  387. 85: "APPLY_MAGIC_ATTBONUS_PER",
  388. 86: "APPLY_MELEE_MAGIC_ATTBONUS_PER",
  389. 87: "APPLY_RESIST_ICE",
  390. 88: "APPLY_RESIST_EARTH",
  391. 89: "APPLY_RESIST_DARK",
  392. 90: "APPLY_ANTI_CRITICAL_PCT",
  393. 91: "APPLY_ANTI_PENETRATE_PCT",
  394. 92: "APPLY_RESIST_HUMAN",
  395. 93: "APPLY_RESIST_MONSTER",
  396. }
  397.  
  398. addon_type = {
  399. 180,
  400. 181,
  401. 182,
  402. 183,
  403. 184,
  404. 185,
  405. 186,
  406. 187,
  407. 188,
  408. 189,
  409. 190,
  410. 191,
  411. 192,
  412. 193,
  413. 194,
  414. 195,
  415. 196,
  416. 197,
  417. 198,
  418. 199,
  419. 290,
  420. 291,
  421. 292,
  422. 293,
  423. 294,
  424. 295,
  425. 296,
  426. 297,
  427. 298,
  428. 299,
  429. 1130,
  430. 1131,
  431. 1132,
  432. 1133,
  433. 1134,
  434. 1135,
  435. 1136,
  436. 1137,
  437. 1138,
  438. 1139,
  439. 1170,
  440. 1171,
  441. 1172,
  442. 1173,
  443. 1174,
  444. 1175,
  445. 1176,
  446. 1177,
  447. 1178,
  448. 1179,
  449. 2150,
  450. 2151,
  451. 2152,
  452. 2153,
  453. 2154,
  454. 2155,
  455. 2156,
  456. 2157,
  457. 2158,
  458. 2159,
  459. 2170,
  460. 2171,
  461. 2172,
  462. 2173,
  463. 2174,
  464. 2175,
  465. 2176,
  466. 2177,
  467. 2178,
  468. 2179,
  469. 3160,
  470. 3161,
  471. 3162,
  472. 3163,
  473. 3164,
  474. 3165,
  475. 3166,
  476. 3167,
  477. 3168,
  478. 3169,
  479. 3210,
  480. 3211,
  481. 3212,
  482. 3213,
  483. 3214,
  484. 3215,
  485. 3216,
  486. 3217,
  487. 3218,
  488. 3219,
  489. 5110,
  490. 5111,
  491. 5112,
  492. 5113,
  493. 5114,
  494. 5115,
  495. 5116,
  496. 5117,
  497. 5118,
  498. 5119,
  499. 5120,
  500. 5121,
  501. 5122,
  502. 5123,
  503. 5124,
  504. 5125,
  505. 5126,
  506. 5127,
  507. 5128,
  508. 5129,
  509. 7160,
  510. 7161,
  511. 7162,
  512. 7163,
  513. 7164,
  514. 7165,
  515. 7166,
  516. 7167,
  517. 7168,
  518. 7169,
  519. 65159,
  520. 350,
  521. 351,
  522. 352,
  523. 353,
  524. 354,
  525. 355,
  526. 356,
  527. 357,
  528. 358,
  529. 359,
  530. 360,
  531. 361,
  532. 362,
  533. 363,
  534. 364,
  535. 365,
  536. 366,
  537. 367,
  538. 368,
  539. 369,
  540. 1300,
  541. 1301,
  542. 1302,
  543. 1303,
  544. 1304,
  545. 1305,
  546. 1306,
  547. 1307,
  548. 1308,
  549. 1309,
  550. 2340,
  551. 2341,
  552. 2342,
  553. 2343,
  554. 2344,
  555. 2345,
  556. 2346,
  557. 2347,
  558. 2348,
  559. 2349,
  560. 3330,
  561. 3331,
  562. 3332,
  563. 3333,
  564. 3334,
  565. 3335,
  566. 3336,
  567. 3337,
  568. 3338,
  569. 3339,
  570. 5290,
  571. 5291,
  572. 5292,
  573. 5293,
  574. 5294,
  575. 5295,
  576. 5296,
  577. 5297,
  578. 5298,
  579. 5299,
  580. }
  581.  
  582. errors = ""
  583.  
  584. def get_item_type(type, vnum):
  585. global errors
  586. errors = ""
  587. if type in item_type:
  588. return item_type[type]
  589. else:
  590. errors += "Strange type in item %s\r\n" % vnum
  591. return item_type[0]
  592.  
  593. def get_item_subtype(type, subtype, vnum):
  594. global errors
  595. errors = ""
  596. if type in item_subtype:
  597. if subtype in item_subtype[type]:
  598. return item_subtype[type][subtype]
  599. else:
  600. errors += "Strange subtype in item %s\r\n" % vnum
  601. return "NONE"
  602.  
  603. def get_antiflag(antiflag, vnum):
  604. global errors
  605. str = ""
  606. if antiflag >= 131072:
  607. antiflag -= 131072
  608. if len(str) <= 0:
  609. str = "ANTI_SAFEBOX"
  610. else:
  611. str = "ANTI_SAFEBOX | " + str
  612. if antiflag >= 65536:
  613. antiflag -= 65536
  614. if len(str) <= 0:
  615. str = "ANTI_MYSHOP"
  616. else:
  617. str = "ANTI_MYSHOP | " + str
  618. if antiflag >= 32768:
  619. antiflag -= 32768
  620. if len(str) <= 0:
  621. str = "ANTI_STACK"
  622. else:
  623. str = "ANTI_STACK | " + str
  624. if antiflag >= 16384:
  625. antiflag -= 16384
  626. if len(str) <= 0:
  627. str = "ANTI_PKDROP"
  628. else:
  629. str = "ANTI_PKDROP | " + str
  630. if antiflag >= 8192:
  631. antiflag -= 8192
  632. if len(str) <= 0:
  633. str = "ANTI_GIVE"
  634. else:
  635. str = "ANTI_GIVE | " + str
  636. if antiflag >= 4096:
  637. antiflag -= 4096
  638. if len(str) <= 0:
  639. str = "ANTI_SAVE"
  640. else:
  641. str = "ANTI_SAVE | " + str
  642. if antiflag >= 2048:
  643. antiflag -= 2048
  644. if len(str) <= 0:
  645. str = "ANTI_EMPIRE_C"
  646. else:
  647. str = "ANTI_EMPIRE_C | " + str
  648. if antiflag >= 1024:
  649. antiflag -= 1024
  650. if len(str) <= 0:
  651. str = "ANTI_EMPIRE_B"
  652. else:
  653. str = "ANTI_EMPIRE_B | " + str
  654. if antiflag >= 512:
  655. antiflag -= 512
  656. if len(str) <= 0:
  657. str = "ANTI_EMPIRE_A"
  658. else:
  659. str = "ANTI_EMPIRE_A | " + str
  660. if antiflag >= 256:
  661. antiflag -= 256
  662. if len(str) <= 0:
  663. str = "ANTI_SELL"
  664. else:
  665. str = "ANTI_SELL | " + str
  666. if antiflag >= 64:
  667. antiflag -= 64
  668. if len(str) <= 0:
  669. str = "ANTI_GET"
  670. else:
  671. str = "ANTI_GET | " + str
  672. if antiflag >= 32:
  673. antiflag -= 32
  674. if len(str) <= 0:
  675. str = "ANTI_MUDANG"
  676. else:
  677. str = "ANTI_MUDANG | " + str
  678. if antiflag >= 16:
  679. antiflag -= 16
  680. if len(str) <= 0:
  681. str = "ANTI_SURA"
  682. else:
  683. str = "ANTI_SURA | " + str
  684. if antiflag >= 8:
  685. antiflag -= 8
  686. if len(str) <= 0:
  687. str = "ANTI_ASSASSIN"
  688. else:
  689. str = "ANTI_ASSASSIN | " + str
  690. if antiflag >= 4:
  691. antiflag -= 4
  692. if len(str) <= 0:
  693. str = "ANTI_MUSA"
  694. else:
  695. str = "ANTI_MUSA | " + str
  696. if antiflag >= 2:
  697. antiflag -= 2
  698. if len(str) <= 0:
  699. str = "ANTI_MALE"
  700. else:
  701. str = "ANTI_MALE | " + str
  702. if antiflag >= 1:
  703. antiflag -= 1
  704. if len(str) <= 0:
  705. str = "ANTI_FEMALE"
  706. else:
  707. str = "ANTI_FEMALE | " + str
  708. if antiflag == 0 and len(str) > 0:
  709. return "\"" + str + "\""
  710. else:
  711. errors += "Strange antiflag in item %s\r\n" % vnum
  712. return "\"NONE\""
  713.  
  714. def get_flag(flag, vnum):
  715. global errors
  716. str = ""
  717. if flag >= 32768:
  718. flag -= 32768
  719. if len(str) <= 0:
  720. str = "ITEM_APPLICABLE"
  721. else:
  722. str = "ITEM_APPLICABLE | " + str
  723. if flag >= 16384:
  724. flag -= 16384
  725. if len(str) <= 0:
  726. str = "REFINEABLE"
  727. else:
  728. str = "REFINEABLE | " + str
  729. if flag >= 8192:
  730. flag -= 8192
  731. if len(str) <= 0:
  732. str = "LOG"
  733. else:
  734. str = "LOG | " + str
  735. if flag >= 4096:
  736. flag -= 4096
  737. if len(str) <= 0:
  738. str = "ITEM_QUEST"
  739. else:
  740. str = "ITEM_QUEST | " + str
  741. if flag >= 2048:
  742. flag -= 2048
  743. if len(str) <= 0:
  744. str = "QUEST_GIVE"
  745. else:
  746. str = "QUEST_GIVE | " + str
  747. if flag >= 1024:
  748. flag -= 1024
  749. if len(str) <= 0:
  750. str = "QUEST_USE_MULTIPLE"
  751. else:
  752. str = "QUEST_USE_MULTIPLE | " + str
  753. if flag >= 512:
  754. flag -= 512
  755. if len(str) <= 0:
  756. str = "QUEST_USE"
  757. else:
  758. str = "QUEST_USE | " + str
  759. if flag >= 256:
  760. flag -= 256
  761. if len(str) <= 0:
  762. str = "CONFIRM_WHEN_USE"
  763. else:
  764. str = "CONFIRM_WHEN_USE | " + str
  765. if flag >= 128:
  766. flag -= 128
  767. if len(str) <= 0:
  768. str = "ITEM_IRREMOVABLE"
  769. else:
  770. str = "ITEM_IRREMOVABLE | " + str
  771. if flag >= 64:
  772. flag -= 64
  773. if len(str) <= 0:
  774. str = "ITEM_MAKECOUNT"
  775. else:
  776. str = "ITEM_MAKECOUNT | " + str
  777. if flag >= 32:
  778. flag -= 32
  779. if len(str) <= 0:
  780. str = "ITEM_UNIQUE"
  781. else:
  782. str = "ITEM_UNIQUE | " + str
  783. if flag >= 16:
  784. flag -= 16
  785. if len(str) <= 0:
  786. str = "ITEM_SLOW_QUERY"
  787. else:
  788. str = "ITEM_SLOW_QUERY | " + str
  789. if flag >= 8:
  790. flag -= 8
  791. if len(str) <= 0:
  792. str = "COUNT_PER_1GOLD"
  793. else:
  794. str = "COUNT_PER_1GOLD | " + str
  795. if flag >= 4:
  796. flag -= 4
  797. if len(str) <= 0:
  798. str = "ITEM_STACKABLE"
  799. else:
  800. str = "ITEM_STACKABLE | " + str
  801. if flag >= 2:
  802. flag -= 2
  803. if len(str) <= 0:
  804. str = "ITEM_SAVE"
  805. else:
  806. str = "ITEM_SAVE | " + str
  807. if flag >= 1:
  808. flag -= 1
  809. if len(str) <= 0:
  810. str = "ITEM_TUNABLE"
  811. else:
  812. str = "ITEM_TUNABLE | " + str
  813. if flag == 0 and len(str) > 0:
  814. return "\"" + str + "\""
  815. else:
  816. errors += "Strange flag in item %s\r\n" % vnum
  817. return "\"NONE\""
  818.  
  819. def get_wearflag(wear, vnum):
  820. global errors
  821. if wear in wearflag:
  822. return "\"" + wearflag[wear] + "\""
  823. else:
  824. errors += "Strange wearflag in item %s\r\n" % vnum
  825. return "\"NONE\""
  826.  
  827. def get_immuneflag(immune):
  828. return "\"NONE\""
  829.  
  830. def get_limittype(limit):
  831. if limit in limittype:
  832. return "\"" + limittype[limit] + "\""
  833. else:
  834. return "\"LIMIT_NONE\""
  835.  
  836. def get_apply(apply):
  837. if apply in bonus:
  838. return "\"" + bonus[apply] + "\""
  839. else:
  840. return "\"APPLY_NONE\""
  841.  
  842. def socket(sockett):
  843. if sockett == 127:
  844. return 0
  845. else:
  846. return sockett
  847.  
  848.  
  849.  
  850. data = "player"
  851. db = MySQLdb.connect(host_mysql,user_mysql,passwd_mysql,data)
  852. cur = db.cursor()
  853. cur.execute("select * from item_proto")
  854. rows = cur.fetchall()
  855. out_file_itemproto = open("item_proto.txt", "w")
  856. out_file_itemproto.write('"Vnum" "Name" "Type" "SubType" "Size" "AntiFlags" "Flags" "WearFlags" "ImmuneFlags" "Gold" "ShopBuyPrice" "RefinedVnum" "RefineSet" "AlterToMagicItemPercent" "LimitType0" "LimitValue0" "LimitType1" "LimitValue1" "ApplyType0" "ApplyValue0" "ApplyType1" "ApplyValue1" "ApplyType2" "ApplyValue2" "Value0" "Value1" "Value2" "Value3" "Value4" "Value5" "Specular" "GainSocketPercent" "AddonType"\n')
  857. out_file_itemnames = open("item_names.txt", "w")
  858. out_file_itemnames.write("VNUM LOCALE_NAME\n")
  859. print "Konwertowanie item_proto..."
  860. for row in rows:
  861. item_proto_line = "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s" % (row[0], "\"" + row[1] + "\"", "\"" + get_item_type(row[3], row[0]) + "\"" , "\"" + get_item_subtype(row[3], row[4], row[0]) + "\"", row[6] , get_antiflag(row[7], row[0]), get_flag(row[8], row[0]), get_wearflag(row[9], row[0]), get_immuneflag(row[10]), row[11], row[12], row[13], row[14], row[16], get_limittype(row[17]), row[18], get_limittype(row[19]), row[20], get_apply(row[21]), row[22], get_apply(row[23]), row[24], get_apply(row[25]), row[26], row[27], row[28], row[29], row[30], row[31], row[32], row[39], row[40], row[41])
  862. item_names_line = "%s\t%s" % (row[0], row[2])
  863. out_file_itemproto.write(item_proto_line + "\r\n")
  864. out_file_itemnames.write(item_names_line + "\r\n")
  865. out_file_itemproto.close()
  866. print "Item_proto skonwertowano!"
  867.  
  868.  
  869. print mob_proto()
  870. print item_proto()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement