source: trunk/minimanager/scripts/get_lib.php@ 599

Last change on this file since 599 was 599, checked in by barny, 16 years ago

*Přidán nový mimimanager pro podporu 3.0.9 a upraven index.php pro zobrazování online mapy (všechny lokace).

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