All pastes #1789828 Raw Edit

ScriptGenerator

public php v1 · immutable
#1789828 ·published 2010-02-08 06:17 UTC
rendered paste body
<script>function zmenDiv(element){if(document.getElementById(element).style.display == "none")document.getElementById(element).style.display = "block";else document.getElementById(element).style.display = "none";}</script><form method="post" action="#">  <table>    <tr>      <td>        NPC Entry:</td>      <td>        <input type="text" name="npcEntry"></td>      <td>        Jméno NPC:</td>      <td>        <input type="text" name="npcName"></td>    </tr>    <tr>      <td>        <br></td>    </tr>    <tr>      <td>        Fáze?:</td>      <td>        <input type="checkbox" name="faze" OnClick="zmenDiv('fazeShow'); zmenDiv('fazeSpelly');"></td>    </tr>  </table>  <table>    <tr>      <td>        <table id="fazeShow" style="display: none;">          <tr>            <td>              počet fází:              <select name="fazePocet">                <option value="2"> 2                </option>                <option value="3"> 3                </option>              </select></td>          </tr>          <tr>            <td>              typ změny fáze:              <select name="fazeZmena" OnChange="zmenDiv('fazeHp'); zmenDiv('fazeTimer');">                <option value="1"> %HP                </option>                <option value="2"> Timer                </option>              </select></td>          </tr>          <tr id="fazeHp" style="display: block;">            <td>                Po počtu % HP</td><td><input type="text" name="fazeHPProcent">(např 10 = že po 10% HP bosse se změní fáze [fáze se změní maximálně 3x {podle počtu fází}])</td>            </td>          </tr>          <tr id="fazeTimer" style="display: none;">            <td>                Po čase :(v milisekundách)<input type="text" name="fazeTimerTime">(pokaždý když uplyne čas timeru, tak se změní fáze, pokud je fáze 3 a uplyne čas znovu, následuje fáze 1)            </td>          </tr>        </table></td>    </tr>  </table>  <table>    <tr>      <td>        SpellId1</td>      <td>        <input type="text" name="SpellId1"></td>      <td>        SpellId2</td>      <td>        <input type="text" name="SpellId2"></td>      <td>        SpellId3</td>      <td>        <input type="text" name="SpellId3"></td>    </tr>    <tr>      <td>        SpellId4</td>      <td>        <input type="text" name="SpellId4"></td>      <td>        SpellId5</td>      <td>        <input type="text" name="SpellId5"></td>      <td>        SpellId6</td>      <td>        <input type="text" name="SpellId6"></td>    </tr>    <tr>      <td>        <br></td>    </tr>    <tr>      <td>        Timer1</td>      <td>        <input type="text" name="Timer1"></td>      <td>        Timer2</td>      <td>        <input type="text" name="Timer2"></td>      <td>        Timer3</td>      <td>        <input type="text" name="Timer3"></td>    </tr>    <tr>      <td>        Timer4</td>      <td>        <input type="text" name="Timer4"></td>      <td>        Timer5</td>      <td>        <input type="text" name="Timer5"></td>      <td>        Timer6</td>      <td>        <input type="text" name="Timer6"></td>    </tr>    <tr>      <td>        <br></td>    </tr>    <tr>      <td>        Say po Spellu1</td>      <td>        <input type="text" name="SPS1"></td>      <td>        Say po Spellu2</td>      <td>        <input type="text" name="SPS2"></td>      <td>        Say po Spellu3</td>      <td>        <input type="text" name="SPS3"></td>    </tr>    <tr>      <td>        Say po Spellu4</td>      <td>        <input type="text" name="SPS4"></td>      <td>        Say po Spellu5</td>      <td>        <input type="text" name="SPS5"></td>      <td>        Say po Spellu6</td>      <td>        <input type="text" name="SPS6"></td>    </tr>    <tr><td>Pokud je Fáze spellu 0</td><td> spell platí pro všechny fáze</td></tr>        <tr><td>Fáze Spellu1</td><td><input type="text" name="PhaseSpellId1"></td>        <td>Fáze Spellu2</td><td><input type="text" name="PhaseSpellId2"></td>        <td>Fáze Spellu3</td><td><input type="text" name="PhaseSpellId3"></td></tr>        <tr><td>Fáze Spellu4</td><td><input type="text" name="PhaseSpellId4"></td>        <td>Fáze Spellu5</td><td><input type="text" name="PhaseSpellId5"></td>        <td>Fáze Spellu6</td><td><input type="text" name="PhaseSpellId6"></td></tr>    <tr><td><br /></td></tr>    <tr>      <td>        Target1</td>      <td>        <select name="Target1">          <option value="1"> target          </option>          <option value="2"> self          </option>          <option value="0"> random          </option>        </select></td>      <td>        Target2</td>      <td>        <select name="Target2">          <option value="1"> target          </option>          <option value="2"> self          </option>          <option value="0"> random          </option>        </select></td>      <td>        Target3</td>      <td>        <select name="Target3">          <option value="1"> target          </option>          <option value="2"> self          </option>          <option value="0"> random          </option>        </select></td>    </tr>    <tr>      <td>        Target4</td>      <td>        <select name="Target4">          <option value="1"> target          </option>          <option value="2"> self          </option>          <option value="0"> random          </option>        </select></td>      <td>        Target5</td>      <td>        <select name="Target5">          <option value="1"> target          </option>          <option value="2"> self          </option>          <option value="0"> random          </option>        </select></td>      <td>        Target6</td>      <td>        <select name="Target6">          <option value="1"> target          </option>          <option value="2"> self          </option>          <option value="0"> random          </option>        </select></td>    </tr>    <tr>      <td>        <br></td>    </tr>    <tr>      <td>        Aggro say</td>      <td>        <input type="text" name="aggroSay"></td>      <td>        Kill say</td>      <td>        <input type="text" name="killSay"></td>      <td>        Death say</td>      <td>        <input type="text" name="deathSay"></td>    </tr>    <tr>      <td>        <br></td>    </tr>  </table>  <tr>    <td>      Summon npc?</td>    <td>      <input type="checkbox" name="summon"   OnClick="zmenDiv('summon');"></td>  </tr>  </table>  <div id="summon" style="display: none;">    <table>      <tr>        <td>          entry1</td>        <td>          <input tyoe="text" name="summEntry1"></td>        <td>          entry2</td>        <td>          <input tyoe="text" name="summEntry2"></td>        <td>          entry3</td>        <td>          <input tyoe="text" name="summEntry3"></td>      </tr>      <tr>        <td>          Summon event</td>        <td>          <select name="eventId" OnChange="zmenDiv('hpEvent'); zmenDiv('timerEvent');">            <option value="1"> %HP            </option>            <option value="2"> Timer            </option>          </select></td>      </tr>    </table>    <table>      <tr id="timerEvent" style="display: none;">        <td>          <table>            <tr>           (v milisekundách)</tr>           <tr>              <td>                event timer 1</td>              <td>                <input tyoe="text" name="summEventVal1"></td>            </tr>            <tr>              <td>                event timer 2</td>              <td>                <input tyoe="text" name="summEventVal2"></td>            </tr>            <tr>              <td>                event timer 3</td>              <td>                <input tyoe="text" name="summEventVal3"></td>            </tr>          </table></td>      </tr>      <tr id="hpEvent" style="display: block;">        <td>          <table>            <tr>              <td>                event % hp 1</td>              <td>                <input tyoe="text" name="summHpProc1"></td>              <td>                čí % hp?</td>              <td>                <select name="eventTargetHp1">                  <option value="2"> self                  </option>                  <option value="1"> target                  </option>                </select></td>            </tr>            <tr>              <td>                event % hp 2</td>              <td>                <input tyoe="text" name="summHpProc2"></td>              <td>                čí % hp?</td>              <td>                <select name="eventTargetHp2">                  <option value="2"> self                  </option>                  <option value="1"> target                  </option>                </select></td>            </tr>            <tr>              <td>                event % hp 3</td>              <td>                <input tyoe="text" name="summHpProc3"></td>              <td>                čí % hp?</td>              <td>                <select name="eventTargetHp3">                  <option value="2"> self                  </option>                  <option value="1"> target                  </option>                </select></td>            </tr>          </table></td>      </tr>    </table>  </div>  <table>    <tr>      <td>        <input type="submit" name="gen" value="generuj"></td>    </tr>  </table></form><?phpif (isset($_POST['gen'])){$summon = false;$faze = false;$jmenoScriptu = $_POST['npcName'];$npcEntry = $_POST['npcEntry'];$scrName = str_replace(" ","_",$jmenoScriptu);$getTarget = array("SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true)","m_creature->getVictim()","m_creature");if ($_POST['summon']){  $summon = true;  $summ[1] = $_POST['summEntry1'];  $summ[2] = $_POST['summEntry2'];  $summ[3] = $_POST['summEntry3'];  if($_POST['eventId'] == 1)    $event = "procHP";  else if ($_POST['eventId'] == 2)    $event = "timer";    if($event == "procHP"){    for($i=1;$i<4;$i++){      $summHpProc[$i] = $_POST['summHpProc'.$i];      $hpProcOf[$i] = $_POST['eventTargetHp'.$i];      if ($summ[$i] && $summ[$i] != "")        $Event[$i] = array($summ[$i],$summHpProc[$i],$hpProcOf[$i]);        }  }else if($event == "timer"){    for($i=1;$i<4;$i++){      $summTimer[$i] = $_POST['summEventVal'.$i];      if ($summ[$i] && $summ[$i] != "")        $Event[$i] = array($summ[$i],$summTimer[$i],0);        }  }}if($_POST['faze']){  $faze = true;  $pocetFazi = $_POST['fazePocet'];  $zmenaFaze = ($_POST['fazeZmena'] == 1) ? $_POST['fazeHPProcent'] : $_POST['fazeTimerTime'];  $typZmeny =  ($_POST['fazeZmena'] == 1) ? "hp" : "timer";}$generated .= '/*  Script generován Spichyho Sctipt generátorem pro Trinitycore2  Spichy si nenárokuje žádný &copy; a proto může každý používat tento script  volně ho šířit a upravovat jak se mu zlíbí, ale nebylo by od věci nemazat  tento header, jakožto vzdání díku vůči jeho dílu :)*/#include "ScriptedPch.h"';if($faze){  	$generated .= "#define POCET_FAZI       ".$pocetFazi;}if($summon){  for($i=1;$i<4;$i++){    if ($Event[$i])  	$generated .= "#define SUMM_NPC".$i."        ".$Event[$i][0];  }}//say after spell proměnnýfor($i=1;$i<7;$i++){  if (isset($_POST['SPS'.$i]) && $_POST['SPS'.$i] != ""){    $SPS[$i] = $_POST['SPS'.$i];    $sps[$i] = true;  }}if (isset($_POST['aggroSay']) && $_POST['aggroSay'] != ""){  $aggroSay = $_POST['aggroSay'];  $aggrosay = true;}if (isset($_POST['killSay']) && $_POST['killSay'] != ""){  $killSay = $_POST['killSay'];  $killsay = true;}if (isset($_POST['deathSay']) && $_POST['deathSay'] != ""){  $deathSay = $_POST['deathSay'];  $deathsay = true;}//target definesfor($i=1;$i<7;$i++){  if (isset($_POST['Target'.$i])){    $Target[$i] = $_POST['Target'.$i];    $target[$i] = true;   }}//spell definesfor($i=1;$i<7;$i++){  if (isset($_POST['SpellId'.$i]) && $_POST['SpellId'.$i] != ""){    $Spell[$i] = $_POST['SpellId'.$i];    if($_POST['PhaseSpellId'.$i] != "" &&     is_numeric($_POST['PhaseSpellId'.$i])){      if($_POST['PhaseSpellId'.$i] >= $pocetFazi)        $Spell[$i][1] = $pocetFazi;      else        $Spell[$i][1] = $_POST['PhaseSpellId'.$i];    }else $Spell[$i][1] = 0;    $generated .= "    #define SPELL_".$i."          ".$Spell[$i];    $spell[$i] = true;  }}if ($aggrosay){    $generated .= '    #define SAY_AGGRO        "'.$aggroSay.'"';}if ($killsay){    $generated .= '#define SAY_KILL         "'.$killSay.'"';}if ($deathsay){    $generated .= '#define SAY_DEATH        "'.$deathSay.'"';}//say after cast spellfor($i=1;$i<7;$i++){  if ($sps[$i]){      $generated .= '#define SAY_SPS'.$i.'         "'.$SPS[$i].'"';  }}$generated .= "struct TRINITY_DLL_DECL ".$scrName."AI : public ScriptedAI{    ".$scrName."AI(Creature* pCreature) : ScriptedAI(pCreature)    {        pInstance = pCreature->GetInstanceData();    }        ScriptedInstance* pInstance;";if($faze && $typZmeny == "timer"){    $generated .= "    uint32 timerZmeny;";}if($faze){    $generated .= "    uint32 Faze;";    }//timer declare uint32for($i=1;$i<7;$i++){  if (isset($_POST['Timer'.$i]) && $_POST['Timer'.$i] != ""){    $Timer[$i] = $_POST['Timer'.$i];    $generated .= "    uint32 Timer".$i.";";      $timer[$i] = true;    }}//summTimer declare uint32for($i=1;$i<7;$i++){  if($summTimer){    if($Event[$i]){     $generated .= "    uint32 summTimer".$i.";";    }  }}$generated .= "    void Reset()    {";    //timer reset modify    for($i=1;$i<7;$i++){      if($timer[$i]){        $generated .= "      Timer".$i." = ".$Timer[$i].";";      }    }    //summTimer reset modify    for($i=1;$i<4;$i++){      if($summTimer){        if($Event[$i]){         $generated .= "      summTimer".$i." = ".$Event[$i][1].";";        }      }    }if($faze && $typZmeny == "timer"){    $generated .= "      timerZmeny = ".$zmenaFaze.";";}if($faze){    $generated .= "      Faze = 1;";}$generated .= "    } ";if($summon){$generated .= "    void RespawnAdd(uint32 addId){       Unit* victim = SelectUnit(SELECT_TARGET_RANDOM, 0);      if (victim){        Position pos;        m_creature->GetPosition(&pos);";//add respawn contentfor($i=1;$i<4;$i++){  if($Event[$i]){$generated .= "        if(addId == ".$i."){          m_creature->GetRandomNearPosition(pos, float(urand(5,80)));          m_creature->SummonCreature(SUMM_NPC".$i.", pos, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000);        }";  }}$generated .= "      }    } ";}$generated .= "    void EnterCombat(Unit* who)    {";if ($aggrosay)  $generated .= "      m_creature->MonsterSay(SAY_AGGRO, LANG_UNIVERSAL, 0);";$generated .= "    } "; $generated .= "    void UpdateAI(const uint32 diff)    {      if (!UpdateVictim())             return;    ";if ($faze && $typZmeny == "hp"){$generated .= "      if(m_creature->GetHealth() == m_creature->GetMaxHealth() * ".$zmenaFaze." / 100 * ((POCET_FAZI+1) - Faze)){         if(Faze != POCET_FAZI){          Faze += 1;         }else Faze = 1;      }";} else if($faze && $typZmeny == "timer"){$generated .= "      if(timerZmeny < diff){         if(Faze != POCET_FAZI){          Faze += 1;         }else Faze = 1;      }else timerZmeny -= diff";}//event callfor($i=1;$i<4;$i++){  if($summTimer){    if($Event[$i]){      $generated .= "        if(summTimer".$i." < diff){          RespawnAdd(".$i.");          summTimer".$i." = ".$Event[$i][1].";        }else summTimer".$i." -= diff;";    }  }else if($summHpProc){    if($Event[$i]){            $generated .= "        if(".$getTarget[$Event[$i][2]]."->GetHealth() <= ".$getTarget[$Event[$i][2]]."->GetMaxHealth() / 100 * ".$Event[$i][1]."){          RespawnAdd(".$i.");        }";    }  }}//timer modify spell casts etc.for($i=1;$i<7;$i++){  if ($spell[$i] && $timer[$i]){    $fazeIf = ($faze  && $Spell[$i][1] != 0) ? "if(Faze == ".$Spell[$i][1].")" : "";    $say[$i] = $sps[$i] ? "m_creature->MonsterSay(SAY_SPS".$i.", LANG_UNIVERSAL, 0);" : "";    $generated .= "          ".$fazeIf."                if(Timer".$i." <= diff){          ".$say[$i]."          DoCast(".$getTarget[$Target[$i]].",SPELL_".$i.");          Timer".$i." = ".$Timer[$i].";        }else Timer".$i." -= diff;";  }}$generated .= "      DoMeleeAttackIfReady();    } ";$generated .= "    void KilledUnit(Unit *victim)    {      if (victim == m_creature)            return;";if($killsay)$generated .= "       m_creature->MonsterSay(SAY_KILL, LANG_UNIVERSAL, 0);";$generated .= "    }";$generated .= "    void JustDied(Unit* killer)    {";if ($deathsay)    $generated .= "      m_creature->MonsterSay(SAY_DEATH, LANG_UNIVERSAL, 0);";$generated .= "      }};";$generated .= 'CreatureAI* GetAI_'.$scrName.'(Creature* pCreature){    return new '.$scrName.'AI (pCreature);}void AddSC_'.$scrName.'(){    Script* newscript;    newscript = new Script;    newscript->Name = "'.$scrName.'";    newscript->GetAI = &GetAI_'.$scrName.';    newscript->RegisterSelf();}/*-- SQLUPDATE creature_template SET ScriptName="'.$scrName.'" WHERE entry='.$npcEntry.';*/';}?><textarea style ="width: 100%; height:90%;"><?php echo $generated; ?></textarea>