home *** CD-ROM | disk | FTP | other *** search
/ PC PowerPlay 56 / CDPowerplay56Disc2.iso / demos / blade / data1.cab / Program_Executable_Files / Lib / Reference.py < prev    next >
Encoding:
Text File  |  2000-10-27  |  45.1 KB  |  1,054 lines

  1. import Bladex
  2. import math 
  3.  
  4. PI = math.pi
  5. TWOPI = PI*2.0
  6. #
  7. # Dictionaries Module 
  8. #
  9.  
  10. ######################################
  11. #
  12. # Demo 
  13. #
  14. DEMO_MODE=1
  15. DEMO_PLAYERS=("KN",)
  16. #DEMO_PLAYERS=("AM", "BR", "KN", "DW")
  17.  
  18.  
  19. ######################################
  20. #
  21. # To show debugging info or not
  22. #
  23. DEBUG_INFO   = 0
  24. PYTHON_DEBUG = 2
  25.  
  26. def debugprint(Msg):
  27.     if DEBUG_INFO==0:
  28.         return
  29.     try:
  30.         print Msg
  31.     except TypeError:
  32.         pass
  33. ######################################
  34.  
  35.  
  36. ####################################
  37. #Damage Stuff
  38. #
  39.  
  40. #Damage flags
  41. BODY_UNCLASSIFIED=-1
  42. BODY_HEAD=3
  43. BODY_RARM=6
  44. BODY_LARM=4
  45. BODY_RHAND=7
  46. BODY_LHAND=5
  47. BODY_FRONT=1
  48. BODY_BACK=2
  49. BODY_RLEG=10
  50. BODY_LLEG=8
  51. BODY_RFOOT=11
  52. BODY_LFOOT=9
  53.  
  54. # Particles values
  55. B_PARTICLE_GTYPE_COPY=0
  56. B_PARTICLE_GTYPE_BLEND=1
  57. B_PARTICLE_GTYPE_ADD=2
  58. B_PARTICLE_GTYPE_MUL=3
  59.  
  60. #
  61. # Animation state flag
  62. #
  63. WUEA_NONE=0    #It does not have to wait (relax , jog or similars)
  64. WUEA_WAIT=1    #It has to wait , and is waiting to end it
  65. WUEA_ENDED=2   #It has to wait , and it has just ended
  66.  
  67. # Messages (copied from EntityMessages.hpp)
  68. MESSAGE_PARENT_MOVE=             0x00000001
  69. MESSAGE_PARENT_LINK=             0x00000002
  70. MESSAGE_PARENT_UNLINK=           0x00000003
  71. MESSAGE_CHILD_UNLINK=            0x00000004
  72. MESSAGE_IMPALE=                  0x00000005
  73. MESSAGE_SLASH=                   0x00000006
  74. MESSAGE_START_WEAPON=            0x00000007
  75. MESSAGE_STOP_WEAPON=             0x00000008
  76. MESSAGE_STICK_WEAPON=            0x00000009
  77. MESSAGE_PARENT_NODE_LINK=        0x0000000A
  78. MESSAGE_ELECTRIC_DISCHARGE=      0x0000000B
  79. MESSAGE_PERSONMOV=               0x0000000C
  80. MESSAGE_SETSTATICWEPONMODE=      0x0000000D 
  81. MESSAGE_START_TRAIL=             0x0000000E
  82. MESSAGE_STOP_TRAIL=              0x0000000F
  83.  
  84. # Weapon Modes
  85. UNACTIVE_WEAPON_MODE=    0
  86. START_WEAPON_MODE=       1
  87. ACTIVE_WEAPON_MODE=      2
  88.  
  89. # Exclusion Flags
  90. B_SOLID_MASK_PERSON          =1
  91.  
  92. # Targetting Data
  93. TARGET_ANGLE_MIN                 = (1.0*PI/180.0)
  94. TARGET_ANGLE_MAX                 = (4.0*PI/180.0)
  95.  
  96. ENERGY_LOW_LEVEL=0.25
  97.  
  98. MaterialOnHitInfo ={}
  99.  
  100. ######################################
  101. # Sound Tables (Please complete these lists, these are just examples)
  102. # Please check that any sounds in the list call the SendNotify=1 in AniSound.py
  103.  
  104. # Sound Flags
  105. SND_UNCLASSIFIED=-1
  106. SND_ARROW=0        # Sonidas Flechas (Arrow sounds)
  107. SND_HIT=1        # Objeto Arrojado o golpeado (thrown objects or hitting sounds)
  108. SND_NPC=2        # Sonido de enemigo.  Por grito o herida (Other NPCs shouting, or injured)
  109. SND_NOISYPC=3    # Sonido de personaje cuando no esta en modo siglo (pisadas) (PC sounds when they're not in silent mode -- footsteps)
  110. SND_PC=4        # Gritas de ataco o herida (Battle cries or injuries of the PC)
  111.  
  112. SoundTypes={}
  113.  
  114. # Sonidas Flechas (Arrow sounds)
  115. #SoundTypes['']=[SND_ARROW]        ???
  116.  
  117. # Objeto Arrojado o golpeado (thrown objects or hitting sounds)
  118. ##SoundTypes['SesgadoCorto']=[SND_HIT]
  119. #SoundTypes['SesgadoLargo']=[SND_HIT]
  120. #SoundTypes['SesgadoCortoGrave']=[SND_HIT]
  121. #SoundTypes['SesgadoLargoGrave']=[SND_HIT]
  122. #SoundTypes['SesgadoCortoAgudo']=[SND_HIT]
  123. #SoundTypes['SesgadoLargoAgudo']=[SND_HIT]
  124. #SoundTypes['GolpeArmaEscudo']=[SND_HIT]
  125. #SoundTypes['GolpeArmaArma']=[SND_HIT]
  126. #SoundTypes['TajoEmpalante']=[SND_HIT]
  127. #SoundTypes['TajoCortante']=[SND_HIT]
  128. #SoundTypes['TajoMutilacion']=[SND_HIT]
  129. SoundTypes['GolpeMaderaLigera']=[SND_HIT]
  130. SoundTypes['GolpeMaderaMediana']=[SND_HIT]
  131. SoundTypes['GolpeMaderaPesada']=[SND_HIT]
  132. SoundTypes['GolpeMetalLigero']=[SND_HIT]
  133. SoundTypes['GolpeMetalMediano']=[SND_HIT]
  134. SoundTypes['GolpeMetalPesado']=[SND_HIT]
  135. SoundTypes['GolpePiedraLigera']=[SND_HIT]
  136. SoundTypes['GolpePiedraMediana']=[SND_HIT]
  137. SoundTypes['GolpePiedraPesada']=[SND_HIT]
  138. SoundTypes['GolpeGenerico2']=[SND_HIT]
  139. SoundTypes['GolpeCristal']=[SND_HIT]
  140. SoundTypes['GolpeCeramicaLigera']=[SND_HIT]
  141. SoundTypes['GolpeCeramicaMediana']=[SND_HIT]
  142. SoundTypes['GolpeCeramicaPesada']=[SND_HIT]
  143. SoundTypes['GolpeCarne']=[SND_HIT]
  144.  
  145. # Sonido de enemigo.  Por grito o herida (Other NPCs shouting, or injured)
  146.  
  147. #SoundTypes['EsfuerzoCorto1Orco']=[SND_NPC]
  148. #SoundTypes['EsfuerzoCorto2Orco']=[SND_NPC]
  149. #SoundTypes['EsfuerzoCorto5Orco']=[SND_NPC]
  150. #SoundTypes['EsfuerzoCorto6Orco']=[SND_NPC]
  151. #SoundTypes['EsfuerzoGolpeArribaOrco']=[SND_NPC]
  152. #SoundTypes['EsfuerzoGolpeFrontalOrco']=[SND_NPC]
  153. #SoundTypes['EsfuerzoGolpeCabezaOrco']=[SND_NPC]
  154. #SoundTypes['EsfuerzoGolpeLateralOrco']=[SND_NPC]
  155. #SoundTypes['MuerteOrco1']=[SND_NPC]
  156. #SoundTypes['MuerteOrco2']=[SND_NPC]
  157. #SoundTypes['MuerteOrco3']=[SND_NPC]
  158. #SoundTypes['MuerteOrco4']=[SND_NPC]
  159. #SoundTypes['HeridaOrco1']=[SND_NPC]
  160. #SoundTypes['HeridaOrco2']=[SND_NPC]
  161. #SoundTypes['HeridaOrco3']=[SND_NPC]
  162.  
  163.  
  164.  
  165. # Battlecries?
  166.  
  167. # Sonido de personaje cuando no esta en modo siglo (pisadas) (PC sounds when they're not in silent mode -- footsteps)
  168.  
  169. SoundTypes['BeberBarb']=[SND_NOISYPC]
  170. SoundTypes['PasoAgua1']=[SND_NOISYPC]
  171. SoundTypes['PasoAgua2']=[SND_NOISYPC]
  172. SoundTypes['PasoAgua3']=[SND_NOISYPC]
  173. SoundTypes['PasoAgua4']=[SND_NOISYPC]
  174. SoundTypes['PasoArena1']=[SND_NOISYPC]
  175. SoundTypes['PasoArena2']=[SND_NOISYPC]
  176. SoundTypes['PasoArena3']=[SND_NOISYPC]
  177. SoundTypes['PasoArena4']=[SND_NOISYPC]
  178. SoundTypes['PasoBarro1']=[SND_NOISYPC] 
  179. SoundTypes['PasoBarro2']=[SND_NOISYPC] 
  180. SoundTypes['PasoBarro3']=[SND_NOISYPC] 
  181. SoundTypes['PasoBarro4']=[SND_NOISYPC] 
  182. SoundTypes['PasoHierba4']=[SND_NOISYPC]
  183. SoundTypes['PasoHierba3']=[SND_NOISYPC]
  184. SoundTypes['PasoHierba2']=[SND_NOISYPC]
  185. SoundTypes['PasoHierba1']=[SND_NOISYPC]
  186. SoundTypes['PasoGrava1']=[SND_NOISYPC]
  187. SoundTypes['PasoGrava2']=[SND_NOISYPC]
  188. SoundTypes['PasoGrava3']=[SND_NOISYPC]
  189. SoundTypes['PasoGrava4']=[SND_NOISYPC]
  190. SoundTypes['PasoGrava5']=[SND_NOISYPC]
  191. SoundTypes['PasoGrava6']=[SND_NOISYPC]
  192. SoundTypes['PasoMaderaTablas1']=[SND_NOISYPC]
  193. SoundTypes['PasoMaderaTablas2']=[SND_NOISYPC]
  194. SoundTypes['PasoMaderaTablas3']=[SND_NOISYPC]
  195. SoundTypes['PasoMaderaPodrida1']=[SND_NOISYPC]
  196. SoundTypes['PasoMaderaPodrida2']=[SND_NOISYPC]
  197. SoundTypes['PasoMaderaPodrida3']=[SND_NOISYPC]
  198. SoundTypes['PasoMadera1']=[SND_NOISYPC]
  199. SoundTypes['PasoMadera2']=[SND_NOISYPC]
  200. SoundTypes['PasoMadera3']=[SND_NOISYPC]
  201. SoundTypes['PasoMetal1']=[SND_NOISYPC]
  202. SoundTypes['PasoMetal2']=[SND_NOISYPC]
  203. SoundTypes['PasoMetal3']=[SND_NOISYPC]
  204. SoundTypes['PasoMetal4']=[SND_NOISYPC]
  205. SoundTypes['PasoNieve1']=[SND_NOISYPC]
  206. SoundTypes['PasoNieve2']=[SND_NOISYPC]
  207. SoundTypes['PasoNieve3']=[SND_NOISYPC]
  208. SoundTypes['PasoNieve4']=[SND_NOISYPC]
  209. SoundTypes['PasoPiedra1']=[SND_NOISYPC]  
  210. SoundTypes['PasoPiedra2']=[SND_NOISYPC]  
  211. SoundTypes['PasoPiedra3']=[SND_NOISYPC]  
  212. SoundTypes['PasoTierra1']=[SND_NOISYPC]
  213. SoundTypes['PasoTierra2']=[SND_NOISYPC]
  214. SoundTypes['PasoTierra3']=[SND_NOISYPC]
  215. SoundTypes['PasoTierra4']=[SND_NOISYPC]
  216. SoundTypes['SaltoInicioBarbaro']=[SND_NOISYPC]
  217. SoundTypes['SaltoFinBarbaro']=[SND_NOISYPC]
  218.  
  219. # Gritos de ataque o herida (Battlecries or injuries of the PC)
  220. SoundTypes['Caida1']=[SND_PC]
  221. SoundTypes['Caida2']=[SND_PC]
  222. SoundTypes['Caida3']=[SND_PC]
  223. SoundTypes['Caida4']=[SND_PC]
  224. SoundTypes['CambiarEscudo']=[SND_PC]
  225. SoundTypes['EsfuerzoCortoAmz']=[SND_PC]
  226. SoundTypes['EsfuerzoCorto1Amz']=[SND_PC]
  227. SoundTypes['EsfuerzoCorto6Amz']=[SND_PC]
  228. SoundTypes['EsfuerzoCorto3Amz']=[SND_PC]
  229. SoundTypes['EsfuerzoCorto4Amz']=[SND_PC]
  230. SoundTypes['EsfuerzoCorto5Amz']=[SND_PC]
  231. SoundTypes['EsfuerzoGolpeFrontalAmz']=[SND_PC]
  232. SoundTypes['EsfuerzoGolpeLateralAmz']=[SND_PC]
  233. SoundTypes['EsfuerzoGolpeCabezaAmz']=[SND_PC]
  234. SoundTypes['EsfuerzoGolpeAtrasAmz']=[SND_PC]
  235. SoundTypes['EsfuerzoAmzMediano']=[SND_PC]
  236. SoundTypes['EsfuerzoGolpeArribaAmz']=[SND_PC]
  237. SoundTypes['EsfuerzoLargoBarbaro']=[SND_PC]
  238. SoundTypes['EsfuerzoCorto1Barbaro']=[SND_PC]
  239. SoundTypes['EsfuerzoCorto2Barbaro']=[SND_PC]
  240. SoundTypes['EsfuerzoCorto3Barbaro']=[SND_PC]
  241. SoundTypes['EsfuerzoCorto4Barbaro']=[SND_PC]
  242. SoundTypes['EsfuerzoCorto5Barbaro']=[SND_PC]
  243. SoundTypes['EsfuerzoCorto6Barbaro']=[SND_PC]
  244. SoundTypes['EsfuerzoGolpeArribaBarbaro']=[SND_PC]
  245. SoundTypes['EsfuerzoGolpeAtrasBarbaro']=[SND_PC]
  246. SoundTypes['EsfuerzoGolpeFrontalBarbaro']=[SND_PC]
  247. SoundTypes['EsfuerzoGolpeCabezaBarbaro']=[SND_PC]
  248. SoundTypes['EsfuerzoGolpeLateralBarbaro']=[SND_PC]
  249. SoundTypes['EsfuerzoGolpeLateralDchBarbaro']=[SND_PC]
  250. SoundTypes['EsfuerzoGolpeAtrasBarbaro']=[SND_PC]
  251. SoundTypes['EsfuerzoGolpeAtras1Barbaro']=[SND_PC]
  252. SoundTypes['EsfuerzoBarbaroMediano']=[SND_PC]
  253. SoundTypes['EsfuerzoBarbaroLargo']=[SND_PC]
  254. SoundTypes['SaltoCortoBarbaro']=[SND_PC]
  255. SoundTypes['EsfuerzoGolpeAtrasBarbaro']=[SND_PC]
  256. SoundTypes['EsfuerzoGolpeAtrasBarbaro']=[SND_PC]
  257. SoundTypes['EsfuerzoCortoDwf']=[SND_PC]
  258. SoundTypes['EsfuerzoCorto1Dwf']=[SND_PC]
  259. SoundTypes['EsfuerzoCorto2Dwf']=[SND_PC]
  260. SoundTypes['EsfuerzoCorto3Dwf']=[SND_PC]
  261. SoundTypes['EsfuerzoCorto4Dwf']=[SND_PC]
  262. SoundTypes['EsfuerzoCorto5Dwf']=[SND_PC]
  263. SoundTypes['EsfuerzoCorto6Dwf']=[SND_PC]
  264. SoundTypes['EsfuerzoGolpeFrontalDwf']=[SND_PC]
  265. SoundTypes['EsfuerzoGolpeLateralDwf']=[SND_PC]
  266. SoundTypes['EsfuerzoGolpeCabezaDwf']=[SND_PC]
  267. SoundTypes['EsfuerzoGolpeAtrasDwf']=[SND_PC]
  268. SoundTypes['EsfuerzoDwfMediano']=[SND_PC]
  269. SoundTypes['EsfuerzoGolpeArribaDwf']=[SND_PC]
  270. SoundTypes['SaltoCortoDwf']=[SND_PC]
  271.  
  272. SoundTypes['Enfundar']=[SND_PC]
  273. SoundTypes['EnfundarAmz']=[SND_PC]
  274. #SoundTypes['MuerteBarbaro1']=[SND_PC]
  275. #SoundTypes['MuerteBarbaro2']=[SND_PC]
  276. #SoundTypes['MuerteBarbaro3']=[SND_PC]
  277. #SoundTypes['MuerteBarbaro4']=[SND_PC]
  278. #SoundTypes['HeridaBarbaro1']=[SND_PC]
  279. #SoundTypes['HeridaBarbaro2']=[SND_PC]
  280. #SoundTypes['HeridaBarbaro3']=[SND_PC]
  281.  
  282.  
  283. # Battlecries?
  284.  
  285. ######################################
  286. # Take Tables (Please complete these lists, these are just examples)
  287.  
  288. # Take object Flags
  289. OBJ_NONE =-1        #no item
  290. OBJ_ITEM =0            #items
  291. OBJ_SHIELD =1        #shields
  292. OBJ_WEAPON =2        #weapons
  293. OBJ_QUIVER =3        #carcaj
  294. OBJ_STANDARD =4
  295. OBJ_KEY =5
  296. OBJ_SPECIALKEY =6
  297. OBJ_USEME =7        #automatics
  298. OBJ_BOW =8
  299. OBJ_ARROW =9
  300. OBJ_TABLET =10
  301. OBJ_ARMOUR =11
  302.  
  303.  
  304. #King of weapon (1handed , 2handed swords , 2handed axe....)
  305. W_FLAG_1H=0     #One handed _whatever_ weapon
  306. W_FLAG_2W=1       #Two handed sword
  307. W_FLAG_AXE=2    #Two handed axw
  308. W_FLAG_SP=3        #Two handed spear
  309.  
  310.  
  311.  
  312. # Throw Type flags
  313. THR_SPINNING=0
  314. THR_STRAIGHT=1
  315.  
  316. EntitiesObjectData={}
  317.  
  318. # Default Object Table                   (Type        DamF  DefF) 
  319. DefaultObjectData={}                     #########################
  320.  
  321. #items
  322. DefaultObjectData['Fetiche']=            [OBJ_ITEM]
  323. DefaultObjectData['Orbe']=               [OBJ_ITEM]
  324.  
  325. DefaultObjectData['Pocima100']=          [OBJ_ITEM]
  326. DefaultObjectData['PowerPotion']=        [OBJ_ITEM]
  327. DefaultObjectData['Pocima25']=           [OBJ_USEME]
  328. DefaultObjectData['Pocima50']=           [OBJ_USEME]
  329. DefaultObjectData['Pocima200']=          [OBJ_USEME]
  330. DefaultObjectData['PocimaTodo']=         [OBJ_USEME]
  331.  
  332. DefaultObjectData['Llavero']=            [OBJ_ITEM]
  333. DefaultObjectData['Brazalete']=          [OBJ_ITEM]
  334. DefaultObjectData['Amuleto']=            [OBJ_ITEM]
  335. DefaultObjectData['Corona']=             [OBJ_ITEM]
  336. DefaultObjectData['Amuletoserpiente']=   [OBJ_ITEM]
  337. DefaultObjectData['Medallion']=          [OBJ_ITEM]
  338. DefaultObjectData['Amuletofantasma']=    [OBJ_ITEM]
  339. DefaultObjectData['Gemaroja']=           [OBJ_ITEM]
  340. DefaultObjectData['Gemaazul']=           [OBJ_ITEM]
  341. DefaultObjectData['Gemapurpura']=        [OBJ_ITEM]
  342. DefaultObjectData['Gema']=               [OBJ_ITEM]
  343. DefaultObjectData['Pergamino2']=         [OBJ_ITEM]
  344.    
  345. #shields   
  346.  
  347. GolpeArmaEscudoMetal=Bladex.CreateSound('..\\..\\sounds\\golpe-arma-escudo.wav', 'GolpeArmaEscudoMetal')
  348. GolpeArmaEscudoMetal.SendNotify=1
  349. GolpeArmaEscudoMadera=Bladex.CreateSound('..\\..\\sounds\\WoodShield-impact.wav', 'GolpeArmaEscudoMadera')
  350. GolpeArmaEscudoMadera.SendNotify=1
  351.  
  352.  
  353. ##########################################################################################################
  354. #
  355. #    (2b completed)
  356. #
  357. #    0 - OBJ_SHIELD
  358. #    1 - ATTACK
  359. #    2 - DEFENSE
  360. #    3 - Sound used
  361. #    4 - angle of circumference covered (cone)
  362. #       5 - Height
  363. #       6 - Radius
  364. #    7 - Max damage it can stand b4 being break
  365. # 8 - Friendly name
  366. #
  367. #-----------------------------------------------------
  368. #
  369. #
  370. #    0 - OBJ_WEAPON
  371. #    1 - ?
  372. #    2 - ?
  373. #    3 - ?
  374. #    4 - ?
  375. #    5 - (5a,5b,5c,5d,5e)
  376. #        5a ->W_FLAG_1H/W_FLAG_2W/W_FLAG_AXE/W_FLAG_SP
  377. #        5b ->Cone for shield ( not needed in .._1H)
  378. #        5c ->Height 
  379. #        5d ->Radius 
  380. #        5e ->Defence ( like [5] in OBJ_SHIELD)
  381. #        5f ->Max standing damage (like [7] in OBJ_SHIELD)
  382. #        5g ->Sound when hit
  383. #
  384. #    7 - Max damaga it can stand b4 being break
  385. #
  386. #
  387. #   0 - OBJ_ARMOUR
  388. #   1 - Tipo personaje
  389. #   2 - Level (da±os , Jose Luis)
  390. #    3- Factor to be added to the CharDefenseData
  391. #
  392. #
  393. #
  394. ##########################################################################################################
  395. """
  396. Escudo vampiro    42.33║
  397. kingshield    56.68║
  398. Escudo dalgurak    62.84
  399. Escudo 9    64.5
  400. Escudo 8    69.63
  401. Escudo 7    47.16
  402. Escudo 6    37.03
  403. Escudo 5    30.73
  404. Escudo 4    46.2
  405. Escudo 3    38.1
  406. Escudo 2    50.86
  407. Escudo 1    40.26
  408. """
  409. DEG2RADS= TWOPI/360.0
  410.  
  411.  
  412.  
  413. DefaultObjectData['ArmaduraAmazonaLigera']=     [OBJ_ARMOUR,  "Amz", 1 , 1.5]  
  414. DefaultObjectData['ArmaduraBarbaroLigera']=     [OBJ_ARMOUR,  "Bar", 1 , 1.5]  
  415. DefaultObjectData['ArmaduraCaballeroLigera']=   [OBJ_ARMOUR,  "Kgt", 1 , 10.5]  
  416. DefaultObjectData['ArmaduraCaballeroMedia']=    [OBJ_ARMOUR,  "Kgt", 2 , 3.0]  
  417. DefaultObjectData['ArmaduraCaballeroCompleta']= [OBJ_ARMOUR,  "Kgt", 3 , 4.5]  
  418. DefaultObjectData['ArmaduraEnanoLigera']=       [OBJ_ARMOUR,  "Dwf", 1 , 1.5]  
  419. DefaultObjectData['ArmaduraEnanoMedia']=        [OBJ_ARMOUR,  "Dwf", 2 , 3.0]  
  420.  
  421. #                 #bod                    #type      #POW #RES  #Sound              #cone             #height #rad #Brk
  422. DefaultObjectData['Escudo1']=            [OBJ_SHIELD,   0,300, GolpeArmaEscudoMetal, 180.0*DEG2RADS,   2000,  750,  6]
  423. DefaultObjectData['Escudo2']=            [OBJ_SHIELD,   0, 80, GolpeArmaEscudoMadera,180.0*DEG2RADS,   2000,  750,  3]
  424. DefaultObjectData['Escudo3']=            [OBJ_SHIELD,-1.2,4000, GolpeArmaEscudoMetal, 180.0*DEG2RADS,   2000,  750,  7]
  425. DefaultObjectData['Escudo4']=            [OBJ_SHIELD,   0,2500, GolpeArmaEscudoMetal, 180.0*DEG2RADS,   2000,  750,  5]
  426. DefaultObjectData['Escudo5']=            [OBJ_SHIELD,   0, 20, GolpeArmaEscudoMetal, 180.0*DEG2RADS,   2000,  750,  5]
  427. DefaultObjectData['Escudo6']=            [OBJ_SHIELD,-1.5,6000, GolpeArmaEscudoMetal, 180.0*DEG2RADS,   2000,  750,  5]
  428. DefaultObjectData['Escudo7']=            [OBJ_SHIELD,-0.5,5000, GolpeArmaEscudoMetal, 180.0*DEG2RADS,   2000,  750,  5]
  429. DefaultObjectData['Escudo8']=            [OBJ_SHIELD,-0.5,3000, GolpeArmaEscudoMetal, 180.0*DEG2RADS,   2000,  750, 10]
  430. DefaultObjectData['Escudo9']=            [OBJ_SHIELD,  -1,2000, GolpeArmaEscudoMetal, 180.0*DEG2RADS,   2000,  750, 10]
  431. DefaultObjectData['Escudon']=            [OBJ_SHIELD,-0.5, 30, GolpeArmaEscudoMetal, 180.0*DEG2RADS,   3000, 1250, 10]
  432. DefaultObjectData['VampShield']=         [OBJ_SHIELD,-0.5,1500, GolpeArmaEscudoMetal, 180.0*DEG2RADS,   2000,  750, 10]
  433. DefaultObjectData['DalShield']=          [OBJ_SHIELD,-1.5,5000, GolpeArmaEscudoMetal, 180.0*DEG2RADS,   2000,  750,  0]
  434. DefaultObjectData['KingShield']=         [OBJ_SHIELD,   1,1000, GolpeArmaEscudoMetal, 180.0*DEG2RADS,   2000,  750,  6]
  435. DefaultObjectData['MagicShield']=        [OBJ_SHIELD,-0.5,8000, GolpeArmaEscudoMetal, 360.0*DEG2RADS,   2000, 1500,8000]
  436.  
  437. #                                                             THROWING
  438. #weapons          name                    type        dam,def, bonus, type
  439.  
  440. # Naturally attacking races
  441. DefaultObjectData['Cos']=                [OBJ_WEAPON,   3,  0, 1.0,  THR_SPINNING, []]
  442. DefaultObjectData['Lich']=               [OBJ_WEAPON,   4,  0, 1.0,  THR_SPINNING, []]
  443. DefaultObjectData['Spidersmall']=        [OBJ_WEAPON,   2,  0, 1.0,  THR_SPINNING, []]
  444. DefaultObjectData['Little_Demon']=       [OBJ_WEAPON,   8,  0, 1.0,  THR_SPINNING, []]
  445. DefaultObjectData['Salamander']=         [OBJ_WEAPON,  55,  0, 1.0,  THR_SPINNING, []]
  446. DefaultObjectData['Great_Demon']=        [OBJ_WEAPON,1000,  0, 1.0,  THR_SPINNING, []]
  447. DefaultObjectData['DarkLord']=           [OBJ_WEAPON,  40,  0, 1.0,  THR_SPINNING, []]
  448. DefaultObjectData['Golem_stone']=        [OBJ_WEAPON,  55,  0, 1.0,  THR_SPINNING, []]
  449. DefaultObjectData['Golem_clay']=         [OBJ_WEAPON,  55,  0, 1.0,  THR_SPINNING, []]
  450. DefaultObjectData['Golem_lava']=         [OBJ_WEAPON,  55,  0, 1.0,  THR_SPINNING, []]
  451. DefaultObjectData['Golem_metal']=        [OBJ_WEAPON,  55,  0, 1.0,  THR_SPINNING, []]
  452. DefaultObjectData['Knight_N']=           [OBJ_WEAPON,   0,  0, 1.0,  THR_SPINNING, []]
  453. DefaultObjectData['Barbarian_N']=        [OBJ_WEAPON,   0,  0, 1.0,  THR_SPINNING, []]
  454. DefaultObjectData['Amazon_N']=           [OBJ_WEAPON,   0,  0, 1.0,  THR_SPINNING, []]
  455. DefaultObjectData['Dwarf_N']=            [OBJ_WEAPON,   0,  0, 1.0,  THR_SPINNING, []]
  456.  
  457. #
  458. #specials
  459. #
  460. DefaultObjectData['Entity ElectricBolt']=[OBJ_WEAPON,    0,  0, 1.0,  THR_STRAIGHT, [], ['Electric', +12.0]]
  461. DefaultObjectData['Meteorito']=          [OBJ_WEAPON,   80,  0, 1.0,  THR_STRAIGHT, [], ['Fire', +12.0]]
  462. DefaultObjectData['EsferaNegra']=        [OBJ_WEAPON,   50,  0, 1.0,  THR_STRAIGHT, []]
  463. DefaultObjectData['BolaDalGurak']=       [OBJ_WEAPON,   60,  0, 1.0,  THR_STRAIGHT, []]
  464. DefaultObjectData['EsferaOrbital']=      [OBJ_WEAPON,   80,  0, 1.0,  THR_STRAIGHT, []]
  465. DefaultObjectData['BolaRayos']=          [OBJ_WEAPON,   90,  0, 1.0,  THR_STRAIGHT, []]
  466. DefaultObjectData['HalfmoonTrail']=      [OBJ_WEAPON,   90,  0, 1.0,  THR_SPINNING, []]
  467. DefaultObjectData['FireRing']=      [OBJ_WEAPON,  0,  0, 1.0,  THR_SPINNING, [], ['Fire', +500.0]]
  468.  
  469.             
  470.  
  471. #######  ARMAS  #######
  472.  
  473.  
  474.  
  475.  
  476. # ARMAS DEL BARBARO
  477. #                 #bod                    #type      #POW #RES #throw_mult #throw_type #flag #cone#hght#rad#def#Brk#Sound
  478. DefaultObjectData['FireBigSword']=       [OBJ_WEAPON, 50, 0, 1.5,  THR_SPINNING, [W_FLAG_2W,PI,2000,750,10,10,GolpeArmaEscudoMetal], ["Fire", +10.0]]
  479. DefaultObjectData['IceAxe']=             [OBJ_WEAPON, 30, 0, 2.0,  THR_SPINNING, [W_FLAG_AXE,PI,2000,750,10,10,GolpeArmaEscudoMetal], ["Ice", +10.0]]
  480. DefaultObjectData['DalWeapon']=          [OBJ_WEAPON,140, 0, 1.0,  THR_SPINNING, [W_FLAG_1H,],["Venom",+6.0]]
  481. DefaultObjectData['DalBlade']=           [OBJ_WEAPON,  6, 0, 2.0,  THR_SPINNING, [W_FLAG_1H,]]
  482.  
  483. DefaultObjectData['Sablazo']=            [OBJ_WEAPON, 10, 0, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  484.  
  485. DefaultObjectData['Chaosword']=          [OBJ_WEAPON,  5, 0, 2.0,  THR_STRAIGHT, [W_FLAG_2W,PI,2000,750,10,10,GolpeArmaEscudoMetal]]
  486. DefaultObjectData['DeathSword']=         [OBJ_WEAPON, 40, 0, 1.5,  THR_SPINNING, [W_FLAG_2W,PI,2000,750,10,10,GolpeArmaEscudoMetal]]
  487. DefaultObjectData['LongSword']=          [OBJ_WEAPON, 80, 0, 1.0,  THR_SPINNING, [W_FLAG_2W,PI,2000,750,10,10,GolpeArmaEscudoMetal]]
  488. DefaultObjectData['Alfanje']=            [OBJ_WEAPON,100, 0, 1.8,  THR_SPINNING, [W_FLAG_2W,PI,2000,750,10,10,GolpeArmaEscudoMetal]]
  489. DefaultObjectData['BigSword']=           [OBJ_WEAPON,220, 0, 2.5,  THR_SPINNING, [W_FLAG_2W,PI,2000,750,10,10,GolpeArmaEscudoMetal]]
  490. DefaultObjectData['SawSword']=           [OBJ_WEAPON,800, 0, 1.0,  THR_SPINNING, [W_FLAG_2W,PI,2000,750,10,10,GolpeArmaEscudoMetal]]
  491. DefaultObjectData['FlatSword']=          [OBJ_WEAPON,180, 0, 1.0,  THR_SPINNING, [W_FLAG_2W,PI,2000,750,10,10,GolpeArmaEscudoMetal]]
  492.  
  493. DefaultObjectData['Eclipse']=            [OBJ_WEAPON, 20, 0, 3.0,  THR_SPINNING, [W_FLAG_AXE,PI,2000,750,10,10,GolpeArmaEscudoMetal]]
  494. DefaultObjectData['Guadanya']=           [OBJ_WEAPON, 60, 0, 1.3,  THR_SPINNING, [W_FLAG_AXE,PI,2000,750,10,10,GolpeArmaEscudoMetal]]
  495. DefaultObjectData['Hacha2hojas']=        [OBJ_WEAPON,140, 0, 4.0,  THR_SPINNING, [W_FLAG_AXE,PI,2000,750,10,10,GolpeArmaEscudoMetal]]
  496. DefaultObjectData['RhinoClub']=          [OBJ_WEAPON,300, 0, 2.0,  THR_SPINNING, [W_FLAG_AXE,PI,2000,750,10,10,GolpeArmaEscudoMetal]]
  497. DefaultObjectData['Hacharrajada']=       [OBJ_WEAPON,500, 0, 1.0,  THR_SPINNING, [W_FLAG_AXE,PI,2000,750,10,10,GolpeArmaEscudoMetal]]
  498.  
  499.  
  500. # ARMAS DEL ENANO
  501.  
  502. DefaultObjectData['CrushHammer']=        [OBJ_WEAPON, 50, 0, 1.8,  THR_SPINNING, [W_FLAG_1H,],["Venom",+6.0]]
  503. DefaultObjectData['FireAxe']=            [OBJ_WEAPON, 40, 0, 2.5,  THR_SPINNING, [W_FLAG_1H,], ["Fire", +10.0]]
  504. DefaultObjectData['IceHammer']=          [OBJ_WEAPON, 25, 0, 3.0,  THR_SPINNING, [W_FLAG_1H,], ["Ice", +10.0]]
  505.  
  506. DefaultObjectData['Hacha']=              [OBJ_WEAPON,  4, 0, 1.8,  THR_SPINNING, [W_FLAG_1H,]]
  507. DefaultObjectData['Hacha5']=             [OBJ_WEAPON, 18, 0, 2.5,  THR_SPINNING, [W_FLAG_1H,]]
  508. DefaultObjectData['Hacha4']=             [OBJ_WEAPON, 55, 0, 2.0,  THR_SPINNING, [W_FLAG_1H,]]
  509. DefaultObjectData['Hacha3']=             [OBJ_WEAPON, 75, 0, 2.0,  THR_SPINNING, [W_FLAG_1H,]]
  510. DefaultObjectData['Hacha6']=             [OBJ_WEAPON,290, 0, 2.0,  THR_SPINNING, [W_FLAG_1H,]]
  511. DefaultObjectData['Hacha2']=             [OBJ_WEAPON,480, 0, 1.5,  THR_SPINNING, [W_FLAG_1H,]]
  512.  
  513. DefaultObjectData['Garrote']=            [OBJ_WEAPON,  2, 0, 1.3,  THR_SPINNING, [W_FLAG_1H,]]
  514. DefaultObjectData['Martillo']=           [OBJ_WEAPON, 95, 0, 1.5,  THR_SPINNING, [W_FLAG_1H,]]
  515. DefaultObjectData['Martillo2']=          [OBJ_WEAPON,135, 0, 1.8,  THR_SPINNING, [W_FLAG_1H,]]
  516. DefaultObjectData['Garropin']=           [OBJ_WEAPON, 45, 0, 1.8,  THR_SPINNING, [W_FLAG_1H,]]
  517. DefaultObjectData['MazaDoble']=          [OBJ_WEAPON,200, 0, 1.4,  THR_SPINNING, [W_FLAG_1H,]]
  518. DefaultObjectData['Garrote2']=           [OBJ_WEAPON,175, 0, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  519. DefaultObjectData['Martillo3']=          [OBJ_WEAPON,790, 0, 2.0,  THR_SPINNING, [W_FLAG_1H,]]
  520.  
  521.  
  522. # ARMAS DEL CABALLERO
  523.  
  524. DefaultObjectData['QueenSword']=         [OBJ_WEAPON, 85, 0, 2.4,  THR_SPINNING, [W_FLAG_1H,]]
  525. DefaultObjectData['IceSword']=           [OBJ_WEAPON, 45, 0, 4.0,  THR_SPINNING, [W_FLAG_1H,], ["Ice", +10.0]]
  526. DefaultObjectData['FireSword']=          [OBJ_WEAPON, 35, 0, 3.3,  THR_SPINNING, [W_FLAG_1H,], ["Fire", +10.0]]
  527.  
  528. DefaultObjectData['Gladius']=            [OBJ_WEAPON,  3, 0, 2.2,  THR_SPINNING, [W_FLAG_1H,]]
  529. DefaultObjectData['Orksword']=           [OBJ_WEAPON, 30, 0, 2.3,  THR_SPINNING, [W_FLAG_1H,],["Venom",+1.0]]
  530. DefaultObjectData['Espadaelfica']=       [OBJ_WEAPON, 50, 0, 2.4,  THR_SPINNING, [W_FLAG_1H,]]
  531. DefaultObjectData['Espadaromana']=       [OBJ_WEAPON, 35, 0, 2.4,  THR_SPINNING, [W_FLAG_1H,]]
  532. DefaultObjectData['Espadacurva']=        [OBJ_WEAPON,120, 0, 2.2,  THR_SPINNING, [W_FLAG_1H,]]
  533. DefaultObjectData['Dagesse']=            [OBJ_WEAPON,150, 0, 2.4,  THR_SPINNING, [W_FLAG_1H,]]
  534. DefaultObjectData['Cimitarra']=          [OBJ_WEAPON,210, 0, 2.3,  THR_SPINNING, [W_FLAG_1H,]]
  535. DefaultObjectData['EgyptSword']=         [OBJ_WEAPON,100, 0, 2.3,  THR_SPINNING, [W_FLAG_1H,],["Venom",+4.0]]
  536. DefaultObjectData['Espadafilo']=         [OBJ_WEAPON,470, 0, 2.3,  THR_SPINNING, [W_FLAG_1H,]]
  537. DefaultObjectData['Espada']=             [OBJ_WEAPON,780, 0, 2.5,  THR_SPINNING, [W_FLAG_1H,]]
  538.  
  539. DefaultObjectData['Maza']=               [OBJ_WEAPON, 15, 0, 2.2,  THR_SPINNING, [W_FLAG_1H,]]
  540. DefaultObjectData['Maza2']=              [OBJ_WEAPON, 70, 0, 2.3,  THR_SPINNING, [W_FLAG_1H,]]
  541. DefaultObjectData['Maza3']=              [OBJ_WEAPON,290, 0, 2.4,  THR_SPINNING, [W_FLAG_1H,]]
  542.  
  543.  
  544. # ARMAS DE LA AMAZONA
  545.  
  546. DefaultObjectData['IceWand']=            [OBJ_WEAPON, 30, 0, 3.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal], ["Ice", +10.0]]
  547. DefaultObjectData['SteelFeather']=       [OBJ_WEAPON, 60, 0, 3.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal],["Venom",+6.0]]
  548. DefaultObjectData['FireBo']=             [OBJ_WEAPON, 50, 0, 3.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal],["Fire", +10.0]]
  549.  
  550.  
  551. DefaultObjectData['Bo']=                 [OBJ_WEAPON,  3, 0, 2.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal]]
  552. DefaultObjectData['Lanza']=              [OBJ_WEAPON, 35, 0, 2.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal]]
  553. DefaultObjectData['Naginata']=           [OBJ_WEAPON, 50, 0, 2.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal]]
  554. DefaultObjectData['Tridente']=           [OBJ_WEAPON, 75, 0, 3.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal]]
  555. DefaultObjectData['Hachacuchilla']=      [OBJ_WEAPON,215, 0, 2.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal]]
  556. DefaultObjectData['Naginata2']=          [OBJ_WEAPON,490, 0, 3.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal]]
  557. DefaultObjectData['DeathBo']=            [OBJ_WEAPON,130, 0, 3.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal]]  
  558. DefaultObjectData['CrushBo']=            [OBJ_WEAPON,300, 0, 3.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal]]
  559. DefaultObjectData['LanzaAncha']=         [OBJ_WEAPON,760, 0, 3.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal]]
  560. DefaultObjectData['Axpear']=             [OBJ_WEAPON, 95, 0, 3.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal]]
  561. DefaultObjectData['Arpon']=              [OBJ_WEAPON,390, 0, 3.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal]]
  562. DefaultObjectData['Bichero']=            [OBJ_WEAPON, 16, 0, 3.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal]]
  563. DefaultObjectData['Crosspear']=          [OBJ_WEAPON,160, 0, 3.0,  THR_SPINNING, [W_FLAG_SP,PI,2000,750,5,5,GolpeArmaEscudoMetal]]
  564.  
  565.  
  566. ######## Armas descartadas de la Amazona 
  567.  
  568. DefaultObjectData['DeathKatar']=         [OBJ_WEAPON, 25, -10, 1.5,  THR_SPINNING, [W_FLAG_1H,]]
  569. DefaultObjectData['Chakram']=            [OBJ_WEAPON,200,  -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  570. DefaultObjectData['Katarmoon']=          [OBJ_WEAPON, 30,  -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  571. DefaultObjectData['Chakram2']=           [OBJ_WEAPON,200,  -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  572. DefaultObjectData['Katar']=              [OBJ_WEAPON, 30,  -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  573. DefaultObjectData['KatarDoble']=         [OBJ_WEAPON, 30,  -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  574. DefaultObjectData['TaiSword']=           [OBJ_WEAPON,500,   0, 3.0,  THR_SPINNING, [W_FLAG_1H,], ["Ice", +10.0]]
  575. DefaultObjectData['LightEdge']=          [OBJ_WEAPON, 90,  -2, 1.5,  THR_SPINNING, [W_FLAG_1H,]]
  576. DefaultObjectData['Ninjato']=            [OBJ_WEAPON, 50,   0, 1.5,  THR_SPINNING, [W_FLAG_1H,]]
  577. DefaultObjectData['HookSword']=          [OBJ_WEAPON, 90, 0, 2.0,  THR_SPINNING, [W_FLAG_1H,]]
  578. DefaultObjectData['Katana']=             [OBJ_WEAPON,240,  -1, 2.0,  THR_SPINNING, [W_FLAG_1H,]]
  579. DefaultObjectData['DoubleSword']=        [OBJ_WEAPON,380, 0, 1.5,  THR_SPINNING, [W_FLAG_1H,]]
  580.  
  581.  
  582.  
  583. ######### ARMAS MAGICAS
  584.  
  585. DefaultObjectData['Varita7']=            [OBJ_STANDARD,  30,  -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  586. DefaultObjectData['Varita6']=            [OBJ_STANDARD,  30,  -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]    
  587. DefaultObjectData['Varita5']=            [OBJ_STANDARD,  30,  -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  588. DefaultObjectData['Varita2']=            [OBJ_STANDARD,  30,  -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]  
  589. DefaultObjectData['Varita1']=            [OBJ_STANDARD,  30,  -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]] 
  590. DefaultObjectData['EspadaMagica1']=      [OBJ_STANDARD,  40, -15, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  591. DefaultObjectData['EspadaMagica2']=      [OBJ_STANDARD,  45, -20, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  592. DefaultObjectData['EspadaMagica3']=      [OBJ_STANDARD,  50, -25, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  593. DefaultObjectData['VampWeapon']=         [OBJ_STANDARD,  90,  -5, 1.0,  THR_SPINNING, [W_FLAG_1H,], ['Drain']]
  594. DefaultObjectData['Baston3']=            [OBJ_STANDARD, 100,  -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  595.  
  596.  
  597.  
  598. ######### ARMAS DE ATAQUE A DISTANCIA
  599.  
  600.  
  601. DefaultObjectData['Arco']=               [OBJ_BOW,     5, -5, 1.0,  THR_STRAIGHT, []]
  602. DefaultObjectData['Arco3']=              [OBJ_BOW,    10, -5, 1.0,  THR_STRAIGHT, []]
  603. DefaultObjectData['Arco2']=              [OBJ_BOW,    20, -5, 1.0,  THR_STRAIGHT, []]
  604. DefaultObjectData['Arco_Amz_seleccion']= [OBJ_BOW,    20, -5, 1.0,  THR_STRAIGHT, []]
  605. DefaultObjectData['Flecha']=             [OBJ_ARROW,   20, -5, 1.0,  THR_STRAIGHT, []]
  606. DefaultObjectData['FlechaEnvenenada']=   [OBJ_ARROW,   20, -5, 1.0,  THR_STRAIGHT, [], ["Venom",+1.0]]
  607. DefaultObjectData['FlechaFuego']=        [OBJ_ARROW,   20, -5, 1.0,  THR_STRAIGHT, [], ["Fire", +4.0]]
  608. DefaultObjectData['Suriken']=            [OBJ_STANDARD,  20,  0, 2.0,  THR_SPINNING, [W_FLAG_1H,]]
  609. DefaultObjectData['Dagarrojar']=         [OBJ_STANDARD,  30,  0, 2.0,  THR_SPINNING, [W_FLAG_1H,]]
  610. DefaultObjectData['Canica']=             [OBJ_STANDARD,  30,  0, 2.0,  THR_SPINNING, [W_FLAG_1H,]]
  611.  
  612.  
  613.  
  614. ######### ARMAS COMUNES DE MAL USO
  615.  
  616.  
  617. DefaultObjectData['Daga']=               [OBJ_STANDARD,   6,  0, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  618. DefaultObjectData['Cuchillo']=           [OBJ_STANDARD,   5,  0, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  619. DefaultObjectData['Alabarda']=           [OBJ_STANDARD,   8,-25, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  620.  
  621.  
  622.  
  623. ######### ARMAS SAGRADAS
  624.  
  625.  
  626. DefaultObjectData['BladeSword']=         [OBJ_WEAPON, 300, -5, 1.0,  THR_STRAIGHT, [W_FLAG_1H,]]
  627. DefaultObjectData['BladeSword2']=        [OBJ_WEAPON, 300, -5, 1.0,  THR_STRAIGHT, [W_FLAG_1H,], ["Blade", +300.0]]
  628. DefaultObjectData['BladeSwordBarbarian'] =[OBJ_WEAPON, 300, -5, 1.0,  THR_STRAIGHT, [W_FLAG_2W,PI,2000,750,10,10,GolpeArmaEscudoMetal]]
  629. DefaultObjectData['BladeSword2Barbarian']=[OBJ_WEAPON, 300, -5, 1.0,  THR_STRAIGHT, [W_FLAG_2W,PI,2000,750,10,10,GolpeArmaEscudoMetal], ["Blade", +300.0]]
  630.  
  631. DefaultObjectData['Phurbhu']=            [OBJ_STANDARD, 85, -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  632.  
  633.  
  634.  
  635. ######### ARMAS INUTILIZABLES
  636.  
  637.  
  638. DefaultObjectData['KingSword']=          [OBJ_WEAPON, 100, -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  639. DefaultObjectData['Espadon']=            [OBJ_WEAPON,  60, -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  640. DefaultObjectData['Mazapiedra']=         [OBJ_WEAPON, 100, -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  641. DefaultObjectData['Hachacarnicero']=     [OBJ_WEAPON,  70, -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651. # Objetos hirientes 
  652.  
  653.  
  654. DefaultObjectData['CuchillaFernando']=   [OBJ_WEAPON,2000, -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  655. DefaultObjectData['Pendulo']=            [OBJ_WEAPON,2000, -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  656. DefaultObjectData['PinchoManuel']=       [OBJ_WEAPON,2000, -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  657. DefaultObjectData['PinchoMiguel']=       [OBJ_WEAPON,2000, -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  658. DefaultObjectData['Pivote']=             [OBJ_WEAPON,  20, -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  659. DefaultObjectData['Roca1Aurelio']=       [OBJ_WEAPON,  35, -5, 1.0,  THR_SPINNING, [W_FLAG_1H,]]
  660.  
  661.                                                            
  662. #Quiver                                                    
  663. #weapons          name                    type        #   type
  664. DefaultObjectData['Carcaj']=             [OBJ_QUIVER, 10, "Flecha"]
  665. DefaultObjectData['CarcajFuego']=        [OBJ_QUIVER, 10, "FlechaFuego"]
  666. DefaultObjectData['CarcajEnvenenado']=   [OBJ_QUIVER, 10, "FlechaEnvenenada"]
  667. DefaultObjectData['Carcaj_E']=             [OBJ_QUIVER,10, "Flecha"]
  668. DefaultObjectData['CarcajFuego_E']=        [OBJ_QUIVER,10, "FlechaFuego"]
  669. DefaultObjectData['CarcajEnvenenado_E']=   [OBJ_QUIVER,10, "FlechaEnvenenada"]
  670.  
  671.  
  672. # Non inventoriable weapons (classified as standard objects)
  673.  
  674. DefaultObjectData['Cincel']=             [OBJ_STANDARD,  2, -5, 1.0,  THR_STRAIGHT, []]
  675. DefaultObjectData['Estaca']=             [OBJ_STANDARD,  4, -5, 1.0,  THR_STRAIGHT, []]
  676. DefaultObjectData['MartilloForja']=      [OBJ_STANDARD,  5, -5, 1.0,  THR_STRAIGHT, []]
  677. DefaultObjectData['Pala']=               [OBJ_STANDARD, 10, -5, 1.0,  THR_STRAIGHT, []]
  678. DefaultObjectData['Pico']=               [OBJ_STANDARD, 20, -5, 1.0,  THR_STRAIGHT, []]                                                                                   
  679.  
  680.  
  681.                                                              
  682. # standard objects
  683. DefaultObjectData['Antorcha']=           [OBJ_STANDARD,   5, -5, 1.0,  THR_SPINNING, []]
  684. DefaultObjectData['Bandeja']=            [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  685. DefaultObjectData['Bloodbol']=           [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  686. DefaultObjectData['Botella']=            [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  687. DefaultObjectData['BotellaVerde']=       [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  688. DefaultObjectData['BotellaSagrada']=     [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  689. DefaultObjectData['Caliz']=              [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  690. DefaultObjectData['Candelpeque']=        [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  691. DefaultObjectData['Candil']=             [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  692. DefaultObjectData['Cantimplora']=        [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  693. DefaultObjectData['Cazo']=               [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  694. DefaultObjectData['Cojin']=              [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  695. DefaultObjectData['Costilla']=           [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  696. DefaultObjectData['Cracorn1']=           [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  697. DefaultObjectData['Cracorn2']=           [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  698. DefaultObjectData['CraneoCornudo3']=     [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  699. DefaultObjectData['CraneoCornudo4']=     [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  700. DefaultObjectData['Cubo']=               [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  701. DefaultObjectData['Farol']=              [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  702. DefaultObjectData['Farol2']=             [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  703. DefaultObjectData['Femur']=              [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  704. DefaultObjectData['Jarra']=              [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  705. DefaultObjectData['Jarrita']=            [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  706. DefaultObjectData['Libro']=              [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  707. DefaultObjectData['Libro2']=             [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  708. DefaultObjectData['Libro3']=             [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  709. DefaultObjectData['Libroabierto']=       [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  710. DefaultObjectData['Mortero']=            [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  711. DefaultObjectData['Palangana']=          [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  712. DefaultObjectData['Pergamino']=          [OBJ_STANDARD, 100, -5, 1.0,  THR_SPINNING, []]
  713. DefaultObjectData['Silla']=              [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  714. DefaultObjectData['Skull']=              [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  715. DefaultObjectData['Tabla_xl']=           [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  716. DefaultObjectData['Tabla_l']=            [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  717. DefaultObjectData['Tabla_rota']=         [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  718. DefaultObjectData['Taburete']=           [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  719. DefaultObjectData['Tacita']=             [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  720. DefaultObjectData['Tintero']=            [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  721. DefaultObjectData['Tronco']=             [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  722. DefaultObjectData['TroncoNevado']=       [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  723. DefaultObjectData['Velon']=              [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  724. DefaultObjectData['Limb']=               [OBJ_STANDARD,  10, -5, 1.0,  THR_SPINNING, []]
  725.  
  726. # Golem stones
  727. DefaultObjectData['Piedra_Glm_st']=      [OBJ_STANDARD,  40, -5, 1.0,  THR_SPINNING, []]
  728. DefaultObjectData['Piedra_Glm_mt']=      [OBJ_STANDARD,  40, -5, 1.0,  THR_SPINNING, []]
  729. DefaultObjectData['Piedra_Glm_lv']=      [OBJ_STANDARD,  40, -5, 1.0,  THR_SPINNING, []]
  730. DefaultObjectData['Piedra_Glm_cl']=      [OBJ_STANDARD,  40, -5, 1.0,  THR_SPINNING, []]
  731.             
  732.                                                                                    
  733. #keys                                                                              
  734. DefaultObjectData['Llave']=              [OBJ_KEY]                                 
  735. DefaultObjectData['Llavecobox']=         [OBJ_KEY]                                 
  736. DefaultObjectData['Llavecutre']=         [OBJ_KEY]                                 
  737. DefaultObjectData['Llavemaz']=           [OBJ_KEY]
  738. DefaultObjectData['Llavecob']   =        [OBJ_KEY]
  739. DefaultObjectData['Llavedor']   =        [OBJ_KEY]
  740. DefaultObjectData['Llavepla']   =        [OBJ_KEY]
  741.  
  742. #Specialkeys
  743. DefaultObjectData['LlaveBlanca']=        [OBJ_SPECIALKEY]
  744. DefaultObjectData['LlaveAzul']  =        [OBJ_SPECIALKEY]
  745. DefaultObjectData['LlaveAmarilla']  =    [OBJ_SPECIALKEY]
  746. DefaultObjectData['LlaveNegra']     =    [OBJ_SPECIALKEY]
  747.  
  748. #Automatics
  749. DefaultObjectData['Casco3']=             [OBJ_USEME]
  750. DefaultObjectData['Casco4']=             [OBJ_USEME]
  751. DefaultObjectData['Casco5']=             [OBJ_USEME]
  752. DefaultObjectData['CascoBlade']=         [OBJ_USEME]
  753. DefaultObjectData['Coraza1']=            [OBJ_USEME]
  754. DefaultObjectData['Coraza2']=            [OBJ_USEME]
  755. DefaultObjectData['Coraza3']=            [OBJ_USEME]
  756. DefaultObjectData['CorazaBlade']=        [OBJ_USEME]
  757. DefaultObjectData['Hogaza']=             [OBJ_USEME]
  758. DefaultObjectData['Manzana']=            [OBJ_USEME]
  759. DefaultObjectData['Paletilla']=          [OBJ_USEME]
  760. DefaultObjectData['Queso']=              [OBJ_USEME]
  761. DefaultObjectData['Seta']=               [OBJ_USEME]
  762. DefaultObjectData['Setas']=              [OBJ_USEME]
  763. DefaultObjectData['Rabano']=             [OBJ_USEME]
  764. DefaultObjectData['Saquito']=            [OBJ_USEME]
  765. DefaultObjectData['Raiz']=               [OBJ_USEME]
  766.  
  767. #Tablets
  768. DefaultObjectData['Tablilla1']=          [OBJ_TABLET]
  769. DefaultObjectData['Tablilla2']=          [OBJ_TABLET]
  770. DefaultObjectData['Tablilla3']=          [OBJ_TABLET]
  771. DefaultObjectData['Tablilla4']=          [OBJ_TABLET]
  772. DefaultObjectData['Tablilla5']=          [OBJ_TABLET]
  773. DefaultObjectData['Tablilla6']=          [OBJ_TABLET]
  774.  
  775. DefaultSelectionData={}
  776. EntitiesSelectionData={}
  777.  
  778. EnemiesScorerData={}
  779. EnemiesDefaultScorerData={}
  780. ######################################
  781.  
  782. def GetObjectFriendlyName(obj_name):
  783.     try:
  784.         return DefaultSelectionData[obj_name][2]
  785.     except:
  786.         return "No Name"
  787.  
  788.  
  789. ######################################
  790. # Throw Tables
  791.  
  792. # Throw Times (how long you can hold a key in seconds)
  793. THROW_TIME_MIN = 0.4
  794. THROW_TIME_MAX = 1.0
  795.  
  796. # Mass Categories
  797. LightMassMax = 2.9
  798. ImpaleMassMax = 2.65
  799.  
  800. MaxStrikeDict={    'Chaosword'                : [],
  801.                 'Gladius'                : [], 
  802.                 'Cimitarra'                : [], 
  803.                 'Espadacurva'            : [], 
  804.                 'Espada'                : [], 
  805.                 'Espadaelfica'            : [], 
  806.                 'Espadafilo'            : [], 
  807.                 'Espadaromana'            : [], 
  808.                 'EspadaMagica1'            : [], 
  809.                 'EspadaMagica2'            : [], 
  810.                 'Ninjato'                : [], 
  811.                 'Katana'                : [], 
  812.                 'EspadaMagica3'            : [], 
  813.                 'Hacha'                    : [], 
  814.                 'Hacha2'                : [], 
  815.                 'Hacha3'                : [], 
  816.                 'Hacha4'                : [], 
  817.                 'Hacha5'                : [], 
  818.                 'Hacha6'                : [], 
  819.                 'Hachacuchilla'            : [], 
  820.                 'Garrote'                : [], 
  821.                 'Maza'                    : [], 
  822.                 'Maza2'                    : [], 
  823.                 'Maza3'                    : [], 
  824.                 'Martillo'                : [], 
  825.                 'Martillo2'                : []}
  826.  
  827.  
  828. MedStrikeDict={ 'Garropin'                : [], 
  829.                 'Garrote2'                : []}
  830.  
  831.  
  832. # Please check (and add stone to end, I don't know which stones) 
  833. MinStrikeDict={ 'Alabarda'                : [], 
  834.                 'Baston3'                : [], 
  835.                 'Lanza'                    : [], 
  836.                 'Naginata'                : [], 
  837.                 'Tridente'                : [], 
  838.                 'Varilla'                : [], 
  839.                 'Varita1'                : [], 
  840.                 'Varita2'                : [], 
  841.                 'Varita2'                : [], 
  842.                 'Varita5'                : [], 
  843.                 'Varita6'                : [], 
  844.                 'Varita7'                : [], 
  845.                 'Mortero'                : [], 
  846.                 'Skull'                    : [], 
  847.                 'Palangana'                : [], 
  848.                 'BotellaVerde'            : [], 
  849.                 'Taburete'                : [], 
  850.                 'Cubo'                    : [], 
  851.                 'Farol'                    : [], 
  852.                 'Candil'                : [], 
  853.                 'Libro'                    : [], 
  854.                 'Mortero'                : [], 
  855.                 'Cuchillo'                : [], 
  856.                 'Daga'                    : [], 
  857.                 'Tintero'                : [], 
  858.                 'Velon'                    : [],                 
  859.                 'Bloodbol'                : [], 
  860.                 'Candelpeque'            : [], 
  861.                 'Tronco'                : [], 
  862.                 'Cracorn1'                : [], 
  863.                 'Cracorn2'                : [], 
  864.                 'Cazo'                    : [], 
  865.                 'Caliz'                    : [], 
  866.                 'Libro2'                : [], 
  867.                 'Pico'                    : [], 
  868.                 'Pala'                    : [], 
  869.                 'Femur'                    : [], 
  870.                 'Costilla'                : [], 
  871.                 'Farol2'                : [], 
  872.                 'MartilloForja'            : [], 
  873.                 'Cincel'                : [], 
  874.                 'Pergamino2'            : [], 
  875.                 'Pergamino'                : [], 
  876.                 'Saquito'                : [], 
  877.                 'Libro3'                : [], 
  878.                 'Libroabierto'            : [], 
  879.                 'TroncoNevado'            : [], 
  880.                 'CraneoCornudo3'        : [], 
  881.                 'CraneoCornudo4'        : [], 
  882.                 'Silla'                    : [], 
  883.                 'Jarra'                    : [], 
  884.                 'Estaca'                : [], 
  885.                 'Jarrita'                : [], 
  886.                 'Bandeja'                : [], 
  887.                 'Tacita'                : [], 
  888.                 'Cojin'                    : []}
  889.  
  890. # Please check (especially the stones)
  891. TwoHandedDict={    'Fuelle'                : [], 
  892.                 'Tinaja'                : [],
  893.                 'Perola'                : [],
  894.                 'Barril'                : [],
  895.                 'Cajon'                    : [],
  896.                 'Cajon2'                : [],
  897.                 'Cajama'                : [],
  898.                 'Carretilla'            : [],
  899.                 'Cofrepeque'            : [],
  900.                 'Mesita'                : []}
  901.  
  902. # Some items can be stacked into an slot of the inventory.
  903.  
  904. #                              Kind of object      Max number of objects at inventory
  905. StackObjects  = {
  906.                                 'Pocima100'    :    4,
  907.                 }
  908. #
  909. # Some items can be carried in the long travels arround the whole world.
  910. #
  911. TravelObjects = [ 'Pocima100','PowerPotion' ]
  912.  
  913. #
  914. # enemies that can walk inside the lava
  915. #
  916. LavaInmune   = ['Golem_lava','Salamander','Great_Demon','Little_Demon']
  917.  
  918. ######################################
  919.  
  920. def GiveObjectPowDefResResMaxData(ObjectName):
  921.     if ObjectName:
  922.         object=Bladex.GetEntity(ObjectName)
  923.         if object:
  924.             # Get object type
  925.             object_data= None
  926.             def_object_data= None
  927.             if DefaultObjectData.has_key(object.Kind):
  928.                 def_object_data= DefaultObjectData[object.Kind]
  929.             if EntitiesObjectData.has_key(ObjectName):
  930.                 object_data= EntitiesObjectData[ObjectName]
  931.             else:
  932.                 object_data=def_object_data
  933.             
  934.             if object_data:
  935.                 if object_data[0]==OBJ_STANDARD or object_data[0]==OBJ_WEAPON or object_data[0]==OBJ_BOW or object_data[0]==OBJ_ARROW:
  936.                     sub_object_data=object_data[5]
  937.                     if len(sub_object_data)==0 or sub_object_data[0]==W_FLAG_1H:
  938.                         return object_data[1], object_data[2], None, None
  939.                     else:
  940.                         if def_object_data:
  941.                             return object_data[1], object_data[2], sub_object_data[4], def_object_data[5][4]
  942.                         else:
  943.                             return object_data[1], object_data[2], sub_object_data[4], sub_object_data[4]
  944.  
  945.                 elif object_data[0]==OBJ_SHIELD:
  946.                     if def_object_data:
  947.                         return object_data[1], None, object_data[2], def_object_data[2]
  948.                     else:
  949.                         return object_data[1], None, object_data[2], object_data[2]    
  950.     return None,None,None,None
  951.         
  952. def GiveObjectFlag(ObjectName):
  953.     if ObjectName:
  954.         object=Bladex.GetEntity(ObjectName)
  955.         if object:
  956.             # Get object type
  957.             if EntitiesObjectData.has_key(ObjectName):
  958.                 object_data = EntitiesObjectData[ObjectName]
  959.             elif DefaultObjectData.has_key(object.Kind):
  960.                 object_data = DefaultObjectData[object.Kind]
  961.             else:
  962.                 return OBJ_NONE            
  963.             object_flag = object_data[0]
  964.             return object_flag    
  965.     return OBJ_NONE
  966.  
  967. def GiveWeaponFlag(ObjectName):
  968.     object=Bladex.GetEntity(ObjectName)
  969.     # Get object type
  970.     if EntitiesObjectData.has_key(ObjectName):
  971.         object_data = EntitiesObjectData[ObjectName]
  972.     else:
  973.         object_data = DefaultObjectData[object.Kind]
  974.     object_flag = object_data[0]
  975.     
  976.     if object_flag<>OBJ_WEAPON:
  977.         return -1
  978.  
  979.     if len(object_data)<6:
  980.         print "Weapon " + ObjectName + " has not been properly clasified as 1h , 2h ..."
  981.         pdb.set_trace()
  982.         return W_FLAG_1H
  983.     else:
  984.         if len(object_data[5])<1:
  985.             return W_FLAG_1H        
  986.         return object_data[5][0]
  987.  
  988. def GiveQuiverType(arrow_type):
  989.     for kind in DefaultObjectData.keys():    
  990.         if len(kind)<2 or kind[len(kind)-2:]!='_E':
  991.             object_data= DefaultObjectData[kind]
  992.             if object_data[0]==OBJ_QUIVER and object_data[2]==arrow_type:
  993.                 return kind
  994.     return None
  995.  
  996. def IsParryingType(Kind):
  997.     if DefaultObjectData.has_key(Kind):
  998.         object_data= DefaultObjectData[Kind]
  999.         if object_data[0]==OBJ_ITEM or object_data[0]==OBJ_USEME:
  1000.             return 0
  1001.         elif object_data[0]==OBJ_SHIELD:
  1002.             return 1
  1003.         elif (object_data[0]==OBJ_WEAPON or object_data[1]==OBJ_STANDARD) and len(object_data)>5 and len(object_data[5])>0 and object_data[5][0]!=W_FLAG_1H:
  1004.             return 1
  1005.     return 0
  1006.  
  1007. def IsWeaponType(Kind):
  1008.     if DefaultObjectData.has_key(Kind):
  1009.         object_data= DefaultObjectData[Kind]
  1010.         if object_data[0]==OBJ_WEAPON:
  1011.             return 1
  1012.     return 0
  1013.  
  1014. def CheckWeapons():
  1015.     WeaponErrorList=[]
  1016.     nents= Bladex.nEntities()
  1017.     for i in range(nents):
  1018.         ent= Bladex.GetEntity(i)
  1019.         if (not ent.Person) and (not ent.Weapon):
  1020.             object_flag= GiveObjectFlag(ent.Name)
  1021.             if object_flag==OBJ_STANDARD or object_flag==OBJ_WEAPON:
  1022.                 print ent.Kind+"("+ent.Name+") was not created as a weapon"
  1023.  
  1024. TimesSaved = 0
  1025.  
  1026. def SaveData(filename):
  1027.   import cPickle
  1028.  
  1029.   funcfile=open(filename,"wt")
  1030.   p=cPickle.Pickler(funcfile)
  1031.   d=(EntitiesSelectionData,TimesSaved)
  1032.   p.dump(d)
  1033.   funcfile.close()
  1034.  
  1035.  
  1036. def LoadData(filename):
  1037.   import cPickle
  1038.  
  1039.   funcfile=open(filename,"rt")
  1040.   p=cPickle.Unpickler(funcfile)
  1041.   d=p.load()
  1042.   funcfile.close()
  1043.   print d
  1044.  
  1045.   global EntitiesSelectionData
  1046.   global TimesSaved
  1047.   
  1048.   EntitiesSelectionData = d[0]
  1049.   TimesSaved            = d[1]
  1050.  
  1051. import GameState
  1052. GameState.ModulesToBeSaved.append(__import__(__name__))
  1053.