change_skin.php 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468
  1. <?php
  2. require_once($_SERVER['DOCUMENT_ROOT'] . "/modules/core/header.php");
  3. if(empty($_GET['test'])) die();
  4. if(!isset($link))
  5. {
  6. $link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
  7. if($link === false)
  8. {
  9. die("ERROR: Could not connect.");
  10. }
  11. }
  12. $sqljaa = $_GET['test'];
  13. $sqljaa = mysqli_escape_string($link, $sqljaa);
  14. $user_check_query = "SELECT `char_name`, `Model`, `Faction` FROM characters WHERE `char_name` = '$sqljaa' AND `master` = '$playersqlid' LIMIT 1";
  15. $result = mysqli_query($link, $user_check_query);
  16. $rowcount = $result->num_rows;
  17. if($rowcount == 0)
  18. {
  19. mysqli_free_result($result);
  20. //echo '<script>window.location.href = "./panel/characters";</script>';
  21. ?>
  22. <router-outlet _ngcontent-tnh-c136="" class="router-outlet"></router-outlet>
  23. <app-character _nghost-tnh-c145="">
  24. <div _ngcontent-tnh-c169="" class="content">
  25. <app-info-bar _ngcontent-tnh-c169="" type="error" class="cs-1" _nghost-tnh-c215="">
  26. <div _ngcontent-tnh-c215="" class="error infobar">
  27. <div _ngcontent-tnh-c215="" class="icon"><i _ngcontent-tnh-c215="" class="fa fa-exclamation-triangle fa-fw"></i></div>
  28. <div _ngcontent-tnh-c215="" class="message">You don't have a character named <?php echo $sqljaa; ?></div>
  29. </div>
  30. </app-info-bar>
  31. </div>
  32. <!---->
  33. <!---->
  34. <!---->
  35. </app-character>
  36. <!---->
  37. <?php
  38. }
  39. else
  40. {
  41. $result2 = mysqli_fetch_array($result, MYSQLI_ASSOC);
  42. $char_name = $result2['char_name'];
  43. $Model = $result2['Model'];
  44. $Faction = $result2['Faction'];
  45. mysqli_free_result($result);
  46. if(!empty($_GET['update_skin']))
  47. {
  48. $Modeli = $_GET['update_skin'];
  49. for($x = 0; $x < sizeof($serverSkins); ++$x)
  50. {
  51. if($serverSkins[$x]["name"] == $Modeli)
  52. {
  53. $Model = $serverSkins[$x]["id"];
  54. break;
  55. }
  56. }
  57. $user_check_query = "UPDATE characters SET Model = '$Model' WHERE char_name = '$sqljaa'";
  58. $result = mysqli_query($link, $user_check_query);
  59. updateCharacters($link, $playersqlid);
  60. }
  61. for($i = 0; $i < sizeof($serverSkins); ++$i)
  62. {
  63. if($serverSkins[$i]["id"] == $Model)
  64. {
  65. $skinipau = $serverSkins[$i]["name"];
  66. break;
  67. }
  68. }
  69. ?>
  70. <router-outlet _ngcontent-tnh-c136="" class="router-outlet"></router-outlet>
  71. <app-character _nghost-tnh-c145="">
  72. <section _ngcontent-kjw-c163="" class="content-header">
  73. <h3 _ngcontent-kjw-c163="">Skin Selection - <?php echo returnName($char_name); ?></h3>
  74. </section>
  75. <div _ngcontent-tnh-c145="" class="content">
  76. <div _ngcontent-tnh-c163="" class="cshalf preview">
  77. <div _ngcontent-tnh-c163="" class="header"><span _ngcontent-tnh-c163="" id="skin_title" class="title">Skin #<?php echo $Model; ?> - <?php echo $skinipau; ?></span><span _ngcontent-tnh-c163="" class="credit">made by R*</span>
  78. <div id="save_skin_id" style="display: none;">
  79. <app-button _ngcontent-tnh-c163="" caption="Use this skin" class="blue thin margin-top-10" _nghost-tnh-c216="" onclick="saveThisSkin2('<?php echo $char_name; ?>')">
  80. <div _ngcontent-tnh-c216="" class="btn-wrapper">
  81. <div _ngcontent-tnh-c216="" class="button">
  82. <!---->
  83. <div _ngcontent-tnh-c216="" class="caption">Use this skin</div>
  84. <!---->
  85. </div>
  86. <!---->
  87. </div>
  88. </app-button>
  89. </div>
  90. <!---->
  91. </div>
  92. <iframe _ngcontent-tnh-c163="" name="<?php echo $skins[ $Model ]; ?>" class="scene" id="skin_src" src="/assets/skins_small/<?php echo $skinipau; ?>-240-400.png" scrolling="no"></iframe>
  93. <!--<div _ngcontent-tnh-c163="" class="properties"><span _ngcontent-tnh-c163="">Male <i class="fa-fw fa fa-mars"></i><br></span><span _ngcontent-tnh-c163="">Hispanic <i class="fa-fw fa fa-globe-americas"></i><br></span><span _ngcontent-tnh-c163="">Athletic <i class="fa-fw fa fa-child"></i><br></span><span _ngcontent-tnh-c163="">Gang member <i class="fa-fw fa fa-angry"></i><br></span>
  94. </div>-->
  95. <!---->
  96. </div>
  97. <section _ngcontent-tnh-c163="" class="card cshalf grid grid-gap-10">
  98. <div _ngcontent-tnh-c163="" class="cs-1 card-title"><strong _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" class="fa color-grey fa-filter"></i> Filter</strong><span _ngcontent-tnh-c163="" class="fl-ri color-grey cursor-pointer" onclick="resetFilter()">Reset Filter</span></div>
  99. <div _ngcontent-tnh-c163="" class="cshalf">
  100. <div _ngcontent-tnh-c163="">
  101. <ul _ngcontent-tnh-c163="" class="no-list-style margin-bottom-10">
  102. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinGender(1)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="gender1" class="color-grey far fa-fw fa-square"></i></span>
  103. <!---->
  104. <!---->Male </li>
  105. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinGender(2)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="gender2" class="color-grey far fa-fw fa-square"></i></span>
  106. <!---->
  107. <!---->Female </li>
  108. <!---->
  109. </ul>
  110. <!---->
  111. </div>
  112. <div _ngcontent-tnh-c163="">
  113. <ul _ngcontent-tnh-c163="" class="no-list-style margin-bottom-10">
  114. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinRace(1)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="race1" class="color-grey far fa-fw fa-square"></i></span>
  115. <!---->
  116. <!---->Caucasian </li>
  117. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinRace(2)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="race2" class="color-grey far fa-fw fa-square"></i></span>
  118. <!---->
  119. <!---->African American </li>
  120. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinRace(3)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="race3" class="color-grey far fa-fw fa-square"></i></span>
  121. <!---->
  122. <!---->Hispanic </li>
  123. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinRace(4)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="race4" class="color-grey far fa-fw fa-square"></i></span>
  124. <!---->
  125. <!---->Asian </li>
  126. <!---->
  127. </ul>
  128. <!---->
  129. </div>
  130. <div _ngcontent-tnh-c163="">
  131. <ul _ngcontent-tnh-c163="" class="no-list-style margin-bottom-10">
  132. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinWeight(1)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="weight1" class="color-grey far fa-fw fa-square"></i></span>
  133. <!---->
  134. <!---->Athletic </li>
  135. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinWeight(2)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="weight2" class="color-grey far fa-fw fa-square"></i></span>
  136. <!---->
  137. <!---->Overweight </li>
  138. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinWeight(3)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="weight3" class="color-grey far fa-fw fa-square"></i></span>
  139. <!---->
  140. <!---->Muscular </li>
  141. <!---->
  142. </ul>
  143. <!---->
  144. </div>
  145. <div _ngcontent-tnh-c163="">
  146. <!---->
  147. </div>
  148. <!---->
  149. </div>
  150. <div _ngcontent-tnh-c163="" class="cshalf">
  151. <div _ngcontent-tnh-c163="">
  152. <!---->
  153. </div>
  154. <div _ngcontent-tnh-c163="">
  155. <!---->
  156. </div>
  157. <div _ngcontent-tnh-c163="">
  158. <!---->
  159. </div>
  160. <div _ngcontent-tnh-c163="">
  161. <ul _ngcontent-tnh-c163="" class="no-list-style margin-bottom-10">
  162. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinCategory(1)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="category1" class="color-grey far fa-fw fa-square"></i></span>
  163. <!---->
  164. <!---->Civilian </li>
  165. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinCategory(2)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="category2" class="color-grey far fa-fw fa-square"></i></span>
  166. <!---->
  167. <!---->Gang member </li>
  168. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinCategory(3)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="category3" class="color-grey far fa-fw fa-square"></i></span>
  169. <!---->
  170. <!---->Country &amp; Old people </li>
  171. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinCategory(4)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="category4" class="color-grey far fa-fw fa-square"></i></span>
  172. <!---->
  173. <!---->Prostitutes </li>
  174. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinCategory(5)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="category5" class="color-grey far fa-fw fa-square"></i></span>
  175. <!---->
  176. <!---->Sportsmen </li>
  177. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinCategory(6)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="category6" class="color-grey far fa-fw fa-square"></i></span>
  178. <!---->
  179. <!---->Specific Professions </li>
  180. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinCategory(7)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="category7" class="color-grey far fa-fw fa-square"></i></span>
  181. <!---->
  182. <!---->Beach Visitors </li>
  183. <li _ngcontent-tnh-c163="" class="skinFilterChoice" onClick="ChangeSkinCategory(8)"><span _ngcontent-tnh-c163=""><i _ngcontent-tnh-c163="" id="category8" class="color-grey far fa-fw fa-square"></i></span>
  184. <!---->
  185. <!---->Homeless </li>
  186. <!---->
  187. </ul>
  188. <!---->
  189. </div>
  190. <!---->
  191. </div>
  192. </section>
  193. <div _ngcontent-tnh-c163="" class="section-category">
  194. <h4 _ngcontent-tnh-c163="" id="skinHeader">Found 0 skins matching your criteria</h4>
  195. </div>
  196. <section _ngcontent-tnh-c163="" class="skins cs-1 card" id="skins_content">
  197. <!--
  198. <app-button _ngcontent-tnh-c163="" class="cs-1 blue text-center" _nghost-tnh-c216="" onclick="showMoreSkins(50)">
  199. <div _ngcontent-tnh-c216="" class="btn-wrapper">
  200. <div _ngcontent-tnh-c216="" class="button">
  201. <div _ngcontent-tnh-c216="" class="caption">Show 50 more skins</div>
  202. </div>
  203. </div>
  204. </app-button>
  205. -->
  206. </section>
  207. <!---->
  208. </div>
  209. <!---->
  210. </app-character>
  211. <!---->
  212. <script>
  213. //refreshSkins();
  214. var data = "";
  215. var showPage = 1;
  216. var f_skin_race = -1;
  217. var f_skin_gender = -1;
  218. var f_skin_weight = -1;
  219. var f_skin_category = -1;
  220. var faction = <?php echo $Faction; ?>;
  221. var skins_found = 0;
  222. function ChangeSkinRace(id)
  223. {
  224. if(f_skin_race != -1) document.getElementById('race' + f_skin_race).className = "color-grey far fa-fw fa-square";
  225. if(f_skin_race == id)
  226. {
  227. f_skin_race = -1;
  228. }
  229. else
  230. {
  231. f_skin_race = id;
  232. document.getElementById('race' + id).className = "color-blue fa fa-fw fa-check-square";
  233. }
  234. refreshSkins2(50);
  235. }
  236. function ChangeSkinGender(id)
  237. {
  238. if(f_skin_gender != -1) document.getElementById('gender' + f_skin_gender).className = "color-grey far fa-fw fa-square";
  239. if(f_skin_gender == id)
  240. {
  241. f_skin_gender = -1;
  242. }
  243. else
  244. {
  245. f_skin_gender = id;
  246. document.getElementById('gender' + id).className = "color-blue fa fa-fw fa-check-square";
  247. }
  248. refreshSkins2(50);
  249. }
  250. function ChangeSkinWeight(id)
  251. {
  252. if(f_skin_weight != -1) document.getElementById('weight' + f_skin_weight).className = "color-grey far fa-fw fa-square";
  253. if(f_skin_weight == id)
  254. {
  255. f_skin_weight = -1;
  256. }
  257. else
  258. {
  259. f_skin_weight = id;
  260. document.getElementById('weight' + id).className = "color-blue fa fa-fw fa-check-square";
  261. }
  262. refreshSkins2(50);
  263. }
  264. function ChangeSkinCategory(id)
  265. {
  266. if(f_skin_category != -1) document.getElementById('category' + f_skin_category).className = "color-grey far fa-fw fa-square";
  267. if(f_skin_category == id)
  268. {
  269. f_skin_category = -1;
  270. }
  271. else
  272. {
  273. f_skin_category = id;
  274. document.getElementById('category' + id).className = "color-blue fa fa-fw fa-check-square";
  275. }
  276. refreshSkins2(50);
  277. }
  278. function resetFilter()
  279. {
  280. if(f_skin_race != -1) document.getElementById('race' + f_skin_race).className = "color-grey far fa-fw fa-square";
  281. if(f_skin_gender != -1) document.getElementById('gender' + f_skin_gender).className = "color-grey far fa-fw fa-square";
  282. if(f_skin_weight != -1) document.getElementById('weight' + f_skin_weight).className = "color-grey far fa-fw fa-square";
  283. if(f_skin_category != -1) document.getElementById('category' + f_skin_category).className = "color-grey far fa-fw fa-square";
  284. f_skin_race = -1;
  285. f_skin_gender = -1;
  286. f_skin_weight = -1;
  287. f_skin_category = -1;
  288. refreshSkins2(50);
  289. }
  290. var idx = 0;
  291. function refreshSkins2()
  292. {
  293. $.post('./api/skinload.php', {race: f_skin_race, gender: f_skin_gender, weight: f_skin_weight, category: f_skin_category, faction_id: faction}).done(function(response)
  294. {
  295. data = JSON.parse(response);
  296. var length = data.length;
  297. //console.log(data.length);
  298. var html = ""; var count = 0;
  299. document.getElementById('skinHeader').innerHTML = 'Found ' + length + ' skins matching your criteria';
  300. idx = 6;
  301. for (i = 0; i < length; i++)
  302. {
  303. if(count == 6) break;
  304. var link = "";
  305. var skinid = data[i]['id'];
  306. link = "/assets/skins_small/" + data[i]['name'] + '-240-400.png';
  307. html += '<div _ngcontent-tnh-c163="" class="skin" style="background-image: url(&quot;' + link + '&quot;);" onclick="selectSkin2(' + data[i]['id'] + ', ' + "'" + data[i]['name'] + "'" + ')"></div>';
  308. count ++;
  309. }
  310. if(idx < length)
  311. {
  312. var skins_left = length - idx;
  313. if(skins_left >= 50) skins_left = 50;
  314. html += '<app-button _ngcontent-tnh-c163="" class="cs-1 blue text-center" _nghost-tnh-c216="" onclick="showMoreSkins(' + skins_left + ')"> <div _ngcontent-tnh-c216="" class="btn-wrapper"> <div _ngcontent-tnh-c216="" class="button"> <div _ngcontent-tnh-c216="" class="caption">Show ' + skins_left + ' more skins</div> </div> </div> </app-button>';
  315. }
  316. document.getElementById('skins_content').innerHTML = html;
  317. });
  318. }
  319. function showMoreSkins(moreskins)
  320. {
  321. var length = data.length;
  322. if(idx != length)
  323. {
  324. idx += moreskins;
  325. var html = ""; var count = 0;
  326. for (i = 0; i < length; i++)
  327. {
  328. if(count == idx) break;
  329. var link = "";
  330. var skinid = data[i]['id'];
  331. link = "/assets/skins_small/" + data[i]['name'] + '-240-400.png';
  332. html += '<div _ngcontent-tnh-c163="" class="skin" style="background-image: url(&quot;' + link + '&quot;);" onclick="selectSkin2(' + data[i]['id'] + ', ' + "'" + data[i]['name'] + "'" + ')"></div>';
  333. count ++;
  334. }
  335. if(idx < length)
  336. {
  337. var skins_left = length - idx;
  338. if(skins_left >= 50) skins_left = 50;
  339. html += '<app-button _ngcontent-tnh-c163="" class="cs-1 blue text-center" _nghost-tnh-c216="" onclick="showMoreSkins(' + skins_left + ')"> <div _ngcontent-tnh-c216="" class="btn-wrapper"> <div _ngcontent-tnh-c216="" class="button"> <div _ngcontent-tnh-c216="" class="caption">Show ' + skins_left + ' more skins</div> </div> </div> </app-button>';
  340. }
  341. document.getElementById('skins_content').innerHTML = html;
  342. }
  343. }
  344. refreshSkins2(6);
  345. function selectSkin2(skinid, skinname)
  346. {
  347. var test = "/assets/skins_small/" + skinname + "-240-400.png", src_idx = document.getElementById("skin_src");
  348. src_idx.src = test;
  349. src_idx.name = skinname;
  350. document.getElementById("skin_title").innerHTML = "Skin #" + skinid + " - " + skinname;
  351. document.getElementById("save_skin_id").style.display = "block";
  352. $('html,body').scrollTop(0);
  353. }
  354. function saveThisSkin2(playerid)
  355. {
  356. var skinid = document.getElementById("skin_src").name;
  357. document.location.href = './panel/change_skin/' + playerid + '/' + skinid;
  358. }
  359. /*
  360. color-grey far fa-fw fa-square
  361. */
  362. </script>
  363. <?php
  364. }
  365. ?>
  366. <?php if(isset($link)) { mysqli_close($link); } ?>