home *** CD-ROM | disk | FTP | other *** search
Wrap
# Source Generated with Decompyle++ # File: in.pyc (Python 1.5) import Bladex import AuxFuncs import whrandom import InitDataField import GameStateAux import Auras import Objects import CharStats import ObjStore def LevelUpFX(EntityName, ColourGradation, AuraParams, AuraGradient, AuraVar1Args, AuraVar2Args, PSParams, LightIntensity, timer = 'Timer15', timespersec = 15, sound = ''): ent = Bladex.GetEntity(EntityName) if ColourGradation: l = ent.Level if ent.Level > 20: r = 255 g = 255 * ((29.0 - l) / 8.0) b = 0 elif ent.Level > 13: r = 255 * ((l - 14.0) / 6.0) g = 255 b = 0 elif ent.Level > 6: r = 0 g = 255 b = 255 * ((13.0 - l) / 6.0) else: r = 0 g = 255 * (l / 6.0) b = 255 AuraGradient = (AuraGradient[0], r / 255.0, g / 255.0, b / 255.0, AuraGradient[4], AuraGradient[5], r / 255.0, g / 255.0, b / 255.0, AuraGradient[9], AuraGradient[10]) else: r = PSParams[3] g = PSParams[4] b = PSParams[5] LevelUpParticleData = PSParams[0] for i in range(PSParams[2]): Bladex.SetParticleGVal(PSParams[1], i, r, g, b, LevelUpParticleData[2 * i], LevelUpParticleData[2 * i + 1]) AuraName = EntityName + 'AuraLevelUp' (a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2) = (AuraName, AuraVar2Args[0], AuraVar2Args[1], AuraVar2Args[2], AuraVar2Args[3], AuraVar2Args[4], 1, '', (), timer, timespersec) (a1, b1, c1, d1, e1, f1, g1, h1, i1, j1, k1) = (AuraName, AuraVar1Args[0], AuraVar1Args[1], AuraVar1Args[2], AuraVar1Args[3], AuraVar1Args[4], 0, AuxFuncs.FadeAndScaleAura, (a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2), timer, timespersec) alup = Bladex.CreateEntity(AuraName, 'Entity Aura', 0, 0, 0) alup.SetAuraParams(AuraParams[0], AuraParams[1], AuraParams[2], AuraParams[3], AuraParams[4], AuraParams[5]) alup.SetAuraGradient(AuraGradient[0], AuraGradient[1], AuraGradient[2], AuraGradient[3], AuraGradient[4], AuraGradient[5], AuraGradient[6], AuraGradient[7], AuraGradient[8], AuraGradient[9], AuraGradient[10]) ent.Link(alup) alup.SetAuraActive(1) AuxFuncs.FadeAndScaleAura(a1, b1, c1, d1, e1, f1, g1, h1, i1, j1, k1) PSName = EntityName + 'PSLevelUp' pslup = Bladex.CreateEntity(PSName, 'Entity Particle System Dperson', 0, 0, 0) pslup.PersonName = EntityName pslup.ParticleType = PSParams[1] pslup.PPS = PSParams[6] pslup.YGravity = PSParams[7] pslup.Friction = PSParams[8] pslup.RandomVelocity = PSParams[9] pslup.NormalVelocity = PSParams[10] pslup.FollowFactor = PSParams[11] pslup.Time2Live = PSParams[12] pslup.Velocity = (0.0, 0.0, 0.0) pslup.DeathTime = Bladex.GetTime() + PSParams[13] LightName = EntityName + 'LightLevelUp' llup = Bladex.CreateEntity(LightName, 'Entity Spot', 0, 0, 0) llup.Color = (r, g, b) llup.Intensity = 0.0 llup.Precission = 0.01 llup.CastShadows = 0 llup.Visible = 0 llup.Flick = 0 ent.Link(llup) AuxFuncs.SpotIntensityVariation(LightName, 0.0, LightIntensity, f1 / 1.6, 0, 0.0, 0.0, timer, timespersec) Bladex.AddScheduledFunc(Bladex.GetTime() + f1, AuxFuncs.SpotIntensityVariation, (LightName, LightIntensity, 0.0, f2 / 1.2, 1, 0.0, 0.0, timer, timespersec)) def ChangeNodesElectricDischarge(person_name, ray_name, list_of_nodes, timespersec, endtime): person = Bladex.GetEntity(person_name) ray = Bladex.GetEntity(ray_name) n1 = whrandom.randint(0, len(list_of_nodes) - 1) n2 = whrandom.randint(0, len(list_of_nodes) - 1) while n1 == n2: n2 = whrandom.randint(0, len(list_of_nodes) - 1) node1 = list_of_nodes[n1] node2 = list_of_nodes[n2] ray.Position = person.Rel2AbsPoint(0, 0, 0, node1) ray.Target = person.Rel2AbsPoint(0, 0, 0, node2) if Bladex.GetTime() > endtime: Bladex.AddScheduledFunc(Bladex.GetTime() + 1.0 / timespersec, ray.SubscribeToList, ('Pin',)) else: Bladex.AddScheduledFunc(Bladex.GetTime() + 1.0 / timespersec, ChangeNodesElectricDischarge, (person_name, ray_name, list_of_nodes, timespersec, endtime)) def ElectricDischarge(person_name, ray_name, r, g, b, amplitude, list_of_nodes, timespersec, time): person = Bladex.GetEntity(person_name) ray = Bladex.CreateEntity(ray_name, 'Entity ElectricBolt', 0, 0, 0) ray.Target = (0, 0, 0) ray.FixedTarget = 0 ray.MaxAmplitude = amplitude ray.MinSectorLength = 10000 ray.CoreGlowColor = (r, g, b) ray.InnerGlowColor = (r / 2, g / 2, b / 2) ray.OuterGlowColor = (0.0, 0.0, 0.0) ray.Damage = 0 ray.Active = 1 n1 = whrandom.randint(0, len(list_of_nodes) - 1) n2 = whrandom.randint(0, len(list_of_nodes) - 1) while n1 == n2: n2 = whrandom.randint(0, len(list_of_nodes) - 1) node1 = list_of_nodes[n1] node2 = list_of_nodes[n2] ray.Position = person.Rel2AbsPoint(0, 0, 0, node1) ray.Target = person.Rel2AbsPoint(0, 0, 0, node2) endtime = Bladex.GetTime() + time Bladex.AddScheduledFunc(Bladex.GetTime() + 1.0 / timespersec, ChangeNodesElectricDischarge, (person_name, ray_name, list_of_nodes, timespersec, endtime)) class LightFX: def __init__(self): self.Entity = 'Player1' self.TurnOnTime = 1.0 self.TurnOffTime = 1.0 self.QuickTurnOffTime = 0.5 self.MaxIntensity = 2.0 self.TimeMaxIntensity = 2.0 self.Color = (255, 255, 255) self.Flick = 0 class WeaponFX: def __init__(self, WeaponName, auraparams, auragradient, prtldata, lightdata): weapon = Bladex.GetEntity(WeaponName) self.WeaponName = WeaponName self.Aura = '' self.Particles = '' self.Light = '' if auraparams: (s, a, ci, f, b, am) = auraparams (m, r1, g1, b1, a1, imd, r2, g2, b2, a2, emd) = auragradient self.Aura = Bladex.CreateEntity(WeaponName + 'Aura', 'Entity Aura', 0, 0, 0) self.Aura.SetAuraParams(s, a, ci, f, b, am) self.Aura.SetAuraGradient(m, r1, g1, b1, a1, imd, r2, g2, b2, a2, emd) weapon.Link(self.Aura) self.Aura.SetAuraActive(1) if prtldata: (pt, pps, v, nv, rv, g, fr, ff, t2l) = prtldata self.Particles = Bladex.CreateEntity(WeaponName + 'Particles', 'Entity Particle System Dobj', 0, 0, 0) self.Particles.ObjectName = WeaponName self.Particles.ParticleType = pt self.Particles.PPS = pps self.Particles.Velocity = v self.Particles.NormalVelocity = nv self.Particles.RandomVelocity = rv self.Particles.YGravity = g self.Particles.Friction = fr self.Particles.FollowFactor = ff self.Particles.Time2Live = t2l if lightdata: (i, color, fl) = lightdata self.Light = Bladex.CreateEntity(WeaponName + 'Light', 'Entity Spot', 0, 0, 0) self.Light.Intensity = i self.Light.Color = color self.Light.Flick = fl self.Light.CastShadows = 0 self.Light.Visible = 0 weapon.Link(self.Light) def __getstate__(self): return (1, self.WeaponName, GameStateAux.SaveEntityAux(self.Aura), GameStateAux.SaveEntityAux(self.Particles), GameStateAux.SaveEntityAux(self.Light)) def __setstate__(self, parm): if parm[0] == 1: self.WeaponName = parm[1] self.Aura = GameStateAux.LoadEntityAux(parm[2]) self.Particles = GameStateAux.LoadEntityAux(parm[3]) self.Light = GameStateAux.LoadEntityAux(parm[4]) else: print 'WeaponFX.__setstate__() -> Version mismatch' self.WeaponName = '' self.Aura = '' self.Particles = '' self.Light = '' def AddWeaponFX(WeaponName): weapon = Bladex.GetEntity(WeaponName) if not weapon: print 'El arma especificada no existe!' return None if weapon.Kind in ('QueenSword', 'VampWeapon'): auraparams = (80, 1, 1, 0, 0, 0) auragradient = (2, 0.8, 0.1, 0.1, 0.2, 0.0, 0.4, 0.0, 0.0, 0.0, 0.6) if weapon.Kind == 'VampWeapon': prtldata = ('GotasSangre', 20, (0.0, 0.0, 0.0), 0.0, 0.0, 2000.0, 0.01, 0.0, 24) else: prtldata = () lightdata = () elif weapon.Kind in ('CrushHammer', 'DalWeapon', 'SteelFeather'): auraparams = (80, 1, 1, 0, 0, 0) auragradient = (2, 0.5, 0.6, 0.0, 0.2, 0.0, 0.2, 0.3, 0.0, 0.1, 0.5) prtldata = ('GasVenenoso', 30, (0.0, 0.0, 0.0), 0.0, 1.0, 0.0, 0.02, 0.0, 60) lightdata = () elif weapon.Kind in ('FireBigSword', 'FireAxe', 'FireSword', 'FireBo'): auraparams = (40, 1, 1, 0, 0, 1) auragradient = (2, 0.8, 0.6, 0.0, 0.6, 0.0, 0.8, 0.1, 0.0, 0.0, 0.6) prtldata = ('Llamita', 400, (0.0, 0.0, 0.0), 1.0, 0.0, -1000.0, 0.02, 0.0, 10) lightdata = (1.0, (255, 120, 0), 1) weapon.SelfIlum = 0.8 elif weapon.Kind in ('IceAxe', 'IceHammer', 'IceSword', 'TaiSword'): auraparams = (10, 1, 1, 0, 0, 1) auragradient = (2, 0.9, 1.0, 1.0, 0.2, 0.1, 0.4, 0.8, 1.0, 0.2, 1.0) prtldata = ('Vaho', 20, (0.0, 0.0, 0.0), 0.0, 1.0, 150.0, 0.02, 0.0, 60) lightdata = () weapon.SelfIlum = 0.2 weapon.Alpha = 0.99 weapon.RasterMode = 'AdditiveAlpha' elif weapon.Kind in ('BladeSword2', 'BladeSword2Barbarian'): auraparams = (80, 1, 1, 0, 0, 1) auragradient = (2, 0.8, 0.9, 1.0, 0.6, 0.0, 0.3, 0.4, 0.9, 0.0, 0.6) prtldata = ('BrillosBladeSword', 15, (0.0, 0.0, 0.0), 0.0, 0.0, 0.0, 0.01, 0.0, 6) lightdata = (1.0, (235, 245, 255), 0) weapon.SelfIlum = 0.8 else: print 'No hay efecto definido para este tipo de arma!' return None InitDataField.Initialise(weapon) weapon.Data.WeaponFX = WeaponFX(WeaponName, auraparams, auragradient, prtldata, lightdata) class PersonItemFX: def __init__(self, PersonName, ItemName, TimeEffect): pers = Bladex.GetEntity(PersonName) item = Bladex.GetEntity(ItemName) time = Bladex.GetTime() self.PersonName = PersonName self.ItemName = ItemName AuraParams0 = (240, 0.01, 1.0, 0, 1, 1) AuraParams1 = (50, 1.0, 1.0, 0, 1, 1) AuraParams2 = (40, 0.6, 1.0, 0, 1, 1) XtraParam0 = ('Bladex.GetEntity("' + PersonName + '").SelfIlum', 0.0) XtraParam1 = ('Bladex.GetEntity("' + PersonName + '").SelfIlum', 0.6) XtraParam2 = ('Bladex.GetEntity("' + PersonName + '").SelfIlum', 0.1) if item.Kind == 'PowerPotion': AuraGradient0 = (2, 0.2, 0.4, 0.8, 1.0, 0.2, 0.0, 0.2, 0.8, 0.0, 0.7) AuraGradient1 = (2, 0.8, 0.9, 1.0, 1.0, 0.2, 0.0, 0.2, 0.9, 0.1, 1.0) self.Aura = Auras.MakeAura(PersonName, TimeEffect, AuraParams0, (), (), AuraGradient0, 1, XtraParam0) self.Aura.Data.AddEvent(time + 1.0, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 4.1, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 3.6, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 3.1, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 2.7, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 2.3, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 2.0, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.7, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 1.5, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.3, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 1.2, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.1, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 1.05, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.0, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect, AuraParams0, (), (), AuraGradient0, 1, XtraParam0) elif item.Kind == 'Brazalete': AuraGradient0 = (2, 0.8, 0.6, 0.0, 1.0, 0.2, 0.4, 0.3, 0.0, 0.0, 0.7) AuraGradient1 = (2, 1.0, 0.9, 0.5, 1.0, 0.1, 0.4, 0.3, 0.0, 0.0, 1.0) self.Aura = Auras.MakeAura(PersonName, TimeEffect, AuraParams0, (), (), AuraGradient0, 1, XtraParam0) self.Aura.Data.AddEvent(time + 1.0, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 4.1, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 3.6, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 3.1, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 2.7, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 2.3, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 2.0, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.7, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 1.5, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.3, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 1.2, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.1, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 1.05, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.0, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect, AuraParams0, (), (), AuraGradient0, 1, XtraParam0) elif item.Kind == 'Corona': AuraGradient0 = (2, 1.0, 0.4, 0.0, 1.0, 0.2, 1.0, 0.0, 0.0, 0.0, 0.7) AuraGradient1 = (2, 1.0, 0.7, 0.0, 1.0, 0.1, 1.0, 0.0, 0.0, 0.0, 1.0) self.Aura = Auras.MakeAura(PersonName, TimeEffect, AuraParams0, (), (), AuraGradient0, 1, XtraParam0) self.Aura.Data.AddEvent(time + 1.0, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 4.1, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 3.6, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 3.1, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 2.7, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 2.3, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 2.0, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.7, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 1.5, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.3, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 1.2, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.1, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 1.05, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.0, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect, AuraParams0, (), (), AuraGradient0, 1, XtraParam0) else: AuraGradient0 = (2, 0.0, 1.0, 0.4, 1.0, 0.2, 0.0, 0.8, 0.0, 0.0, 0.7) AuraGradient1 = (2, 0.0, 1.0, 0.7, 1.0, 0.1, 0.0, 0.6, 0.0, 0.0, 1.0) self.Aura = Auras.MakeAura(PersonName, TimeEffect, AuraParams0, (), (), AuraGradient0, 1, XtraParam0) self.Aura.Data.AddEvent(time + 1.0, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 4.1, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 3.6, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 3.1, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 2.7, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 2.3, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 2.0, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.7, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 1.5, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.3, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 1.2, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.1, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect - 1.05, AuraParams2, (), (), AuraGradient1, 1, XtraParam2) self.Aura.Data.AddEvent(time + TimeEffect - 1.0, AuraParams1, (), (), AuraGradient1, 1, XtraParam1) self.Aura.Data.AddEvent(time + TimeEffect, AuraParams0, (), (), AuraGradient0, 1, XtraParam0) def __getstate__(self): return (1, self.PersonName, self.ItemName, GameStateAux.SaveEntityAux(self.Aura)) def __setstate__(self, parm): if parm[0] == 1: self.PersonName = parm[1] self.ItemName = parm[2] self.Aura = GameStateAux.LoadEntityAux(parm[3]) else: print 'ItemFX.__setstate__() -> Version mismatch' self.PersonName = '' self.ItemName = '' self.Aura = '' def AddPersonItemFX(PersonName, ItemName, TimeEffect): pers = Bladex.GetEntity(PersonName) item = Bladex.GetEntity(ItemName) if not item or item.Kind not in ('PowerPotion', 'Amuletofantasma', 'Brazalete', 'Corona'): print 'El item especificado no existe no hay efecto definido para este tipo de item!' return None pers.Data.PersonItemFX = PersonItemFX(PersonName, ItemName, TimeEffect) def ChangeRasterMode(ent_name, mode): Bladex.GetEntity(ent_name).RasterMode = mode def PersonMagicallyAppearing(): TimeEffect = 2.0 time = Bladex.GetTime() char = Bladex.GetEntity('Player1') char.Alpha = 0.01 char.RasterMode = 'Read' Bladex.AddScheduledFunc(time + TimeEffect, ChangeRasterMode, ('Player1', 'Full')) AuxFuncs.FadeObject('Player1', 0.01, 1.0, 2.0) if char.InvLeft != '': obj = Bladex.GetEntity(char.InvLeft) obj.RasterMode = 'Read' Bladex.AddScheduledFunc(time + TimeEffect, ChangeRasterMode, (char.InvLeft, 'Full')) AuxFuncs.FadeObject(char.InvLeft, 0.01, obj.Alpha, TimeEffect) if char.InvRight != '': obj = Bladex.GetEntity(char.InvRight) obj.RasterMode = 'Read' Bladex.AddScheduledFunc(time + TimeEffect, ChangeRasterMode, (char.InvRight, 'Full')) AuxFuncs.FadeObject(char.InvRight, 0.01, obj.Alpha, TimeEffect) if char.InvLeftBack != '': obj = Bladex.GetEntity(char.InvLeftBack) obj.RasterMode = 'Read' Bladex.AddScheduledFunc(time + TimeEffect, ChangeRasterMode, (char.InvLeftBack, 'Full')) AuxFuncs.FadeObject(char.InvLeftBack, 0.01, obj.Alpha, TimeEffect) if char.InvRightBack != '': obj = Bladex.GetEntity(char.InvRightBack) obj.RasterMode = 'Read' Bladex.AddScheduledFunc(time + TimeEffect, ChangeRasterMode, (char.InvRightBack, 'Full')) AuxFuncs.FadeObject(char.InvRightBack, 0.01, obj.Alpha, TimeEffect) AuraParams0 = (240, 0.01, 1.0, 0, 1, 1) AuraParams1 = (50, 1.0, 1.0, 0, 1, 1) AuraParams2 = (50, 0.01, 1.0, 0, 1, 1) AuraGradient0 = (2, 0.2, 0.4, 0.8, 1.0, 0.2, 0.0, 0.2, 0.8, 0.0, 0.7) AuraGradient1 = (2, 0.8, 0.9, 1.0, 1.0, 0.2, 0.0, 0.2, 0.9, 0.1, 1.0) aura = Auras.MakeAura('Player1', TimeEffect, AuraParams0, (), (), AuraGradient0) aura.Data.AddEvent(time + TimeEffect / 2.0, AuraParams1, (), (), AuraGradient1) aura.Data.AddEvent(time + TimeEffect, AuraParams2, (), (), AuraGradient0) ps = Bladex.CreateEntity('PSPersonMagicallyAppearing', 'Entity Particle System Dperson', 0.0, 0.0, 0.0) ps.PersonName = 'Player1' ps.ParticleType = 'FastEnergyConc' ps.PPS = 200 ps.YGravity = 0.0 ps.Friction = 0.0 ps.Velocity = (0.0, 0.0, 0.0) ps.RandomVelocity = 0.5 ps.NormalVelocity = -2.0 ps.Time2Live = 30 ps.DeathTime = time + TimeEffect / 2.0 def PersonMagicallyDisappearing(): TimeEffect = 2.0 time = Bladex.GetTime() char = Bladex.GetEntity('Player1') char.Alpha = 1.0 char.RasterMode = 'Read' AuxFuncs.FadeObject('Player1', 1.0, 0.01, TimeEffect) if char.InvLeft != '': obj = Bladex.GetEntity(char.InvLeft) obj.RasterMode = 'Read' AuxFuncs.FadeObject(char.InvLeft, obj.Alpha, 0.01, TimeEffect) if char.InvRight != '': obj = Bladex.GetEntity(char.InvRight) obj.RasterMode = 'Read' AuxFuncs.FadeObject(char.InvRight, obj.Alpha, 0.01, TimeEffect) if char.InvLeftBack != '': obj = Bladex.GetEntity(char.InvLeftBack) obj.RasterMode = 'Read' AuxFuncs.FadeObject(char.InvLeftBack, obj.Alpha, 0.01, TimeEffect) if char.InvRightBack != '': obj = Bladex.GetEntity(char.InvRightBack) obj.RasterMode = 'Read' AuxFuncs.FadeObject(char.InvRightBack, obj.Alpha, 0.01, TimeEffect) AuraParams0 = (240, 0.01, 1.0, 0, 1, 1) AuraParams1 = (50, 1.0, 1.0, 0, 1, 1) AuraParams2 = (50, 0.01, 1.0, 0, 1, 1) AuraGradient0 = (2, 0.2, 0.4, 0.8, 1.0, 0.2, 0.0, 0.2, 0.8, 0.0, 0.7) AuraGradient1 = (2, 0.8, 0.9, 1.0, 1.0, 0.2, 0.0, 0.2, 0.9, 0.1, 1.0) aura = Auras.MakeAura('Player1', TimeEffect, AuraParams2, (), (), AuraGradient0) aura.Data.AddEvent(time + TimeEffect / 2.0, AuraParams1, (), (), AuraGradient1) aura.Data.AddEvent(time + TimeEffect, AuraParams0, (), (), AuraGradient0) ps = Bladex.CreateEntity('PSPersonMagicallyAppearing', 'Entity Particle System Dperson', 0.0, 0.0, 0.0) ps.PersonName = 'Player1' ps.ParticleType = 'EnergyDissip' ps.PPS = 200 ps.YGravity = 0.0 ps.Friction = 0.0 ps.Velocity = (0.0, 0.0, 0.0) ps.RandomVelocity = 0.5 ps.NormalVelocity = 2.0 ps.Time2Live = 60 ps.DeathTime = time + TimeEffect / 3.0 class MagicTransport: def __init__(self, trsector_name, magictr_position): self.Position = (x, y, z) = magictr_position self.TrSectorMax = trsector_name self.TrSectorMin = trsector_name + '_In' self.MagicCilinder = Bladex.CreateEntity(trsector_name + '_Cil', 'CilindroTransportador', x, y, z) self.MagicCilinder.Orientation = (0.707107, 0.707107, 0.0, 0.0) self.MagicCilinder.Scale = 0.1 self.MagicCilinder.Alpha = 0.0 self.MagicCilinder.CastShadows = 0 self.AGE_Number = 0 Bladex.AddTriggerSector(trsector_name + '_In', 'Transportadores', y + 1150.0, y - 1150.0, [ (x + 500.0, z + 500.0), (x - 500.0, z + 500.0), (x - 500.0, z - 500.0), (x + 500.0, z - 500.0)]) Bladex.SetTriggerSectorFunc(trsector_name + '_In', 'OnEnter', self.UseMagicTransport) Bladex.SetTriggerSectorFunc(trsector_name, 'OnEnter', self.OpenMagicTransport) Bladex.SetTriggerSectorFunc(trsector_name, 'OnLeave', self.CloseMagicTransport) self.ObjId = ObjStore.GetNewId() ObjStore.ObjectsStore[self.ObjId] = self def persistent_id(self): return self.ObjId def __getstate__(self): return (1, self.ObjId, self.Position, self.TrSectorMax, self.TrSectorMin, self.AGE_Number, GameStateAux.SaveEntityAux(self.MagicCilinder)) def __setstate__(self, parm): if parm[0] == 1: self.ObjId = parm[1] ObjStore.ObjectsStore[self.ObjId] = self self.Position = parm[2] self.TrSectorMax = parm[3] self.TrSectorMin = parm[4] self.AGE_Number = parm[5] self.MagicCilinder = GameStateAux.LoadEntityAux(parm[6]) else: print 'MagicTransport.__setstate__() -> Version mismatch' self.ObjId = ObjStore.GetNewId() ObjStore.ObjectsStore[self.ObjId] = self self.Position = '' self.TrSectorMax = '' self.TrSectorMin = '' self.AGE_Number = '' self.MagicCilinder = '' def RotateMagicCilinderGrad(self, obj_name, time): self.MagicCilinder.RotateRel(0, 0, 0, 0, 0, 1, 0.08) def RotateMagicCilinder(self): self.MagicCilinder.TimerFunc = self.RotateMagicCilinderGrad self.MagicCilinder.SubscribeToList('Timer30') def OpenMagicTransport(self, trsector, ent_name): import GameText AuxFuncs.ScaleObjectV2(self.MagicCilinder.Name, self.MagicCilinder.Scale, 1.0, -1, 2.0, self.RotateMagicCilinderGrad, (0, 0), self.RotateMagicCilinder, (), 0) self.AGE_Number = self.AGE_Number + 1 openps = Bladex.CreateEntity(self.MagicCilinder.Name + '_PS_' + `self.AGE_Number`, 'Entity Particle System Dobj', 0.0, 0.0, 0.0) openps.ObjectName = self.MagicCilinder.Name openps.ParticleType = 'LittleEnergyDissip' openps.PPS = 600 openps.YGravity = 0.0 openps.Friction = 0.0 openps.Velocity = (0.0, 0.0, 0.0) openps.RandomVelocity = 0.0 openps.NormalVelocity = 0.0 openps.Time2Live = 30 GameText.ShowMessage('Entra en el transportador para abandonar el mapa') def CloseMagicTransport(self, trsector, ent_name): import GameText openps = Bladex.GetEntity(self.MagicCilinder.Name + '_PS_' + `self.AGE_Number`) if openps: openps.DeathTime = Bladex.GetTime() + 2.0 AuxFuncs.ScaleObjectV2(self.MagicCilinder.Name, self.MagicCilinder.Scale, 0.1, 1, 2.0, self.RotateMagicCilinderGrad, (0, 0), '', (), 0) GameText.HideMessage() def UseMagicTransport(self, trsector, ent_name): import GotoMapVars import Scorer Bladex.RemoveTriggerSectorFunc(trsector, 'OnEnter') Bladex.DeactivateInput() Scorer.SetVisible(0) PersonMagicallyDisappearing() self.CloseMagicTransport(0, 0) Bladex.AddScheduledFunc(Bladex.GetTime() + 2.0, AuxFuncs.FadeTo, (2.0, 2.0)) Bladex.AddScheduledFunc(Bladex.GetTime() + 4.0, GotoMapVars.EndOfLevel, ()) def CreateMagicTransport(trsector_name, magictr_position): magictr = MagicTransport(trsector_name, magictr_position) return magictr