/nacridan/conquest/actiontest/cqgiveItemToPNJ.inc.php

https://gitlab.com/nacridan/Nacridan · PHP · 150 lines · 137 code · 13 blank · 0 comment · 6 complexity · 9d87bdaad3c2fabd61c04b44ebf26195 MD5 · raw file

  1. <?php
  2. class CQGiveItemToPNJ extends HTMLObject
  3. {
  4. public $db;
  5. public $curplayer;
  6. public $nacridan;
  7. public function CQGiveItemToPNJ($nacridan, $db)
  8. {
  9. $this->db = $db;
  10. $this->nacridan = $nacridan;
  11. $this->curplayer = $this->nacridan->loadCurSessPlayer($db);
  12. }
  13. public function toString()
  14. {
  15. $db = $this->db;
  16. $curplayer = $this->curplayer;
  17. $xp = $curplayer->get("x");
  18. $yp = $curplayer->get("y");
  19. $id = $curplayer->get("id");
  20. if ($curplayer->get("authlevel") > 2) {
  21. if (! isset($_POST["OBJECT_ID"])) {
  22. $str = "<form name='form' method='POST' target='_self'>";
  23. $str .= "<table class='maintable'><tr><td class='mainbgtitle' width='650px'>";
  24. $item = array();
  25. $str .= "Créer ";
  26. $str .= "<select class='selector cqattackselectorsize' name='OBJECT_ID'>";
  27. $str .= "<option value='0' selected='selected'>" . localize("-- Choisissez un objet --") . "</option>";
  28. $dbe = new DBCollection("SELECT * FROM BasicEquipment order by name", $this->db, 0, 0);
  29. while (! $dbe->eof()) {
  30. $item[] = array(
  31. localize($dbe->get("name")) . " (" . $dbe->get("id") . ")" => $dbe->get("id")
  32. );
  33. $dbe->next();
  34. }
  35. foreach ($item as $arr) {
  36. foreach ($arr as $key => $value)
  37. $str .= "<option value='" . $value . "'>" . $key . "</option>";
  38. }
  39. $str .= "</select>";
  40. $str .= " de niveau ";
  41. $str .= "<select class='selector' name='NIVEAU'>";
  42. $str .= "<option value='0' selected='selected'>" . localize("-- Niveau --") . "</option>";
  43. for ($i = 1; $i < 16; $i ++)
  44. $str .= "<option value='" . $i . "'>" . $i . "</option>";
  45. $str .= "</select><label for='maudit' >&nbsp;&nbsp;&nbsp;Objet maudit?</label><input type='checkbox' name='maudit' value='1' /></td></tr>";
  46. $str .= "<tr><td class='mainbgtitle'><label for='owner_id' >Identifiant du futur propriétaire</label><input type='textbox' name='owner_id' value='" .
  47. $curplayer->get("id") . "' />";
  48. $str .= "&nbsp;&nbsp;&nbsp;<label for='new_name' >Nom de l'objet:</label><input type='textbox' name='new_name' value='' /></td></tr>\n";
  49. $str .= "<tr><td class='mainbgtitle'>Enchantement mineur: ";
  50. $str .= "<select id='ID_BASIC_ENCHANT_MINEUR' class='selector' name='ID_BASIC_ENCHANT_MINEUR'>";
  51. $dbbt = new DBCollection("SELECT id,name,name2 FROM BasicTemplate", $db, 0, 0);
  52. $str .= "<option value='-1'>Pas d'enchantement</option>";
  53. while (! $dbbt->eof()) {
  54. $str .= "<option value='" . $dbbt->get("id") . "'>" . $dbbt->get("name") . "</option>";
  55. $dbbt->next();
  56. }
  57. $str .= "</select>&nbsp;&nbsp;Niveau:";
  58. $str .= "<select id='ID_BASIC_ENCHANT_MINEUR_LEVEL' class='selector' name='ID_BASIC_ENCHANT_MINEUR_LEVEL'>";
  59. for ($i = 1; $i <= 15; $i ++) {
  60. $str .= "<option value='" . $i . "'>" . $i . "</option>";
  61. }
  62. $str .= "</select>";
  63. $str .= "<BR/>Enchantement majeur: ";
  64. $str .= "<select id='ID_BASIC_ENCHANT_MAJEUR' class='selector' name='ID_BASIC_ENCHANT_MAJEUR'>";
  65. $str .= "<option value='-1'>Pas d'enchantement</option>";
  66. $dbbt->first();
  67. while (! $dbbt->eof()) {
  68. $str .= "<option value='" . $dbbt->get("id") . "'>" . $dbbt->get("name2") . "</option>";
  69. $dbbt->next();
  70. }
  71. $str .= "</select>&nbsp;&nbsp;Niveau:";
  72. $str .= "<select id='ID_BASIC_ENCHANT_MAJEUR_LEVEL' class='selector' name='ID_BASIC_ENCHANT_MAJEUR_LEVEL'>";
  73. for ($i = 1; $i <= 15; $i ++) {
  74. $str .= "<option value='" . $i . "'>" . $i . "</option>";
  75. }
  76. $str .= "</select>";
  77. $str .= "</td></tr>";
  78. $str .= "<tr><td class='mainbgtitle'></td></tr>\n";
  79. $str .= "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input id='submitbt' type='submit' name='submitbt' value='Action' />";
  80. $str .= "<input name='idform' type='hidden' value='" . getCurrentPageId() . "' />\n";
  81. $str .= "</td></tr></table>";
  82. $str .= "</form>";
  83. } else {
  84. $equip = new Equipment();
  85. $dbc = new DBCollection("SELECT * FROM BasicEquipment WHERE id=" . $_POST["OBJECT_ID"], $this->db);
  86. $equip->set("level", $_POST["NIVEAU"]);
  87. $equip->set("id_Shop", 0);
  88. $equip->set("id_Player", $_POST["owner_id"]);
  89. $equip->set("id_BasicEquipment", $dbc->get("id"));
  90. $equip->set("date", gmdate("Y-m-d H:i:s"));
  91. $equip->set("collected", gmdate("Y-m-d H:i:s"));
  92. $equip->set("id_EquipmentType", $dbc->get("id_EquipmentType"));
  93. $equip->set("name", isset($_POST["new_name"]) && $_POST["new_name"] != "" ? quote_smart($_POST["new_name"]) : $dbc->get("name"));
  94. $coef = 1;
  95. if ($equip->get("id_BasicEquipment") >= 200 && $equip->get("id_BasicEquipment") <= 206 && $equip->get("id_BasicEquipment") != 205)
  96. $coef = $equip->get("level");
  97. $equip->set("durability", $dbc->get("durability") * $coef);
  98. $equip->set("maudit", isset($_POST["maudit"]) ? 1 : 0);
  99. $equip->addDB($db);
  100. $equip->reload($db);
  101. $dbt = new DBCollection("SELECT id,name FROM BasicTemplate WHERE id=" . quote_smart($_POST["ID_BASIC_ENCHANT_MINEUR"]), $db, 0, 0);
  102. if ($dbt->count() > 0) {
  103. $enchant = new Template();
  104. $enchant->set("id_Equipment", $equip->get("id"));
  105. $enchant->set("id_BasicTemplate", $dbt->get("id"));
  106. $enchant->set("level", $_POST["ID_BASIC_ENCHANT_MINEUR_LEVEL"]);
  107. $enchant->set("pos", 1);
  108. $enchant->addDB($db);
  109. $equip->set("extraname", $dbt->get("name") . " (" . $_POST["ID_BASIC_ENCHANT_MINEUR_LEVEL"] . ")");
  110. $dbt = new DBCollection("SELECT id,name2 FROM BasicTemplate WHERE id=" . quote_smart($_POST["ID_BASIC_ENCHANT_MAJEUR"]), $db, 0, 0);
  111. if ($dbt->count() > 0) {
  112. $enchant = new Template();
  113. $enchant->set("id_Equipment", $equip->get("id"));
  114. $enchant->set("id_BasicTemplate", $dbt->get("id"));
  115. $enchant->set("level", $_POST["ID_BASIC_ENCHANT_MAJEUR_LEVEL"]);
  116. $enchant->set("pos", 2);
  117. $enchant->addDB($db);
  118. $equip->set("extraname", $equip->get("extraname") . " " . $dbt->get("name2") . " (" . $_POST["ID_BASIC_ENCHANT_MAJEUR_LEVEL"] . ")");
  119. }
  120. $equip->updateDB($db);
  121. }
  122. $str = "<table class='maintable'><tr><td class='mainbgtitle' width='550px'>";
  123. $str .= localize("L'objet est dans l'inventaire du perso choisi");
  124. $str .= "</td></tr></table>";
  125. }
  126. return $str;
  127. }
  128. }
  129. }
  130. ?>