source: minimanager/scripts/get_lib.php@ 374

Last change on this file since 374 was 374, checked in by george, 17 years ago
  • Aktualizováno: Minimanager 0.12 rev. 99. Opraveno zobrazování honoru, přidána captcha p?i registraci nového účtu a mini fórum.
  • Přidáno: Český překlad pro Minimanager 0.12.
  • Smazáno: Staré fotky fyzického serveru přesunuty do fotogalerie.
  • Přidáno: Nějaké návody na eventy od bbtrashe.
File size: 30.1 KB
Line 
1<?php
2/*
3 * Project Name: MiniManager for Mangos Server
4 * Date: 17.10.2006 inital version (0.0.1a)
5 * Author: Q.SA
6 * Copyright: Q.SA
7 * Email: *****
8 * License: GNU General Public License v2(GPL)
9 */
10
11//##########################################################################################
12
13require_once("item_display_info.php");
14require_once("char_aura.php");
15
16//get name from realmlist.name
17function get_realm_name($realm_id){
18 global $lang_global, $realm_db;
19
20 $sql_0 = new SQL;
21 $sql_0->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']);
22
23 $result = $sql_0->query("SELECT name FROM `realmlist` WHERE id = '$realm_id'");
24 $realm_name = $sql_0->result($result, 0);
25
26 $sql_0->close();
27 return $realm_name;
28}
29
30//get displayid of item
31function get_displayid($itemid)
32{
33 global $lang_global, $realm_id, $mangos_db;
34 $sql_0 = new SQL;
35 $sql_0->connect($mangos_db[$realm_id]['addr'], $mangos_db[$realm_id]['user'], $mangos_db[$realm_id]['pass'], $mangos_db[$realm_id]['name']);
36 $result = $sql_0->query("SELECT `displayid` FROM `item_template` WHERE `entry` = $itemid");
37 if ($result)
38 $displayid = $sql_0->result($result, 0);
39 else
40 $diaplayid = 0;
41 $sql_0->close();
42 return $displayid;
43}
44
45//##########################################################################################
46//get DBC Language from config
47function get_lang_id() {
48 # DBC Language Settings
49 # 0 = English
50 # 1 = Korean
51 # 2 = French
52 # 3 = German
53 # 4 = Chinese
54 # 5 = Taiwanese
55 # 6 = Spanish
56 # 7 = Russian
57 # 8 = Unknown
58 # 9 = Unknown
59 # 10 = Unknown
60 # 11 = Unknown
61 # 12 = Unknown
62 # 13 = Unknown
63 # 14 = Unknown
64 # 15 = Unknown
65 global $language;
66 if (isset($_COOKIE["lang"])) $language=$_COOKIE["lang"];
67
68 switch ($language) {
69 case 'frBE':
70 case 'frFR':
71 return 2;
72 break;
73 case 'deDE':
74 return 3;
75 break;
76 case 'esAR':
77 return 6;
78 break;
79 case 'ruRU':
80 return 7;
81 break;
82 default:
83 return 0;
84 break;
85 }
86}
87
88//##########################################################################################
89//get item name from item_template.entry
90function get_item_name($item_id){
91 global $lang_global, $mangos_db, $realm_id;
92 if($item_id){
93 $sql_1 = new SQL;
94 $sql_1->connect($mangos_db[$realm_id]['addr'], $mangos_db[$realm_id]['user'], $mangos_db[$realm_id]['pass'], $mangos_db[$realm_id]['name']);
95
96 $deplang = get_lang_id();
97 $result = $sql_1->query("SELECT IFNULL(".($deplang<>0?"name_loc$deplang":"NULL").",`name`) as name FROM item_template LEFT JOIN locales_item ON item_template.entry = locales_item.entry WHERE item_template.entry = '$item_id'");
98 $item_name = ($sql_1->num_rows($result) == 1) ? $sql_1->result($result, 0,"name") : "ItemID: $item_id Not Found" ;
99
100 $sql_1->close();
101 return $item_name;
102 } else return NULL;
103}
104
105
106//##########################################################################################
107//generate item tooltip from item_template.entry
108function get_item_tooltip($item_id){
109 global $lang_global, $lang_item, $lang_id_tab, $mangos_db, $realm_id, $itemset_id, $language;
110 if($item_id){
111 $sql_1 = new SQL;
112 $sql_1->connect($mangos_db[$realm_id]['addr'], $mangos_db[$realm_id]['user'], $mangos_db[$realm_id]['pass'], $mangos_db[$realm_id]['name']);
113
114 $deplang = get_lang_id();
115 $result_1 = $sql_1->query("SELECT stat_type1,stat_value1,stat_type2,stat_value2,stat_type3,stat_value3,stat_type4,
116 stat_value4,stat_type5,stat_value5,stat_type6,stat_value6,stat_type7,stat_value7,stat_type8,
117 stat_value8,stat_type9,stat_value9,stat_type10,stat_value10,armor,holy_res,fire_res,nature_res,
118 frost_res,arcane_res,shadow_res,spellid_1,spellid_2,spellid_3,spellid_4,spellid_5,
119 IFNULL(".($deplang<>0?"name_loc$deplang":"NULL").",name),class,subclass,Quality,RequiredLevel,dmg_min1,dmg_max1,dmg_type1,dmg_min2,dmg_max2,dmg_type2,
120 dmg_min3,dmg_max3,dmg_type3,dmg_min4,dmg_max4,dmg_type4,dmg_min5,dmg_max5,dmg_type5,delay,bonding,
121 description,itemset,item_template.entry,InventoryType,ItemLevel,displayid,maxcount,spelltrigger_1,spelltrigger_2,
122 spelltrigger_3,spelltrigger_4,spelltrigger_5,ContainerSlots,spellcharges_1,spellcharges_2,spellcharges_3
123 spellcharges_4,spellcharges_5,AllowableClass,socketColor_1,socketColor_2,socketColor_3,RandomProperty,RandomSuffix
124 FROM item_template LEFT JOIN locales_item ON item_template.entry = locales_item.entry WHERE item_template.entry = '$item_id' LIMIT 1");
125 if ($item = $sql_1->fetch_row($result_1)) {
126 $tooltip = "";
127
128 $itemname = htmlspecialchars($item[32]);
129 switch ($item[35]) {
130 case 0: //Grey Poor
131 $tooltip .= "<font color='#b2c2b9' class='large'>$itemname</font><br />";
132 break;
133 case 1: //White Common
134 $tooltip .= "<font color='white' class='large'>$itemname</font><br />";
135 break;
136 case 2: //Green Uncommon
137 $tooltip .= "<font color='#1eff00' class='large'>$itemname</font><br />";
138 break;
139 case 3: //Blue Rare
140 $tooltip .= "<font color='#0070dd' class='large'>$itemname</font><br />";
141 break;
142 case 4: //Purple Epic
143 $tooltip .= "<font color='#a335ee' class='large'>$itemname</font><br />";
144 break;
145 case 5: //Orange Legendary
146 $tooltip .= "<font color='orange' class='large'>$itemname</font><br />";
147 break;
148 case 6: //Red Artifact
149 $tooltip .= "<font color='red' class='large'>$itemname</font><br />";
150 break;
151 default:
152 }
153
154 $tooltip .= "<font color='white'>";
155
156 switch ($item[53]) {
157 case 1: //Binds when Picked Up
158 $tooltip .= "{$lang_item['bop']}<br />";
159 break;
160 case 2: //Binds when Equipped
161 $tooltip .= "{$lang_item['boe']}<br />";
162 break;
163 case 3: //Binds when Used
164 $tooltip .= "{$lang_item['bou']}<br />";
165 break;
166 case 4: //Quest Item
167 $tooltip .= "{$lang_item['quest_item']}<br />";
168 break;
169 default:
170 }
171
172 if ($item[60]) $tooltip .= "{$lang_item['unique']}<br />";
173
174 $tooltip .= "<br />";
175 switch ($item[57]) {
176 case 1:
177 $tooltip .= "{$lang_item['head']} - ";
178 break;
179 case 2:
180 $tooltip .= "{$lang_item['neck']} - ";
181 break;
182 case 3:
183 $tooltip .= "{$lang_item['shoulder']} - ";
184 break;
185 case 4:
186 $tooltip .= "{$lang_item['shirt']} - ";
187 break;
188 case 5:
189 $tooltip .= "{$lang_item['chest']} - ";
190 break;
191 case 6:
192 $tooltip .= "{$lang_item['belt']} - ";
193 break;
194 case 7:
195 $tooltip .= "{$lang_item['legs']} - ";
196 break;
197 case 8:
198 $tooltip .= "{$lang_item['feet']} - ";
199 break;
200 case 9:
201 $tooltip .= "{$lang_item['wrist']} - ";
202 break;
203 case 10:
204 $tooltip .= "{$lang_item['gloves']} - ";
205 break;
206 case 11:
207 $tooltip .= "{$lang_item['finger']} - ";
208 break;
209 case 12:
210 $tooltip .= "{$lang_item['trinket']} - ";
211 break;
212 case 13:
213 $tooltip .= "{$lang_item['one_hand']} - ";
214 break;
215 case 14:
216 $tooltip .= "{$lang_item['off_hand']} - ";
217 break;
218 case 16:
219 $tooltip .= "{$lang_item['back']} - ";
220 break;
221 case 18:
222 $tooltip .= "{$lang_item['bag']}";
223 break;
224 case 19:
225 $tooltip .= "{$lang_item['tabard']} - ";
226 break;
227 case 20:
228 $tooltip .= "{$lang_item['robe']} - ";
229 break;
230 case 21:
231 $tooltip .= "{$lang_item['main_hand']} - ";
232 break;
233 case 23:
234 $tooltip .= "{$lang_item['tome']} - ";
235 break;
236 default:
237 }
238
239 switch ($item[33]) {
240 case 0: //Consumable
241 $tooltip .= "{$lang_item['consumable']}<br />";
242 break;
243
244 case 2: //Weapon
245 switch ($item[34]) {
246 case 0:
247 $tooltip .= "{$lang_item['axe_1h']}<br />";
248 break;
249 case 1:
250 $tooltip .= "{$lang_item['axe_2h']}<br />";
251 break;
252 case 2:
253 $tooltip .= "{$lang_item['bow']}<br />";
254 break;
255 case 3:
256 $tooltip .= "{$lang_item['rifle']}<br />";
257 break;
258 case 4:
259 $tooltip .= "{$lang_item['mace_1h']}<br />";
260 break;
261 case 5:
262 $tooltip .= "{$lang_item['mace_2h']}<br />";
263 break;
264 case 6:
265 $tooltip .= "{$lang_item['polearm']}<br />";
266 break;
267 case 7:
268 $tooltip .= "{$lang_item['sword_1h']}<br />";
269 break;
270 case 8:
271 $tooltip .= "{$lang_item['sword_2h']}<br />";
272 break;
273 case 10:
274 $tooltip .= "{$lang_item['staff']}<br />";
275 break;
276 case 11:
277 $tooltip .= "{$lang_item['exotic_1h']}<br />";
278 break;
279 case 12:
280 $tooltip .= "{$lang_item['exotic_2h']}<br />";
281 break;
282 case 13:
283 $tooltip .= "{$lang_item['fist_weapon']}<br />";
284 break;
285 case 14:
286 $tooltip .= "{$lang_item['misc_weapon']}<br />";
287 break;
288 case 15:
289 $tooltip .= "{$lang_item['dagger']}<br />";
290 break;
291 case 16:
292 $tooltip .= "{$lang_item['thrown']}<br />";
293 break;
294 case 17:
295 $tooltip .= "{$lang_item['spear']}<br />";
296 break;
297 case 18:
298 $tooltip .= "{$lang_item['crossbow']}<br />";
299 break;
300 case 19:
301 $tooltip .= "{$lang_item['wand']}<br />";
302 break;
303 case 20:
304 $tooltip .= "{$lang_item['fishing_pole']}<br />";
305 break;
306 default:
307 }
308 break;
309 case 4: //Armor
310 switch ($item[34]) {
311 case 0:
312 $tooltip .= "{$lang_item['misc']}<br />";
313 break;
314 case 1:
315 $tooltip .= "{$lang_item['cloth']}<br />";
316 break;
317 case 2:
318 $tooltip .= "{$lang_item['leather']}<br />";
319 break;
320 case 3:
321 $tooltip .= "{$lang_item['mail']}<br />";
322 break;
323 case 4:
324 $tooltip .= "{$lang_item['plate']}<br />";
325 break;
326 case 6:
327 $tooltip .= "{$lang_item['shield']}<br />";
328 break;
329 default:
330 }
331 break;
332 case 6: //Projectile
333 switch ($item[34]) {
334 case 2:
335 $tooltip .= "{$lang_item['arrows']}<br />";
336 break;
337 case 3:
338 $tooltip .= "{$lang_item['bullets']}<br />";
339 break;
340 default:
341 }
342 break;
343 case 7: //Trade Goods
344 switch ($item[34]) {
345 case 0:
346 $tooltip .= "{$lang_item['trade_goods']}<br />";
347 break;
348 case 1:
349 $tooltip .= "{$lang_item['parts']}<br />";
350 break;
351 case 2:
352 $tooltip .= "{$lang_item['explosives']}<br />";
353 break;
354 case 3:
355 $tooltip .= "{$lang_item['devices']}<br />";
356 break;
357 default:
358 }
359 break;
360 case 9: //Recipe
361 switch ($item[34]) {
362 case 0:
363 $tooltip .= "{$lang_item['book']}<br />";
364 break;
365 case 1:
366 $tooltip .= "{$lang_item['LW_pattern']}<br />";
367 break;
368 case 2:
369 $tooltip .= "{$lang_item['tailoring_pattern']}<br />";
370 break;
371 case 3:
372 $tooltip .= "{$lang_item['ENG_Schematic']}<br />";
373 break;
374 case 4:
375 $tooltip .= "{$lang_item['BS_plans']}<br />";
376 break;
377 case 5:
378 $tooltip .= "{$lang_item['cooking_recipe']}<br />";
379 break;
380 case 6:
381 $tooltip .= "{$lang_item['alchemy_recipe']}<br />";
382 break;
383 case 7:
384 $tooltip .= "{$lang_item['FA_manual']}<br />";
385 break;
386 case 8:
387 $tooltip .= "{$lang_item['ench_formula']}<br />";
388 break;
389 case 9:
390 $tooltip .= "{$lang_item['JC_formula']}<br />";
391 break;
392 default:
393 }
394 break;
395 case 11: //Quiver
396 switch ($item[34]) {
397 case 2:
398 $tooltip .= " {$lang_item['quiver']}<br />";
399 break;
400 case 3:
401 $tooltip .= " {$lang_item['ammo_pouch']}<br />";
402 break;
403 default:
404 }
405 break;
406
407 case 12: //Quest
408 if ($item[53] != 4) $tooltip .= "{$lang_item['quest_item']}<br />";
409 break;
410
411 case 13: //key
412 switch ($item[34]) {
413 case 0:
414 $tooltip .= "{$lang_item['key']}<br />";
415 break;
416 case 1:
417 $tooltip .= "{$lang_item['lockpick']}<br />";
418 break;
419 default:
420 }
421 break;
422 default:
423 }
424
425 if ($item[20]) $tooltip .= "$item[20] {$lang_item['armor']}<br />";
426
427 for($f=37;$f<=51;$f+=3){
428 $dmg_type = $item[$f+2];
429 $min_dmg_value = $item[$f];
430 $max_dmg_value = $item[$f+1];
431
432 if ($min_dmg_value && $max_dmg_value){
433 switch ($dmg_type) {
434 case 0: // Physical
435 $tooltip .= "$min_dmg_value - $max_dmg_value {$lang_item['damage']}<br />(".($item[52] ? round(((($min_dmg_value+$max_dmg_value)/2)/($item[52]/1000)),2): $min_dmg_value)." DPS)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$lang_item['speed']} : ".(($item[52])/1000)."<br />";
436 break;
437 case 1: // Holy
438 $tooltip .= "$min_dmg_value - $max_dmg_value {$lang_item['holy_dmg']}<br />";
439 break;
440 case 2: // Fire
441 $tooltip .= "$min_dmg_value - $max_dmg_value {$lang_item['fire_dmg']}<br />";
442 break;
443 case 3: // Nature
444 $tooltip .= "$min_dmg_value - $max_dmg_value {$lang_item['nature_dmg']}<br />";
445 break;
446 case 4: // Frost
447 $tooltip .= "$min_dmg_value - $max_dmg_value {$lang_item['frost_dmg']}<br />";
448 break;
449 case 5: // Shadow
450 $tooltip .= "$min_dmg_value - $max_dmg_value {$lang_item['shadow_dmg']}<br />";
451 break;
452 case 6: // Arcane
453 $tooltip .= "$min_dmg_value - $max_dmg_value {$lang_item['arcane_dmg']}<br />";
454 break;
455
456 default:
457 }
458 }
459 }
460
461 //basic status
462 for($s=0;$s<=18;$s+=2){
463 $stat_value = $item[$s+1];
464 if ($item[$s] && $stat_value){
465 switch ($item[$s]) {
466 case 1:
467 $tooltip .= "+$stat_value {$lang_item['health']}<br />";
468 break;
469 case 2:
470 $tooltip .= "+$stat_value {$lang_item['mana']}<br />";
471 break;
472 case 3:
473 $tooltip .= "+$stat_value {$lang_item['agility']}<br />";
474 break;
475 case 4:
476 $tooltip .= "+$stat_value {$lang_item['strength']}<br />";
477 break;
478 case 5:
479 $tooltip .= "+$stat_value {$lang_item['intellect']}<br />";
480 break;
481 case 6:
482 $tooltip .= "+$stat_value {$lang_item['spirit']}<br />";
483 break;
484 case 7:
485 $tooltip .= "+$stat_value {$lang_item['stamina']}<br />";
486 break;
487 default:
488 $flag_rating = 1;
489 }
490 }
491 }
492
493 if ($item[21]) $tooltip .= "$item[21] {$lang_item['res_holy']}<br />";
494 if ($item[25]) $tooltip .= "$item[25] {$lang_item['res_arcane']}<br />";
495 if ($item[22]) $tooltip .= "$item[22] {$lang_item['res_fire']}<br />";
496 if ($item[23]) $tooltip .= "$item[23] {$lang_item['res_nature']}<br />";
497 if ($item[24]) $tooltip .= "$item[24] {$lang_item['res_frost']}<br />";
498 if ($item[26]) $tooltip .= "$item[26] {$lang_item['res_shadow']}<br />";
499
500 //sockets
501 for($p=72;$p<=74;$p++){
502 if($item[$p]){
503 switch ($item[$p]) {
504 case 1:
505 $tooltip .= "<img src='img/socket_meta.gif' alt='' /><font color='gray'> {$lang_item['socket_meta']}</font><br />";
506 break;
507 case 2:
508 $tooltip .= "<img src='img/socket_red.gif' alt='' /><font color='red'> {$lang_item['socket_red']}</font><br />";
509 break;
510 case 4:
511 $tooltip .= "<img src='img/socket_yellow.gif' alt='' /><font color='yellow'> {$lang_item['socket_yellow']}</font><br />";
512 break;
513 case 8:
514 $tooltip .= "<img src='img/socket_blue.gif' alt='' /><font color='blue'> {$lang_item['socket_blue']}</font><br />";
515 break;
516 default:
517 }
518 }
519 }
520
521 //level requierment
522 if($item[36]) $tooltip .= "{$lang_item['lvl_req']} $item[36]<br />";
523
524 //allowable classes
525 if (($item[71])&&($item[71] != -1)&&($item[71] != 1503)){
526 $tooltip .= "{$lang_item['class']}:";
527 if ($item[71] & 1) $tooltip .= " {$lang_id_tab['warrior']} ";
528 if ($item[71] & 2) $tooltip .= " {$lang_id_tab['paladin']} ";
529 if ($item[71] & 4) $tooltip .= " {$lang_id_tab['hunter']} ";
530 if ($item[71] & 8) $tooltip .= " {$lang_id_tab['rogue']} ";
531 if ($item[71] & 16) $tooltip .= " {$lang_id_tab['priest']} ";
532 if ($item[71] & 64) $tooltip .= " {$lang_id_tab['shaman']} ";
533 if ($item[71] & 128) $tooltip .= " {$lang_id_tab['mage']} ";
534 if ($item[71] & 256) $tooltip .= " {$lang_id_tab['warlock']} ";
535 if ($item[71] & 1024) $tooltip .= " {$lang_id_tab['druid']} ";
536 $tooltip .= "<br />";
537 }
538
539 //number of bag slots
540 if ($item[66]) $tooltip .= " $item[66] {$lang_item['slots']}<br />";
541
542 $tooltip .= "</font><br /><font color='#1eff00'>";
543 //random enchantments
544 if ($item[75] || $item[76]) $tooltip .= "&lt; Random enchantment &gt;<br />";
545
546 //Ratings additions.
547 if (isset($flag_rating)){
548 for($s=0;$s<=18;$s+=2){
549 $stat_type = $item[$s];
550 $stat_value = $item[$s+1];
551 if ($stat_type && $stat_value){
552 switch ($stat_type) {
553 case 12:
554 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['DEFENCE_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
555 break;
556 case 13:
557 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['DODGE_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
558 break;
559 case 14:
560 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['PARRY_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
561 break;
562 case 15:
563 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['SHIELD_BLOCK_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
564 break;
565 case 16:
566 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['MELEE_HIT_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
567 break;
568 case 17:
569 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['RANGED_HIT_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
570 break;
571 case 18:
572 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['SPELL_HIT_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
573 break;
574 case 19:
575 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['MELEE_CS_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
576 break;
577 case 20:
578 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['RANGED_CS_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
579 break;
580 case 21:
581 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['SPELL_CS_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
582 break;
583 case 22:
584 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['MELEE_HA_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
585 break;
586 case 23:
587 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['RANGED_HA_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
588 break;
589 case 24:
590 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['SPELL_HA_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
591 break;
592 case 25:
593 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['MELEE_CA_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
594 break;
595 case 26:
596 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['RANGED_CA_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
597 break;
598 case 27:
599 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['SPELL_CA_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
600 break;
601 case 28:
602 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['MELEE_HASTE_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
603 break;
604 case 29:
605 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['RANGED_HASTE_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
606 break;
607 case 30:
608 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['SPELL_HASTE_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
609 break;
610 case 31:
611 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['HIT_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
612 break;
613 case 32:
614 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['CS_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
615 break;
616 case 33:
617 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['HA_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
618 break;
619 case 34:
620 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['CA_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
621 break;
622 case 35:
623 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['RESILIENCE_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
624 break;
625 case 36:
626 $tooltip .= "{$lang_item['spell_equip']}: {$lang_item['improves']} {$lang_item['HASTE_RATING']} {$lang_item['rating_by']} $stat_value.<br />";
627 break;
628 default:
629 }
630 }
631 }
632 }
633 //add equip spellid to status
634 for($s1=27;$s1<=31;$s1++){
635 if ($item[$s1]) {
636 switch ($item[$s1+34]) {
637 case 0:
638 $tooltip .= "{$lang_item['spell_use']}: ";
639 break;
640 case 1:
641 $tooltip .= "{$lang_item['spell_equip']}: ";
642 break;
643 case 2:
644 $tooltip .= "{$lang_item['spell_coh']}: ";
645 break;
646 default:
647 }
648 $tooltip .= " $item[$s1]<br />";
649 if ($item[$s1]) {
650 if ($item[$s1+40]) $tooltip.= abs($item[$s1+40])." {$lang_item['charges']}.<br />";
651 }
652 }
653 }
654
655 $tooltip .= "</font>";
656
657 if ($item[55]) {
658 include_once("itemset_tab.php");
659 $tooltip .= "<br /><font color='orange'>{$lang_item['item_set']} : ".get_itemset_name($item[55])." ($item[55])</font>";
660 }
661 if ($item[54]) $tooltip .= "<br /><font color='orange'>''".str_replace("\"", " '", $item[54])."'</font>";
662
663 } else $tooltip = "Item ID: $item_id Not Found" ;
664
665 $sql_1->close();
666 return $tooltip;
667 } else return(NULL);
668}
669
670
671//##########################################################################################
672//get item icon - if icon not exists in INV folder D/L it from web.
673
674function get_icon($itemid) {
675 $displayid = get_displayid($itemid);
676
677 return get_icon_by($displayid, $itemid);
678}
679
680function get_icon_by($displayid, $itemid)
681{
682 global $proxy_cfg, $get_icons_from_web, $item_display_info;
683
684 if ($displayid)
685 {
686 $item = $item_display_info[$displayid];
687 if ($item && file_exists("img/item_icons/$item.jpg"))
688 return "img/item_icons/$item.jpg";
689 else
690 $item = '';
691 }
692else $item = '';
693
694 if($get_icons_from_web)
695 {
696 $xmlfilepath="http://www.wowhead.com/?item=";
697 $proxy = $proxy_cfg['addr'];
698 $port = $proxy_cfg['port'];
699
700 if (empty($proxy_cfg['addr']))
701 {
702 $proxy = "www.wowhead.com";
703 $xmlfilepath = "?item=";
704 $port = 80;
705 }
706
707 if ($item == '')
708 {
709 //get the icon name
710 $fp = @fsockopen($proxy, $port, $errno, $errstr, 0.4);
711 if (!$fp) return "img/INV/INV_blank_32.gif";
712 $out = "GET /$xmlfilepath$itemid HTTP/1.0\r\nHost: www.wowhead.com\r\n";
713 if (!empty($proxy_cfg['user'])) $out .= "Proxy-Authorization: Basic ". base64_encode ("{$proxy_cfg['user']}:{$proxy_cfg['pass']}")."\r\n";
714 $out .="Connection: Close\r\n\r\n";
715
716 $temp = "";
717 fwrite($fp, $out);
718 while ($fp && !feof($fp)) $temp .= fgets($fp, 4096);
719 fclose($fp);
720
721 //ADDED:
722 $wowhead_string = $temp;
723 //ENDOF ADDED
724
725 //preg_match("~(Icon.create\('(.*?)')~", $temp, $temp);
726 //foxpl regexp:
727 //preg_match("Icon.create\('([^\']*?)", $temp, $temp);
728
729 // if (!isset($temp[2])) return "img/INV/INV_blank_32.gif";
730 //$item = $temp[2];
731 }
732 //$iconfilename = strtolower($item);
733
734 //ADDED:
735 //GETTING ICON NAME FROM WOWHEAD STRING:
736 $temp_string1 = strstr($wowhead_string, "Icon.create(");
737 $temp_string2 = substr($temp_string1, 12, 50);
738 $temp_string3 = strtok($temp_string2, ',');
739 $temp_string4 = substr($temp_string3, 1, strlen($temp_string3) - 2);
740
741 $icon_name = $temp_string4;
742 $item = $icon_name;
743 $iconfilename = strtolower($icon_name);
744 //ENDOF ADDED
745
746 //get the icon itself
747 if (empty($proxy_cfg['addr']))
748 {
749 $proxy = "static.wowhead.com";
750 $port = 80;
751 }
752 $fp = @fsockopen($proxy, $port, $errno, $errstr, 0.4);
753 if (!$fp) return "img/INV/INV_blank_32.gif";
754 $file = "http://static.wowhead.com/images/icons/medium/$iconfilename.jpg";
755 $out = "GET $file HTTP/1.0\r\nHost: static.wowhead.com\r\n";
756 if (!empty($proxy_cfg['user'])) $out .= "Proxy-Authorization: Basic ". base64_encode ("{$proxy_cfg['user']}:{$proxy_cfg['pass']}")."\r\n";
757 $out .="Connection: Close\r\n\r\n";
758 fwrite($fp, $out);
759
760 //remove header
761 while ($fp && !feof($fp))
762 {
763 $headerbuffer = fgets($fp, 4096);
764 if (urlencode($headerbuffer) == "%0D%0A") break;
765 }
766
767 if (file_exists("img/item_icons/$item.jpg")) return "img/item_icons/$item.jpg";
768
769 $img_file = fopen("img/item_icons/$item.jpg", 'wb');
770 while (!feof($fp)) fwrite($img_file,fgets($fp, 4096));
771 fclose($fp);
772 fclose($img_file);
773
774 if (file_exists("img/item_icons/$item.jpg")) return "img/item_icons/$item.jpg";
775 else return "img/INV/INV_blank_32.gif";
776 }
777 else return "img/INV/INV_blank_32.gif";
778}
779
780//##########################################################################################
781//get aura icon - if icon not exists in Char_AURA folder D/L it from web.
782
783function get_aura_icon($auraid)
784{
785 global $proxy_cfg, $get_icons_from_web, $char_aura;
786 if ($auraid)
787 {
788 $aura = $char_aura[$auraid[1]];
789 if ($aura && file_exists("img/Char_AURA/$aura.jpg")) return "img/Char_AURA/$aura.jpg";
790 else
791 $aura = '';
792 }
793 else $aura = '';
794
795 if($get_icons_from_web)
796 {
797 $xmlfilepath="http://www.wowhead.com/?spell=";
798 $proxy = $proxy_cfg['addr'];
799 $port = $proxy_cfg['port'];
800
801 if (empty($proxy_cfg['addr']))
802 {
803 $proxy = "www.wowhead.com";
804 $xmlfilepath = "?spell=";
805 $port = 80;
806 }
807
808 if ($aura == '')
809 {
810 //get the icon name
811 $fp = @fsockopen($proxy, $port, $errno, $errstr, 0.4);
812 if (!$fp) return "img/INV/INV_blank_32.gif";
813 $out = "GET /$xmlfilepath$auraid HTTP/1.0\r\nHost: www.wowhead.com\r\n";
814 if (!empty($proxy_cfg['user'])) $out .= "Proxy-Authorization: Basic ". base64_encode ("{$proxy_cfg['user']}:{$proxy_cfg['pass']}")."\r\n";
815 $out .="Connection: Close\r\n\r\n";
816
817 $temp = "";
818 fwrite($fp, $out);
819 while ($fp && !feof($fp)) $temp .= fgets($fp, 4096);
820 fclose($fp);
821
822 //ADDED
823 $wowhead_string = $temp;
824 //ENDOF ADDED
825
826 //preg_match("~(Icon.create\('(.*?)')~", $temp, $temp);
827 //foxpl regexp:
828 //preg_match("Icon.create\('([^\']*?)\'", $temp, $temp);
829 // $temp = "test";
830 //if (!isset($temp[2])) return "img/INV/INV_blank_32.gif";
831 //$aura = $temp[2];
832 }
833 //$iconfilename = strtolower($aura);
834
835 //ADDED:
836 //GETTING ICON NAME FROM WOWHEAD STRING:
837 $temp_string1 = strstr($wowhead_string, "Icon.create(");
838 $temp_string2 = substr($temp_string1, 12, 50);
839 $temp_string3 = strtok($temp_string2, ',');
840 $temp_string4 = substr($temp_string3, 1, strlen($temp_string3) - 2);
841
842 $aura_icon_name = $temp_string4;
843 $aura = $aura_icon_name;
844 $iconfilename = strtolower($aura_icon_name);
845 //ENDOF ADDED
846
847 //get the icon itself
848 if (empty($proxy_cfg['addr']))
849 {
850 $proxy = "static.wowhead.com";
851 $port = 80;
852 }
853 $fp = @fsockopen($proxy, $port, $errno, $errstr, 0.4);
854 if (!$fp) return "img/INV/INV_blank_32.gif";
855 $file = "http://static.wowhead.com/images/icons/medium/$iconfilename.jpg";
856 $out = "GET $file HTTP/1.0\r\nHost: static.wowhead.com\r\n";
857 if (!empty($proxy_cfg['user'])) $out .= "Proxy-Authorization: Basic ". base64_encode ("{$proxy_cfg['user']}:{$proxy_cfg['pass']}")."\r\n";
858 $out .="Connection: Close\r\n\r\n";
859 fwrite($fp, $out);
860
861 //remove header
862 while ($fp && !feof($fp))
863 {
864 $headerbuffer = fgets($fp, 4096);
865 if (urlencode($headerbuffer) == "%0D%0A") break;
866 }
867
868 if (file_exists("img/Char_AURA/$aura.jpg")) return "img/Char_AURA/$aura.jpg";
869
870 $img_file = fopen("img/Char_AURA/$aura.jpg", 'wb');
871 while (!feof($fp)) fwrite($img_file,fgets($fp, 4096));
872 fclose($fp);
873 fclose($img_file);
874 if (file_exists("img/Char_AURA/$aura.jpg")) return "img/Char_AURA/$aura.jpg";
875 else
876 return "img/INV/INV_blank_32.gif";
877 }
878 else return "img/INV/INV_blank_32.gif";
879}
880
881
882//##########################################################################################
883//generate item border from item_template.entry
884function get_item_border($item_id){
885 global $lang_global, $lang_id_tab, $mangos_db, $realm_id, $itemset_id;
886 if($item_id){
887 $sql_2 = new SQL;
888 $sql_2->connect($mangos_db[$realm_id]['addr'], $mangos_db[$realm_id]['user'], $mangos_db[$realm_id]['pass'], $mangos_db[$realm_id]['name']);
889
890 $result_2 = $sql_2->query("SELECT Quality FROM item_template WHERE entry = '$item_id'");
891 $iborder = ($sql_2->num_rows($result_2) == 1) ? $sql_2->result($result_2, 0,"Quality"): "Quality: $iborder Not Found" ;
892
893 return "icon_border_$iborder";
894 }
895 else
896 return "icon_border_0";
897}
898
899// for calc next level xp
900function xp_Diff($lvl)
901{
902 if( $lvl < 29 )
903 return 0;
904 if( $lvl == 29 )
905 return 1;
906 if( $lvl == 30 )
907 return 3;
908 if( $lvl == 31 )
909 return 6;
910 else
911 return (5*($lvl-30));
912}
913
914function mxp($lvl)
915{
916 if ($lvl < 60)
917 {
918 return (45 + (5*$lvl));
919 }
920 else
921 {
922 return (235 + (5*$lvl));
923 }
924}
925
926function xp_to_level($lvl)
927{
928 $RATE_XP_PAST_70 = 1;
929 $xp = 0;
930 if (lvl < 60)
931 {
932 $xp = (8*$lvl + xp_Diff($lvl)) * mxp($lvl);
933 }
934 else if ($lvl == 60)
935 {
936 $xp = (155 + mxp($lvl) * (1344 - 70 - ((69 - $lvl) * (7 + (69 - $lvl) * 8 - 1)/2)));
937 }
938 else if ($lvl < 70)
939 {
940 $xp = (155 + mxp($lvl) * (1344 - ((69-$lvl) * (7 + (69 - $lvl) * 8 - 1)/2)));
941 }else
942 {
943 // level higher than 70 is not supported
944 $xp = (779700 * (pow($RATE_XP_PAST_70, $lvl - 69)));
945 return (($xp < 0x7fffffff) ? $xp : 0x7fffffff);
946 }
947
948 // The $xp to Level is always rounded to the nearest 100 points (50 rounded to high).
949 $xp = (($xp + 50) / 100) * 100; // use additional () for prevent free association operations in C++
950
951 if (($lvl > 10) && ($lvl < 60)) // compute discount added in 2.3.x
952 {
953 $discount = ($lvl < 28) ? ($lvl - 10) : 18;
954 $xp = ($xp * (100 - $discount)) / 100; // apply discount
955 $xp = ($xp / 100) * 100; // floor to hundreds
956 }
957
958 return $xp;
959}
960?>
Note: See TracBrowser for help on using the repository browser.