root/dev/common/includes/class.kill.php @ 326

Revision 326, 32.1 KB (checked in by ralle030583, 14 years ago)

ADD: Possiblity to browse through old months different alliance
ADD: Optinal to killist: "count of involved pilots" ( http://www.eve-dev.net/e107_plugins/forum/forum_viewtopic.php?11744.4)

Line 
1<?php
2require_once('common/includes/class.item.php');
3require_once('common/includes/class.corp.php');
4require_once('common/includes/class.alliance.php');
5require_once('common/includes/class.ship.php');
6require_once('common/includes/class.system.php');
7require_once('common/includes/class.pilot.php');
8require_once('common/includes/class.killlist.php');
9
10class Kill
11{
12    function Kill($id = 0)
13    {
14        $this->id_ = $id;
15        $this->involvedparties_ = array();
16        $this->destroyeditems_ = array();
17        $this->droppeditems_ = array();
18    }
19
20    function set($var, $value)
21    {
22        $this->$var = $value;
23    }
24
25    function getID()
26    {
27        return $this->id_;
28    }
29
30    function getTimeStamp()
31    {
32        $this->execQuery();
33        return $this->timestamp_;
34    }
35
36    function getVictimName()
37    {
38        $this->execQuery();
39        return $this->victimname_;
40    }
41
42    function getVictimID()
43    {
44        $this->execQuery();
45        return $this->victimid_;
46    }
47
48    function getVictimPortrait($size = 32)
49    {
50        $this->execQuery();
51        $plt = new Pilot($this->victimid_);
52        return $plt->getPortraitURL($size);
53    }
54
55    function getVictimCorpID()
56    {
57        $this->execQuery();
58        return $this->victimcorpid_;
59    }
60
61    function getVictimCorpName()
62    {
63        $this->execQuery();
64        return $this->victimcorpname_;
65    }
66
67    function getVictimAllianceName()
68    {
69        $this->execQuery();
70        return $this->victimalliancename_;
71    }
72
73    function getVictimAllianceID()
74    {
75        $this->execQuery();
76        return $this->victimallianceid_;
77    }
78
79    function getVictimShip()
80    {
81        $this->execQuery();
82        return $this->victimship_;
83    }
84
85    function getSystem()
86    {
87        $this->execQuery();
88        return $this->solarsystem_;
89    }
90
91    function getFBPilotID()
92    {
93        $this->execQuery();
94        if (!$this->fbpilotid_) return "null";
95        else return $this->fbpilotid_;
96    }
97
98    function getFBPilotName()
99    {
100        $this->execQuery();
101        return $this->fbpilotname_;
102    }
103
104    function getFBCorpID()
105    {
106        $this->execQuery();
107        if (!$this->fbcorpid_) return "null";
108        else return $this->fbcorpid_;
109    }
110
111    function getFBCorpName()
112    {
113        $this->execQuery();
114        return $this->fbcorpname_;
115    }
116
117    function getFBAllianceID()
118    {
119        $this->execQuery();
120        if (!$this->fballianceid_) return "null";
121        else return $this->fballianceid_;
122    }
123
124    function getFBAllianceName()
125    {
126        $this->execQuery();
127        return $this->fballiancename_;
128    }
129
130    function getKillPoints()
131    {
132        $this->execQuery();
133        return $this->killpoints_;
134    }
135
136    function getSolarSystemName()
137    {
138        return $this->solarsystemname_;
139    }
140
141    function getSolarSystemSecurity()
142    {
143        return $this->solarsystemsecurity_;
144    }
145
146    function getVictimShipName()
147    {
148        return $this->victimshipname_;
149    }
150
151    function getVictimShipExternalID()
152    {
153        return $this->victimshipexternalid_;
154    }
155
156    function getVictimShipClassName()
157    {
158        return $this->victimshipclassname_;
159    }
160
161    function getVictimShipValue()
162    {
163        return $this->victimshipvalue_;
164    }
165
166    function getVictimShipImage($size)
167    {
168        return IMG_URL."/ships/".$size."_".$size."/".$this->victimshipexternalid_.".png";
169    }
170
171    function getVictimShipValueIndicator()
172    {
173        // value is now raw
174        $value = $this->getVictimShipValue()/1000000;
175
176        if ($value >= 0 && $value <= 1)
177            $color = 'gray';
178        elseif ($value > 1 && $value <= 15)
179            $color = 'blue';
180        elseif ($value > 15 && $value <= 25)
181            $color = 'green';
182        elseif ($value > 25 && $value <= 40)
183            $color = 'yellow';
184        elseif ($value > 40 && $value <= 80)
185            $color = 'red';
186        elseif ($value > 80 && $value <= 250)
187            $color = 'orange';
188        elseif ($value > 250)
189            $color = 'purple';
190
191        return IMG_URL.'/ships/ship-'.$color.'.gif';
192    }
193
194    function getRawMail()
195    {
196        $this->execQuery();
197        if ($this->isClassified())
198        {
199            return 'Killmail not yet available, try again in '.round($this->getClassifiedTime()/3600, 2).' hrs.';
200        }
201
202        $mail .= substr(str_replace('-', '.' , $this->getTimeStamp()), 0, 16)."\r\n\r\n";
203        $mail .= "Victim: ".$this->getVictimName()."\r\n";
204        $mail .= "Alliance: ".$this->getVictimAllianceName()."\r\n";
205        $mail .= "Corp: ".$this->getVictimCorpName()."\r\n";
206        $ship = $this->getVictimShip();
207        $mail .= "Destroyed: ".$ship->getName()."\r\n";
208        $system = $this->getSystem();
209        $mail .= "System: ".$system->getName()."\r\n";
210        $mail .= "Security: ".$system->getSecurity(true)."\r\n";
211        $mail .= "Damage Taken: ".$this->VictimDamageTaken."\r\n\r\n";
212        $mail .= "Involved parties:\r\n\r\n";
213
214        foreach ($this->involvedparties_ as $inv)
215        {
216            $pilot = new Pilot($inv->getPilotID());
217            $corp = new Corporation($inv->getCorpID());
218            $alliance = new Alliance($inv->getAllianceID());
219
220            $weapon = $inv->getWeapon();
221            $ship = $inv->getShip();
222            if ($pilot->getName() == $weapon->getName())
223            {
224                $name = $pilot->getName()." / ".$corp->getName();
225            }
226            else
227            {
228                $name = $pilot->getName();
229            }
230
231            $mail .= "Name: ".$name;
232            if ($pilot->getID() == $this->getFBPilotID())
233            {
234                $mail .= " (laid the final blow)";
235            }
236            $mail .= "\r\n";
237
238            if ($pilot->getName() != $weapon->getName())
239            {
240                $mail .= "Security: ".$inv->getSecStatus()."\r\n";
241                $mail .= "Alliance: ".$alliance->getName()."\r\n";
242                $mail .= "Corp: ".$corp->getName()."\r\n";
243                $mail .= "Ship: ".$ship->getName()."\r\n";
244                $mail .= "Weapon: ".$weapon->getName()."\r\n";
245                $mail .= "Damage Done: ".$inv->dmgdone_."\r\n";
246            }
247            else
248            {
249                $mail .= "Damage Done: ".$inv->dmgdone_."\r\n";
250            }
251            $mail .= "\r\n";
252        }
253
254        if (count($this->destroyeditems_) > 0)
255        {
256            $mail .= "\r\nDestroyed items:\r\n\r\n";
257
258            foreach($this->destroyeditems_ as $destroyed)
259            {
260                $item = $destroyed->getItem();
261                $mail .= $item->getName();
262                if ($destroyed->getQuantity() > 1)
263                {
264                    // if the option is enabled and the item is fitted then split it up
265                    // this is aworkaround for the lazy parser of griefwatch
266                    if (config::get('kill_splitfit') && $destroyed->getQuantity() < 9 && ($destroyed->getLocationID() == 1
267                        || $destroyed->getLocationID() == 2 || $destroyed->getLocationID() == 3))
268                    {
269                        for ($i = $destroyed->getQuantity(); $i > 1; $i--)
270                        {
271                            $mail .= "\r\n".$item->getName();
272                        }
273
274                    }
275                    else
276                    {
277                        $mail .= ", Qty: ".$destroyed->getQuantity();
278                    }
279                }
280                if ($destroyed->getLocationID() == 4) // cargo
281                    $mail .= " (Cargo)";
282                if ($destroyed->getLocationID() == 6) // drone
283                    $mail .= " (Drone Bay)";
284                $mail .= "\r\n";
285            }
286        }
287
288        if (count($this->droppeditems_) > 0)
289        {
290            $mail .= "\r\nDropped items:\r\n\r\n";
291
292            foreach($this->droppeditems_ as $dropped)
293            {
294                $item = $dropped->getItem();
295                $mail .= $item->getName();
296                if ($dropped->getQuantity() > 1)
297                {
298                    // if the option is enabled and the item is fitted then split it up
299                    // this is aworkaround for the lazy parser of griefwatch
300                    if (config::get('kill_splitfit') && $dropped->getQuantity() < 9 && ($dropped->getLocationID() == 1
301                        || $dropped->getLocationID() == 2 || $dropped->getLocationID() == 3))
302                    {
303                        for ($i = $dropped->getQuantity(); $i > 1; $i--)
304                        {
305                            $mail .= "\r\n".$item->getName();
306                        }
307
308                    }
309                    else
310                    {
311                        $mail .= ", Qty: ".$dropped->getQuantity();
312                    }
313                }
314                if ($dropped->getLocationID() == 4) // cargo
315                    $mail .= " (Cargo)";
316                if ($dropped->getLocationID() == 6) // drone
317                    $mail .= " (Drone Bay)";
318                $mail .= "\r\n";
319            }
320        }
321
322        return $mail;
323    }
324
325    function getDupe($checkonly = false)
326    {
327        if (!$checkonly)
328        {
329            $this->execQuery();
330        }
331        $dupe = 0;
332        $qry = new DBQuery();
333        if (!$this->getFBPilotID() || !$this->victimid_)
334            return 0;
335        $qry->execute("select kll_id
336                        from kb3_kills
337                        where kll_timestamp <=
338                        date_add( '".$this->timestamp_."', INTERVAL '5:0' MINUTE_SECOND )
339                        and kll_timestamp >=
340                        date_sub( '".$this->timestamp_."', INTERVAL '5:0' MINUTE_SECOND )
341                        and kll_victim_id = ".$this->victimid_."
342                        and kll_ship_id = ".$this->victimship_->getID()."
343                        and kll_system_id = ".$this->solarsystem_->getID()."
344                        and kll_fb_plt_id = ".$this->getFBPilotID()."
345                        and kll_id != ".$this->id_);
346
347        $row = $qry->getRow();
348        if ($row)
349            return $row['kll_id'];
350        else
351            return 0;
352    }
353
354    function execQuery()
355    {
356        if (!$this->timestamp_)
357        {
358            $qry = new DBQuery();
359
360            $this->qry_ = new DBQuery();
361            $this->sql_ = "select kll.kll_id, kll.kll_timestamp, plt.plt_name,
362                              crp.crp_name, ali.all_name, ali.all_id, kll.kll_ship_id,
363                              kll.kll_system_id, kll.kll_ship_id,
364                                      kll.kll_victim_id, plt.plt_externalid,
365                                      kll.kll_crp_id, kll.kll_points,
366                                      fbplt.plt_id as fbplt_id,
367                                      fbplt.plt_externalid as fbplt_externalid,
368                                      fbcrp.crp_id as fbcrp_id,
369                                      fbali.all_id as fbali_id,
370                              fbplt.plt_name as fbplt_name,
371                              fbcrp.crp_name as fbcrp_name,
372                              fbali.all_name as fbali_name,
373                              kll_dmgtaken
374                         from kb3_kills kll, kb3_pilots plt, kb3_corps crp,
375                              kb3_alliances ali, kb3_alliances fbali, kb3_corps fbcrp,
376                              kb3_pilots fbplt
377                        where kll.kll_id = '".$this->id_."'
378                          and plt.plt_id = kll.kll_victim_id
379                          and crp.crp_id = kll.kll_crp_id
380                          and ali.all_id = kll.kll_all_id
381                          and fbali.all_id = kll.kll_fb_all_id
382                          and fbcrp.crp_id = kll.kll_fb_crp_id
383                          and fbplt.plt_id = kll.kll_fb_plt_id";
384
385            $this->qry_->execute($this->sql_);
386            $row = $this->qry_->getRow();
387            if (!$row)
388            {
389                $this->valid_ = false;
390                return false;
391            }
392            else
393            {
394                $this->valid_ = true;
395            }
396
397            $this->setTimeStamp($row['kll_timestamp']);
398            $this->setSolarSystem(new SolarSystem($row['kll_system_id']));
399            $this->setVictimID($row['kll_victim_id']);
400            $this->setVictimName($row['plt_name']);
401            $this->setVictimCorpID($row['kll_crp_id']);
402            $this->setVictimCorpName($row['crp_name']);
403            $this->setVictimAllianceID($row['all_id']);
404            $this->setVictimAllianceName($row['all_name']);
405            $this->setVictimShip(new Ship($row['kll_ship_id']));
406            $this->setFBPilotID($row['fbplt_id']);
407            $this->setFBPilotName($row['fbplt_name']);
408            $this->setFBCorpID($row['fbcrp_id']);
409            $this->setFBCorpName($row['fbcrp_name']);
410            $this->setFBAllianceID($row['fbali_id']);
411            $this->setFBAllianceName($row['fbali_name']);
412            $this->setKillPoints($row['kll_points']);
413            $this->plt_ext_ = $row['plt_externalid'];
414            $this->fbplt_ext_ = $row['fbplt_externalid'];
415            $this->VictimDamageTaken = $row['kll_dmgtaken'];
416
417            // involved
418            $sql = "select ind_plt_id, ind_crp_id, ind_all_id, ind_sec_status,
419                    ind_shp_id, ind_wep_id, ind_dmgdone
420                    from kb3_inv_detail
421                    where ind_kll_id = ".$this->getID()."
422                    order by ind_order";
423
424            $qry->execute($sql) or die($qry->getErrorMsg());
425            while ($row = $qry->getRow())
426            {
427                $involved = new InvolvedParty($row['ind_plt_id'],
428                    $row['ind_crp_id'],
429                    $row['ind_all_id'],
430                    $row['ind_sec_status'],
431                    new Ship($row['ind_shp_id']),
432                    new Item($row['ind_wep_id']));
433                $involved->dmgdone_ = $row['ind_dmgdone'];
434                array_push($this->involvedparties_, $involved);
435            }
436            // destroyed items
437            $sql = "select sum(itd.itd_quantity) as itd_quantity, itd_itm_id,
438                        itd_itl_id, itl_location
439                    from kb3_items_destroyed itd
440                        left join kb3_item_locations itl on (itd.itd_itl_id = itl.itl_id or (itd.itd_itl_id = 0 and itl.itl_id = 1))
441                    where itd.itd_kll_id = ".$this->getID()."
442                    group by itd_itm_id, itd_itl_id
443                    order by itd.itd_itl_id";
444            $qry->execute($sql);
445            while ($row = $qry->getRow())
446            {
447                $destroyed = new DestroyedItem(new Item($row['itd_itm_id']),
448                    $row['itd_quantity'],
449                    $row['itl_location']);
450                array_push($this->destroyeditems_, $destroyed);
451            }
452
453            // dropped items
454            $sql = "select sum(itd.itd_quantity) as itd_quantity, itd_itm_id,
455                    itd_itl_id, itl_location
456                from kb3_items_dropped itd
457                    left join kb3_item_locations itl on (itd.itd_itl_id = itl.itl_id or (itd.itd_itl_id = 0 and itl.itl_id = 1))
458                where itd.itd_kll_id = ".$this->getID()."
459                group by itd_itm_id, itd_itl_id
460                order by itd.itd_itl_id";
461            $qry->execute($sql);
462            while ($row = $qry->getRow())
463            {
464                $destroyed = new DroppedItem(new Item($row['itd_itm_id']),
465                    $row['itd_quantity'],
466                    $row['itl_location']);
467                array_push($this->droppeditems_, $destroyed);
468            }
469        }
470    }
471
472    function isClassified()
473    {
474        if (config::get('kill_classified'))
475        {
476            if (user::role('classified_see'))
477            {
478                return false;
479            }
480
481            $offset = config::get('kill_classified')*3600;
482            if (config::get('date_gmtime'))
483            {
484                $time = time()-date('Z');
485            }
486            else
487            {
488                $time = time();
489            }
490            if (strtotime($this->timestamp_) > $time-$offset)
491            {
492                return true;
493            }
494        }
495        return false;
496    }
497
498    function getClassifiedTime()
499    {
500        if (config::get('kill_classified'))
501        {
502            $offset = config::get('kill_classified')*3600;
503            if (config::get('date_gmtime'))
504            {
505                $time = time()-date('Z');
506            }
507            else
508            {
509                $time = time();
510            }
511            if (strtotime($this->timestamp_) > $time-$offset)
512            {
513                return ($offset-$time+strtotime($this->timestamp_));
514            }
515        }
516        return 0;
517    }
518
519        function getInvolvedPartyCount()
520        {
521                $qry = new DBQuery();
522                $qry->execute("select count(inp_kll_id) inv from kb3_inv_plt where inp_kll_id = ". $this->id_);
523                $result = $qry->getRow();
524                return $result['inv'];
525        }
526   
527    function exists()
528    {
529        $this->execQuery();
530        return $this->valid_;
531    }
532
533    function relatedKillCount()
534    {
535        $kslist = new KillList();
536        $kslist->setRelated($this->id_);
537        involved::load($kslist,'kill');
538
539        return $kslist->getCount();
540    }
541
542    function relatedLossCount()
543    {
544        $lslist = new KillList();
545        $lslist->setRelated($this->id_);
546        involved::load($lslist,'loss');
547
548        return $lslist->getCount();
549    }
550
551    function countComment($kll_id)
552    {
553        $qry = new DBQuery();
554        $sql = "SELECT * FROM kb3_comments WHERE kll_id = '$kll_id'";
555        $count = $qry->execute($sql);
556        $count = $qry->recordCount();
557        return $count;
558    }
559
560    function setID($id)
561    {
562        $this->id_ = $id;
563    }
564
565    function setTimeStamp($timestamp)
566    {
567        $this->timestamp_ = $timestamp;
568    }
569
570    function setSolarSystem($solarsystem)
571    {
572        $this->solarsystem_ = $solarsystem;
573    }
574
575    function setSolarSystemName($solarsystemname)
576    {
577        $this->solarsystemname_ = $solarsystemname;
578    }
579
580    function setSolarSystemSecurity($solarsystemsecurity)
581    {
582        $this->solarsystemsecurity_ = $solarsystemsecurity;
583    }
584
585    function setVictim($victim)
586    {
587        $this->victim_ = $victim;
588    }
589
590    function setVictimID($victimid)
591    {
592        $this->victimid_ = $victimid;
593    }
594
595    function setVictimName($victimname)
596    {
597        $this->victimname_ = $victimname;
598    }
599
600    function setVictimCorpID($victimcorpid)
601    {
602        $this->victimcorpid_ = $victimcorpid;
603    }
604
605    function setVictimCorpName($victimcorpname)
606    {
607        $this->victimcorpname_ = $victimcorpname;
608    }
609
610    function setVictimAllianceID($victimallianceid)
611    {
612        $this->victimallianceid_ = $victimallianceid;
613    }
614
615    function setVictimAllianceName($victimalliancename)
616    {
617        $this->victimalliancename_ = $victimalliancename;
618    }
619
620    function setVictimShip($victimship)
621    {
622        $this->victimship_ = $victimship;
623    }
624
625    function setVictimShipName($victimshipname)
626    {
627        $this->victimshipname_ = $victimshipname;
628    }
629
630    function setVictimShipExternalID($victimshipexternalid)
631    {
632        $this->victimshipexternalid_ = $victimshipexternalid;
633    }
634
635    function setVictimShipClassName($victimshipclassname)
636    {
637        $this->victimshipclassname_ = $victimshipclassname;
638    }
639
640    function setVictimShipValue($victimshipvalue)
641    {
642        $this->victimshipvalue_ = $victimshipvalue;
643    }
644
645    function setFBPilotID($fbpilotid)
646    {
647        $this->fbpilotid_ = $fbpilotid;
648    }
649
650    function setFBPilotName($fbpilotname)
651    {
652        $npc = strpos($fbpilotname, "#");
653                if ($npc === false)
654        {
655                $this->fbpilotname_ = $fbpilotname;
656                }
657                else
658        {
659                $name = explode("#", $fbpilotname);
660                $plt = new Item($name[2]);
661                $this->fbpilotname_ = $plt->getName();
662                }
663    }
664
665    function setFBCorpID($fbcorpid)
666    {
667        $this->fbcorpid_ = $fbcorpid;
668    }
669
670    function setFBCorpName($fbcorpname)
671    {
672        $this->fbcorpname_ = $fbcorpname;
673    }
674
675    function setFBAllianceID($fballianceid)
676    {
677        $this->fballianceid_ = $fballianceid;
678    }
679
680    function setFBAllianceName($fballiancename)
681    {
682        $this->fballiancename_ = $fballiancename;
683    }
684    function setKillPoints($killpoints)
685    {
686        $this->killpoints_ = $killpoints;
687    }
688
689    function calculateKillPoints()
690    {
691        $ship = $this->getVictimShip();
692        $shipclass = $ship->getClass();
693        $vicpoints = $shipclass->getPoints();
694        $maxpoints = round($vicpoints * 1.2);
695
696        foreach ($this->involvedparties_ as $inv)
697        {
698            $shipinv = $inv->getShip();
699            $shipclassinv = $shipinv->getClass();
700            $invpoints += $shipclassinv->getPoints();
701        }
702
703        $gankfactor = $vicpoints / ($vicpoints + $invpoints);
704        $points = ceil($vicpoints * ($gankfactor / 0.75));
705
706        if ($points > $maxpoints) $points = $maxpoints;
707
708        $points = round($points, 0);
709        return $points;
710    }
711
712    function add($id = null)
713    {
714        if (!$this->solarsystem_->getID())
715        {
716            echo 'INTERNAL ERROR; SOLARSYSTEM NOT FOUND; PLEASE CONTACT A DEV WITH THIS MESSAGE<br/>';
717            var_dump($this->solarsystem_);
718            var_dump($this->solarsystemname_);
719            return 0;
720        }
721
722        $dupe = $this->getDupe(true);
723        if ($dupe == 0)
724        {
725            $this->realadd();
726        }
727        elseif (config::get('readd_dupes'))
728        {
729            $this->dupeid_ = $dupe;
730            $this->id_ = $dupe;
731            $this->remove(false);
732            $this->realadd($dupe);
733            $this->id_ = -1;
734        }
735        else
736        {
737            $this->dupeid_ = $dupe;
738            $this->id_ = -1;
739        }
740        return $this->id_;
741    }
742
743    function realadd($id = null)
744    {
745        // if ( $this->timestamp_ == "" || !$this->victimid_ || !$this->victimship_->getID() || !$this->solarsystem_->getID() ||
746        // !$this->victimallianceid_ || !$this->victimcorpid_ || !$this->getFBAllianceID() || !$this->getFBCorpID() ||
747        // !$this->getFBPilotID() )
748        // return 0;
749        if ($id == null)
750        {
751            $qid = 'null';
752        }
753        else
754        {
755            $qid = $id;
756        }
757        if (!$this->dmgtaken)
758        {
759            $this->dmgtaken = 0;
760        }
761
762        $qry = new DBQuery();
763        $sql = "insert into kb3_kills values (".$qid.",
764                    date_format('".$this->timestamp_."', '%Y.%m.%d %H:%i:%s'),
765                ".$this->victimid_.", ".$this->victimallianceid_.",
766                ".$this->victimcorpid_.", ".$this->victimship_->getID().",
767                ".$this->solarsystem_->getID().", ".$this->getFBAllianceID().",
768                ".$this->getFBCorpID().", ".$this->getFBPilotID().", ".$this->calculateKillPoints().", ".$this->dmgtaken." )";
769        $qry->execute($sql);
770
771        if ($id)
772        {
773            $this->id_ = $id;
774        }
775        else
776        {
777            $this->id_ = $qry->getInsertID();
778        }
779
780        // involved
781        $order = 0;
782        $invall = array();
783        $invcrp = array();
784        $invplt = array();
785        foreach ($this->involvedparties_ as $inv)
786        {
787            $ship = $inv->getShip();
788            $weapon = $inv->getWeapon();
789            if (!$inv->getPilotID() || $inv->getSecStatus() == "" || !$inv->getAllianceID() || !$inv->getCorpID() || !$ship->getID() || !$weapon->getID())
790            {
791                $this->remove();
792                return 0;
793            }
794
795            if (!$inv->dmgdone_)
796            {
797                $inv->dmgdone_ = 0;
798            }
799
800            $sql = "insert into kb3_inv_detail
801                    values ( ".$this->getID().", ".$inv->getPilotID().", '".$inv->getSecStatus()."', "
802                    .$inv->getAllianceID().", ".$inv->getCorpID().", ".$ship->getID().", "
803                    .$weapon->getID().", ".$order++.", ".$inv->dmgdone_.")";
804            $qry->execute($sql) or die($qry->getErrorMsg());
805
806            if (!in_array($inv->getAllianceID(), $invall) && $inv->getAllianceID() != 14)
807            {
808                array_push($invall, $inv->getAllianceID());
809                $qry->execute("insert into kb3_inv_all values ( ".$this->getID().", ".$inv->getAllianceID()." )") or die($qry->getErrorMsg());
810            }
811            if (!in_array($inv->getCorpID(), $invcrp))
812            {
813                array_push($invcrp, $inv->getCorpID());
814                $qry->execute("insert into kb3_inv_crp values ( ".$this->getID().", ".$inv->getCorpID()." )") or die($qry->getErrorMsg());
815            }
816            if (!in_array($inv->getPilotID(), $invplt))
817            {
818                array_push($invplt, $inv->getPilotID());
819                $qry->execute("insert into kb3_inv_plt values ( ".$this->getID().", ".$inv->getPilotID()." )") or die($qry->getErrorMsg());
820            }
821        }
822
823        // destroyed
824        foreach ($this->destroyeditems_ as $dest)
825        {
826            $item = $dest->getItem();
827            $loc_id = $dest->getLocationID();
828            if (!is_numeric($this->getID()) || !is_numeric($item->getID()) || !is_numeric($dest->getQuantity()) || !is_numeric($loc_id))
829            {
830                trigger_error('error with destroyed item.', E_USER_WARNING);
831                var_dump($dest);exit;
832                continue;
833            }
834
835            $sql = "insert into kb3_items_destroyed
836                        values ( ".$this->getID().", ".$item->getID().", ".$dest->getQuantity().", "
837                    .$loc_id." )";
838            $qry->execute($sql);
839        }
840
841        // dropped
842        foreach ($this->droppeditems_ as $dest)
843        {
844            $item = $dest->getItem();
845            $loc_id = $dest->getLocationID();
846            if (!is_numeric($this->getID()) || !is_numeric($item->getID()) || !is_numeric($dest->getQuantity()) || !is_numeric($loc_id))
847            {
848                trigger_error('error with dropped item.', E_USER_WARNING);
849                var_dump($dest);exit;
850                continue;
851            }
852
853            $sql = "insert into kb3_items_dropped
854                        values ( ".$this->getID().", ".$item->getID().", ".$dest->getQuantity().", "
855                    .$loc_id." )";
856            $qry->execute($sql);
857        }
858
859        // call the event that we added this mail
860        event::call('killmail_added', $this);
861        return $this->id_;
862    }
863
864    function remove($delcomments = true)
865    {
866        if (!$this->id_)
867            return;
868
869        event::call('killmail_delete', $this);
870
871        $qry = new DBQuery();
872        $qry->execute("delete from kb3_kills where kll_id = ".$this->id_);
873        $qry->execute("delete from kb3_inv_detail where ind_kll_id = ".$this->id_);
874        $qry->execute("delete from kb3_inv_all where ina_kll_id = ".$this->id_);
875        $qry->execute("delete from kb3_inv_crp where inc_kll_id = ".$this->id_);
876        $qry->execute("delete from kb3_inv_plt where inp_kll_id = ".$this->id_);
877        $qry->execute("delete from kb3_items_destroyed where itd_kll_id = ".$this->id_);
878        $qry->execute("delete from kb3_items_dropped where itd_kll_id = ".$this->id_);
879        if ($delcomments)
880        {
881            $qry->execute("delete from kb3_comments where kll_id = ".$this->id_);
882        }
883    }
884
885    function addInvolvedParty($involved)
886    {
887        array_push($this->involvedparties_, $involved);
888    }
889
890    function addDestroyedItem($destroyed)
891    {
892        array_push($this->destroyeditems_, $destroyed);
893    }
894
895    function addDroppedItem($dropped)
896    {
897        array_push($this->droppeditems_, $dropped);
898    }
899}
900
901class InvolvedParty
902{
903    function InvolvedParty($pilotid, $corpid, $allianceid, $secstatus, $ship, $weapon)
904    {
905        $this->pilotid_ = $pilotid;
906        $this->corpid_ = $corpid;
907        $this->allianceid_ = $allianceid;
908        $this->secstatus_ = $secstatus;
909        $this->ship_ = $ship;
910        $this->weapon_ = $weapon;
911    }
912
913    function getPilotID()
914    {
915        return $this->pilotid_;
916    }
917
918    function getCorpID()
919    {
920        return $this->corpid_;
921    }
922
923    function getAllianceID()
924    {
925        return $this->allianceid_;
926    }
927
928    function getSecStatus()
929    {
930        return $this->secstatus_;
931    }
932
933    function getShip()
934    {
935        return $this->ship_;
936    }
937
938    function getWeapon()
939    {
940        return $this->weapon_;
941    }
942}
943
944class DestroyedItem
945{
946    function DestroyedItem($item, $quantity, $location)
947    {
948        $this->item_ = $item;
949        $this->quantity_ = $quantity;
950        $this->location_ = $location;
951    }
952
953    function getItem()
954    {
955        return $this->item_;
956    }
957
958    function getQuantity()
959    {
960        if ($this->quantity_ == "") $this->quantity = 1;
961        return $this->quantity_;
962    }
963
964    function getFormatttedValue()
965    {
966        if (!isset($this->value))
967        {
968            $this->getValue();
969        }
970        if ($this->value > 0)
971        {
972            $value = $this->value * $this->getQuantity();
973            // Value Manipulation for prettyness.
974            if (strlen($value) > 6) // Is this value in the millions?
975            {
976                $formatted = round($value / 1000000, 2);
977                $formatted = number_format($formatted, 2);
978                $formatted = $formatted." M";
979            }
980            elseif (strlen($value) > 3) // 1000's ?
981            {
982                $formatted = round($value / 1000, 2);
983
984                $formatted = number_format($formatted, 2);
985                $formatted = $formatted." K";
986            }
987            else
988            {
989                $formatted = number_format($value, 2);
990                $formatted = $formatted." isk";
991            }
992        }
993        else
994        {
995            $formatted = "0 isk";
996        }
997        return $formatted;
998    }
999
1000        function getValue()
1001        {
1002            if ($this->value)
1003            {
1004                return $this->value;
1005            }
1006            if (DB_USE_CCP)
1007            {
1008                $this->value = 0;
1009            $qry = new DBQuery();
1010            $qry->execute("select basePrice, price
1011                            from kb3_invtypes
1012                            left join kb3_item_price on kb3_invtypes.typeID=kb3_item_price.typeID
1013                            where kb3_invtypes.typeID='".$this->item_->getID()."'");
1014            if ($row = $qry->getRow())
1015            {
1016                if ($row['price'])
1017                {
1018                    $this->value = $row['price'];
1019                }
1020                else
1021                {
1022                    $this->value = $row['basePrice'];
1023                }
1024            }
1025            return $this->value;
1026            }
1027
1028        //returns the value of an item
1029                $value = 0;                             // Set 0 value incase nothing comes back
1030                $id = $this->item_->getID(); // get Item ID
1031                $qry = new DBQuery();
1032        $qry->execute("select itm_value from kb3_items where itm_id= '".$id."'");
1033        $row = $qry->getRow();
1034        $value = $row['itm_value'];
1035                if ($value == '')
1036        {
1037                        $value = 0;
1038                }
1039                return $value;
1040        }
1041
1042    function getLocationID()
1043    {
1044        $id = false;
1045        if (strlen($this->location_) < 2)
1046        {
1047            $id = $this->item_->getSlot();
1048        }
1049        else
1050        {
1051            $qry = new DBQuery();
1052            $qry->execute("select itl_id from kb3_item_locations where itl_location = '".$this->location_."'");
1053            $row = $qry->getRow();
1054            $id = $row['itl_id'];
1055        }
1056        return $id;
1057    }
1058}
1059
1060class DroppedItem extends DestroyedItem
1061{
1062    function DroppedItem($item, $quantity, $location)
1063    {
1064        $this->item_ = $item;
1065        $this->quantity_ = $quantity;
1066        $this->location_ = $location;
1067    }
1068}
1069?>
Note: See TracBrowser for help on using the browser.