//Polymorph system //v1.5 //by Rudenid //Sphere version: 55i. //Difficulty of Installation: 2/10 //Dependencies: None. //This system fixes the rather bugged polymorph spell. //As of now, it only supports the default polymorphs and ostards. //You can easily add more creatures, however. //Add this event to your players [EVENTS e_player_poly] ON=@Death IF () OBODY=> BODY=> FINDID.i_newpoly.TAG.OLDBODY= FINDID.i_newpoly.TAG.OLDOBODY= FINDID.i_newpoly.TIMERd=1 ENDIF ON=@SpellEffect IF ((=41)||(=54)) //Dispel, mass dispel IF () FINDID.i_newpoly.TIMERd=1 ENDIF ENDIF IF (=56) //Polymorph. This works with Sphere's POLY function, so no skillmenu //changes are needed. IF () FINDID.i_newpoly.TIMER={120 300} ELSE NEWITEM i_newpoly ACT.CONT= ACT.TAG.OLDNAME= ACT.TAG.OLDOBODY= ACT.TAG.OLDBODY= ACT.TAG.OLDFAME= ACT.TAG.OLDKARMA= ACT.TAG.OLDSTR= ACT.TAG.OLDDEX= ACT.TAG.OLDINT= ACT.TAG.OLDCOLOR= ACT.TIMER={120 300} ENDIF BODY= IF (=0190) //Man NAME=#NAMES_HUMANMALE COLOR=colors_skin IF ( > 100) STR=100 ENDIF IF ( > 100) INT=100 ENDIF IF ( > 100) DEX=100 ENDIF ELSEIF (=0191) //Woman NAME=#NAMES_HUMANFEMALE COLOR=colors_skin IF ( > 100) STR=100 ENDIF IF ( > 100) INT=100 ENDIF IF ( > 100) DEX=100 ENDIF ELSEIF (=0D0) //Chicken NAME=Chicken KARMA={-1 -99} FAME=0 COLOR=0 STR=5 DEX=15 INT=5 ELSEIF (=0D9) //Dog NAME=Dog KARMA={-1 -99} FAME=0 COLOR={0 1 colors_animal 1} STR={25 37} DEX={33 43} INT={25 37} ELSEIF (=015) //Giant Serpent NAME=Giant Serpent FAME={600 2000} KARMA={-3000 -3999} COLOR=colors_snake STR={85 115} DEX={40 60} INT={10 30} ELSEIF (=0d2) //Oclock NAME=Oclock COLOR=0 FAME=0 KARMA=-9000 STR={70 110} DEX={100 250} INT={5 15} ELSEIF (=0db) //Orn NAME=Orn COLOR=0 FAME=0 KARMA=-9000 STR={70 110} DEX={100 250} INT={5 15} ELSEIF (=0da) //Zostrich NAME=Zostrich COLOR=0 FAME=0 KARMA=-9000 STR={70 130} DEX={250 350} INT={5 15} ELSEIF (=09) //Daemon NAME=#NAMES_DAEMON COLOR=colors_daemon FAME={4000 8000} KARMA={-5000 -5999} STR={145 185} DEX={36 75} INT={160 300} ELSE //Dragon NAME=#NAMES_DRAGON FAME={3000 9000} KARMA={-5000 -5999} STR={175 305} DEX={85 145} INT={10 20} ENDIF FLAGS=|statf_polymorph UPDATE SFX 527 BARK 3 RETURN 1 ENDIF [ITEMDEF i_newpoly] ID=i_rune_polymorph TYPE=t_eq_script LAYER=30 NAME=Polymorph ON=@Create ATTR=attr_invis|attr_move_never ON=@Timer CONT.FINDID.i_rune_curse.REMOVE CONT.FINDID.i_rune_mass_curse.REMOVE CONT.FINDID.i_rune_feeblemind.REMOVE CONT.FINDID.i_rune_clumsy.REMOVE CONT.FINDID.i_rune_weaken.REMOVE CONT.FINDID.i_rune_bless.REMOVE CONT.FINDID.i_rune_strength.REMOVE CONT.FINDID.i_rune_agility.REMOVE CONT.FINDID.i_rune_cunning.REMOVE CONT.FLAGS= &~ statf_polymorph CONT.NAME= CONT.OBODY=> CONT.BODY=> CONT.FAME=> CONT.KARMA=> CONT.STR=> CONT.DEX=> CONT.INT=> IF ( > ) CONT.HITS= ENDIF IF ( > ) CONT.STAM= ENDIF IF ( > ) CONT.MANA= ENDIF CONT.COLOR=> CONT.UPDATE CONT.BARK 3 REMOVE RETURN 1