root/dev/mods/rank_mod/rank.php @ 491

Revision 478, 21.6 KB (checked in by kovell, 11 years ago)

Updated URL in history mod. Fixed t2 missiles => EWAR rank in rank mod.

Line 
1<?php
2require_once('common/includes/class.toplist.php');
3require_once('common/includes/class.pilot.php');
4require_once('common/includes/class.killlist.php');
5
6class TopWeaponListNoLimit extends TopList
7{
8    function TopWeaponList()
9    {
10        $this->TopWeaponListNoLimit();
11    }
12
13    function generate()
14    {
15                $sql = "select count(*) as cnt, ind.ind_wep_id as itm_id, itm.GroupID as itm_grp
16                                  from kb3_inv_detail ind
17                                  inner join kb3_invtypes itm on (typeID = ind.ind_wep_id)";
18
19        if ($this->invplt_)
20            $sqlbottom .= " and ind.ind_plt_id = ".$this->invplt_->getID();
21
22        if ($this->invcrp_)
23            $sqlbottom .= " and ind.ind_crp_id = ".$this->invcrp_->getID();
24
25        if ($this->invall_)
26            $sqlbottom .= " and ind.ind_all_id = ".$this->invall_->getID();
27                $sqlbottom .= " and itm.volume < '12000'
28                                                          and itm.typeName != 'Unknown'
29                                                          group by ind.ind_wep_id order by 1 desc";
30        $this->setSQLTop($sql);
31                $this->setSQLBottom($sqlbottom);
32    }
33}
34
35class TopShipListNoLimit extends TopShipList
36{
37    function TopShipListNoLimit()
38    {
39        $this->TopShipList();
40    }
41
42    function generate()
43    {
44        $sql = "select count(1) as cnt, ind.ind_shp_id as shp_id, shp.shp_class as cls_id
45              from kb3_inv_detail ind
46              inner join kb3_ships shp on ( shp_id = ind.ind_shp_id )";
47
48        if ($this->invplt_)
49            $sqlbottom .= " and ind.ind_plt_id = ".$this->invplt_->getID();
50
51        if ($this->invcrp_)
52            $sqlbottom .= " and ind.ind_crp_id = ".$this->invcrp_->getID();
53
54        if ($this->invall_)
55            $sqlbottom .= " and ind.ind_all_id = ".$this->invall_->getID();
56
57                $sqlbottom .= " and ind.ind_shp_id != 31
58                             and shp.shp_class != 17
59                             group by ind.ind_shp_id order by 1 desc";
60        $this->setSQLTop($sql);
61        $this->setSQLBottom($sqlbottom);
62    }
63}
64
65function TimeID2Str($time_id)
66{
67  $div = strtok($time_id," - ");
68  switch ($div[1]) {
69    case "01": $strtime = "January"; break;
70    case "02": $strtime = "February"; break;
71    case "03": $strtime = "March"; break;
72    case "04": $strtime = "April"; break;
73    case "05": $strtime = "May"; break;
74    case "06": $strtime = "June"; break;
75    case "07": $strtime = "July"; break;
76    case "08": $strtime = "August"; break;
77    case "09": $strtime = "September"; break;
78    case "10": $strtime = "October"; break;
79    case "11": $strtime = "November"; break;
80    case "12": $strtime = "December"; break;
81  }
82  $strtime .= " ".$div[0];
83  return $strtime;
84}
85
86function GetEnabledClasses( &$ship_badges )
87{
88
89$shipbadges=array(
90array( 'type' => 'frigate', 'name' => 'Frigate', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                  // 0
91array( 'type' => 'destroyer', 'name' => 'Destroyer', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),              // 1
92array( 'type' => 'cruiser', 'name' => 'Cruiser', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                  // 2
93array( 'type' => 'battlecruiser', 'name' => 'Battlecruiser', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),      // 3
94array( 'type' => 'battleship', 'name' => 'Battleship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),            // 4
95array( 'type' => 'capital', 'name' => 'Capital', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                  // 5
96array( 'type' => 'industrial', 'name' => 'Industrial', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),            // 6
97array( 'type' => 'kamikaze', 'name' => 'Shuttle, Pod & Noobship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0)  // 7
98);
99
100
101$ship_sub_badges=array(
102array( 'parent' => 0, 'type' => 'assault', 'name' => 'Assault Ship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                      // 0
103array( 'parent' => 0, 'type' => 'interceptor', 'name' => 'Interceptor', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                   // 1
104array( 'parent' => 0, 'type' => 'covert', 'name' => 'Covert Ops', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                         // 2
105array( 'parent' => 0, 'type' => 'electronic', 'name' => 'Electronic Attack Ship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0), // 3
106array( 'parent' => 1, 'type' => 'interdictor', 'name' => 'Interdictor', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                   // 4
107array( 'parent' => 2, 'type' => 'hac', 'name' => 'Heavy Assault Cruiser', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                 // 5
108array( 'parent' => 2, 'type' => 'hactor', 'name' => 'Heavy Interdictor', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                  // 6
109array( 'parent' => 2, 'type' => 'logistic', 'name' => 'Logistic Cruiser', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                 // 7
110array( 'parent' => 2, 'type' => 'recon', 'name' => 'Recon Ship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                  // 8
111array( 'parent' => 3, 'type' => 'command', 'name' => 'Command Ship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                      // 9
112array( 'parent' => 4, 'type' => 'blackops', 'name' => 'Black Ops', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                        // 10
113array( 'parent' => 4, 'type' => 'marauder', 'name' => 'Marauder', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                         // 11
114array( 'parent' => 5, 'type' => 'dread', 'name' => 'Dreadnought', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                         // 12
115array( 'parent' => 5, 'type' => 'carrier', 'name' => 'Carrier', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                           // 13
116array( 'parent' => 5, 'type' => 'mom', 'name' => 'Mothership', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                            // 14
117array( 'parent' => 5, 'type' => 'titan', 'name' => 'Titan', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                               // 15
118array( 'parent' => 6, 'type' => 'barge', 'name' => 'Mining Barge', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                        // 16
119array( 'parent' => 6, 'type' => 'exhumer', 'name' => 'Exhumer', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                           // 17
120array( 'parent' => 6, 'type' => 'transport', 'name' => 'Transport Ship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                  // 18
121array( 'parent' => 6, 'type' => 'capindy', 'name' => 'Cap. Industrial', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),           // 19
122array( 'parent' => 7, 'type' => 'noob', 'name' => 'N00bship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0)                              // 20
123);
124
125$enabled = config::get('rankmod_enables');
126
127$ship_badges = array();
128$cnt = 0;
129$last_parent = -1;
130foreach ($ship_sub_badges as $subclass) {
131  if ($subclass['parent'] > $last_parent) {
132    $shipbadges[$subclass['parent']]['cnt']=$subclass['parent'];
133    $ship_badges[] = $shipbadges[$subclass['parent']];
134    $last_parent = $subclass['parent'];
135  }
136  if (strpos($enabled, $subclass['name'])) {
137    $subclass['cnt'] = $cnt;
138    $ship_badges[] = $subclass;
139  }
140  $cnt++;
141}
142
143}
144
145function GetPilotRank($pilot_id, &$killpoints, &$medals, &$ship_badges, &$weaponbadges, &$base_rps, &$bonus_rps, &$rps)
146{
147
148$medals=array(
149array( 'type' => 'eagle', 'name' => 'Killer', 'cnt' => 0, 'mname' =>'Silver Eagle'),            // 0
150array( 'type' => 'redcross', 'name' => 'Scorer', 'cnt' => 0,  'mname' =>'Iron Cross'),          // 1
151array( 'type' => 'cross', 'name' => 'Solo Killer', 'cnt' => 0, 'mname' =>'Winged Cross'),       // 2
152array( 'type' => 'wing1', 'name' => 'Damagedealer', 'cnt' => 0, 'mname' =>'Diamond Wing'),      // 3
153array( 'type' => 'skull', 'name' => 'Final Blows', 'cnt' => 0, 'mname' =>'Red Skull'),          // 4
154array( 'type' => 'globe', 'name' => 'Podkiller', 'cnt' => 0, 'mname' =>'Silver Globe'),         // 5
155array( 'type' => 'star', 'name' => 'Griefer', 'cnt' => 0, 'mname' =>'Golden Star'),             // 6
156array( 'type' => 'wing2', 'name' => 'ISK Killer', 'cnt' => 0, 'mname' =>'Gold Wing'),           // 7
157array( 'type' => 'moon', 'name' => 'Loser', 'cnt' => 0, 'mname' =>'Purple Moon')                // 8
158);
159
160$shipbadges=array(
161array( 'type' => 'frigate', 'name' => 'Frigate', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                  // 0
162array( 'type' => 'destroyer', 'name' => 'Destroyer', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),              // 1
163array( 'type' => 'cruiser', 'name' => 'Cruiser', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                  // 2
164array( 'type' => 'battlecruiser', 'name' => 'Battlecruiser', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),      // 3
165array( 'type' => 'battleship', 'name' => 'Battleship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),            // 4
166array( 'type' => 'capital', 'name' => 'Capital', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                  // 5
167array( 'type' => 'industrial', 'name' => 'Industrial', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),            // 6
168array( 'type' => 'kamikaze', 'name' => 'Shuttle, Pod & Noobship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0)  // 7
169);
170
171
172$ship_sub_badges=array(
173array( 'parent' => 0, 'type' => 'assault', 'name' => 'Assault Ship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                      // 0
174array( 'parent' => 0, 'type' => 'interceptor', 'name' => 'Interceptor', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                   // 1
175array( 'parent' => 0, 'type' => 'covert', 'name' => 'Covert Ops', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                         // 2
176array( 'parent' => 0, 'type' => 'electronic', 'name' => 'Electronic Attack Ship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0), // 3
177array( 'parent' => 1, 'type' => 'interdictor', 'name' => 'Interdictor', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                   // 4
178array( 'parent' => 2, 'type' => 'hac', 'name' => 'Heavy Assault Cruiser', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                 // 5
179array( 'parent' => 2, 'type' => 'hactor', 'name' => 'Heavy Interdictor', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                  // 6
180array( 'parent' => 2, 'type' => 'logistic', 'name' => 'Logistic Cruiser', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                 // 7
181array( 'parent' => 2, 'type' => 'recon', 'name' => 'Recon Ship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                  // 8
182array( 'parent' => 3, 'type' => 'command', 'name' => 'Command Ship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                      // 9
183array( 'parent' => 4, 'type' => 'blackops', 'name' => 'Black Ops', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                        // 10
184array( 'parent' => 4, 'type' => 'marauder', 'name' => 'Marauder', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                         // 11
185array( 'parent' => 5, 'type' => 'dread', 'name' => 'Dreadnought', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                         // 12
186array( 'parent' => 5, 'type' => 'carrier', 'name' => 'Carrier', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                           // 13
187array( 'parent' => 5, 'type' => 'mom', 'name' => 'Mothership', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                            // 14
188array( 'parent' => 5, 'type' => 'titan', 'name' => 'Titan', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                               // 15
189array( 'parent' => 6, 'type' => 'barge', 'name' => 'Mining Barge', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                        // 16
190array( 'parent' => 6, 'type' => 'exhumer', 'name' => 'Exhumer', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                           // 17
191array( 'parent' => 6, 'type' => 'transport', 'name' => 'Transport Ship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),                  // 18
192array( 'parent' => 6, 'type' => 'capindy', 'name' => 'Cap. Industrial', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),           // 19
193array( 'parent' => 7, 'type' => 'noob', 'name' => 'N00bship', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0)                              // 20
194);
195
196$weaponbadges=array(
197array( 'type' => 'hybrid', 'name' => 'Hybrid Turret', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),             // 0
198array( 'type' => 'laser', 'name' => 'Laser Turret', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),               // 1
199array( 'type' => 'projectile', 'name' => 'Projectile Turret', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),     // 2
200array( 'type' => 'missile', 'name' => 'Missile Launcher', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),         // 3
201array( 'type' => 'ew', 'name' => 'Electronic Warfare', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),            // 4
202array( 'type' => 'drone', 'name' => 'Drone', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0)               // 5
203);
204
205$pilot = new Pilot($pilot_id);
206
207$klist = new KillList();
208$klist->addInvolvedPilot($pilot);
209$klist->getAllKills();
210
211$killpoints = $klist->getPoints();
212
213// BEGIN awarded medals code
214
215$qry = new DBQuery();
216$query = "SELECT COUNT(*) as cnt, rank.med_id as med_id, rank.time_id as time_id
217          FROM `kb3_rank_medals` rank
218          WHERE rank.plt_id =".$pilot_id."
219          AND rank.med_site ='".KB_SITE."'
220          GROUP BY rank.med_id
221          ORDER BY 2 ASC";
222$qry->execute($query);
223while ($row = $qry->getRow()) {
224  $medals[$row['med_id']]['cnt']=$row['cnt'];
225}
226
227// END awarded medals code
228
229// BEGIN ship ribbons code
230
231
232$shiplist = new TopShipListNoLimit();
233$shiplist->addInvolvedPilot($pilot);
234$shiplist->generate();
235
236
237// modified the topshiplist to show also the class (1 query = all data) XD
238
239$excludes=config::get('rankmod_enables');
240while ($row = $shiplist->getRow())
241{
242  switch ($row['cls_id'])
243  {
244        case 1: $shipbadges[4]['cnt']+=$row['cnt']; break;
245        case 2: $shipbadges[7]['cnt']+=$row['cnt']; break;
246        case 3: if (strpos($excludes, 'N00bship')) { $ship_sub_badges[20]['cnt']+=$row['cnt']; } else { $shipbadges[7]['cnt']+=$row['cnt']; } break;
247        case 4: $shipbadges[0]['cnt']+=$row['cnt']; break;
248        case 5: if (strpos($excludes, 'Interceptor')) { $ship_sub_badges[1]['cnt']+=$row['cnt']; } else { $shipbadges[0]['cnt']+=$row['cnt']; } break;
249        case 6: if (strpos($excludes, 'Assault Ship')) { $ship_sub_badges[0]['cnt']+=$row['cnt']; } else { $shipbadges[0]['cnt']+=$row['cnt']; } break;
250        case 7: $shipbadges[6]['cnt']+=$row['cnt']; break;
251        case 8: $shipbadges[2]['cnt']+=$row['cnt']; break;
252        case 9: if (strpos($excludes, 'Heavy Assault Cruiser')) { $ship_sub_badges[5]['cnt']+=$row['cnt']; } else { $shipbadges[2]['cnt']+=$row['cnt']; } break;
253        case 10: $shipbadges[3]['cnt']+=$row['cnt']; break;
254        case 11: $shipbadges[7]['cnt']+=$row['cnt']; break;
255        case 12: if (strpos($excludes, 'Mining Barge')) { $ship_sub_badges[16]['cnt']+=$row['cnt']; } else { $shipbadges[6]['cnt']+=$row['cnt']; } break;
256        case 13: if (strpos($excludes, 'Logistic Cruiser')) { $ship_sub_badges[7]['cnt']+=$row['cnt']; } else { $shipbadges[2]['cnt']+=$row['cnt']; } break;
257        case 14: if (strpos($excludes, 'Transport Ship')) { $ship_sub_badges[18]['cnt']+=$row['cnt']; } else { $shipbadges[6]['cnt']+=$row['cnt']; } break;
258        case 15: $shipbadges[1]['cnt']+=$row['cnt']; break;
259        case 16: if (strpos($excludes, 'Covert Ops')) { $ship_sub_badges[2]['cnt']+=$row['cnt']; } else { $shipbadges[0]['cnt']+=$row['cnt']; } break;
260        case 19: if (strpos($excludes, 'Dreadnought')) { $ship_sub_badges[12]['cnt']+=$row['cnt']; } else { $shipbadges[5]['cnt']+=$row['cnt']; } break;
261        case 21: if (strpos($excludes, 'Command Ship')) { $ship_sub_badges[9]['cnt']+=$row['cnt']; } else { $shipbadges[3]['cnt']+=$row['cnt']; } break;
262        case 22: if (strpos($excludes, 'Exhumer')) { $ship_sub_badges[17]['cnt']+=$row['cnt']; } else { $shipbadges[6]['cnt']+=$row['cnt']; } break;
263        case 23: if (strpos($excludes, 'Interdictor')) { $ship_sub_badges[4]['cnt']+=$row['cnt']; } else { $shipbadges[1]['cnt']+=$row['cnt']; } break;
264        case 24: if (strpos($excludes, 'Recon Ship')) { $ship_sub_badges[8]['cnt']+=$row['cnt']; } else { $shipbadges[2]['cnt']+=$row['cnt']; } break;
265        case 26: if (strpos($excludes, 'Titan')) { $ship_sub_badges[15]['cnt']+=$row['cnt']; } else { $shipbadges[5]['cnt']+=$row['cnt']; } break;
266        case 27: if (strpos($excludes, 'Carrier')) { $ship_sub_badges[13]['cnt']+=$row['cnt']; } else { $shipbadges[5]['cnt']+=$row['cnt']; } break;
267        case 28: if (strpos($excludes, 'Mothership')) { $ship_sub_badges[14]['cnt']+=$row['cnt']; } else { $shipbadges[5]['cnt']+=$row['cnt']; } break;
268        case 29: if (strpos($excludes, 'Cap. Industrial')) { $ship_sub_badges[19]['cnt']+=$row['cnt']; } else { $shipbadges[6]['cnt']+=$row['cnt']; } break;
269        case 30: if (strpos($excludes, 'Electronic Attack Ship')) { $ship_sub_badges[3]['cnt']+=$row['cnt']; } else { $shipbadges[0]['cnt']+=$row['cnt']; } break;
270        case 31: if (strpos($excludes, 'Heavy Interdictor')) { $ship_sub_badges[6]['cnt']+=$row['cnt']; } else { $shipbadges[2]['cnt']+=$row['cnt']; } break;
271        case 32: if (strpos($excludes, 'Black Ops')) { $ship_sub_badges[10]['cnt']+=$row['cnt']; } else { $shipbadges[4]['cnt']+=$row['cnt']; } break;
272        case 33: if (strpos($excludes, 'Marauder')) { $ship_sub_badges[11]['cnt']+=$row['cnt']; } else { $shipbadges[4]['cnt']+=$row['cnt']; } break;
273  }
274}
275// END ship ribbons code
276
277// BEGIN weapon ribbons code
278
279$weaponlist = new TopWeaponListNoLimit();
280$weaponlist->addInvolvedPilot($pilot);
281$weaponlist->generate();
282while ($row = $weaponlist->getRow())
283{
284        $group = $row['itm_grp'];
285        if(in_array($group,array(89,90,384,385,386,387,394,395,396,476,507,508,509,510,511,524,653,654,655,656,657,771,772,862,863,864)))
286                $group = 506;
287        if (in_array($group, array(544, 549, 639, 641)))
288                $group = 100;
289        switch ($group)
290        {
291                case 53: $weaponbadges[1]['cnt']+=$row['cnt']; break;
292                case 55: $weaponbadges[2]['cnt']+=$row['cnt']; break;
293                case 74: $weaponbadges[0]['cnt']+=$row['cnt']; break;
294                case 506: $weaponbadges[3]['cnt']+=$row['cnt']; break;
295                case 100: $weaponbadges[5]['cnt']+=$row['cnt']; break;
296                default: $weaponbadges[4]['cnt']+=$row['cnt']; break;
297        }
298}
299
300// END weapon ribbons code
301
302// BEGIN rank points stuff
303
304$bonus_rps=0;
305if(config::get(rankmod_convfactor)) $base_rps=round($killpoints/config::get(rankmod_convfactor));
306else $base_rps=0;
307
308// MEDALS STUFF
309$rank_medbonus=config::getnumerical('rankmod_bonus');
310$rank_purplemalus=config::get('rankmod_purplemalus');
311foreach ($medals as $i => $med)
312{
313  if (($i == 8) && $rank_purplemalus) {
314    $bonus_rps-=$rank_medbonus[$i]*$med['cnt'];
315  } elseif (($i == 8) && !$rank_purplemalus) {
316    $bonus_rps+=$rank_medbonus[$i]*$med['cnt'];
317  } else {
318    $bonus_rps+=$rank_medbonus[$i]*$med['cnt'];
319  }
320}
321
322// SHIP RIBBONS
323$rank_badges = config::getnumerical('rankmod_badreqs');
324$rank_badge_value = config::getnumerical('rankmod_badvalues');
325foreach ($shipbadges as $i => $ship)
326{
327  if ($ship['cnt'] > $rank_badges[$i][0]) {
328        $bonus_rps+=$rank_badge_value[$i][0];
329        $shipbadges[$i]['icon']=$ship['type'].'_elite';
330        $shipbadges[$i]['class']=$ship['name'].' Combat 1st Class';
331        $shipbadges[$i]['badge']='Elite '.$ship['name'].' Pilot';
332  } elseif ($ship['cnt'] > $rank_badges[$i][1]) {
333        $bonus_rps+=$rank_badge_value[$i][1];
334        $shipbadges[$i]['icon']=$ship['type'].'_veteran';
335        $shipbadges[$i]['class']=$ship['name'].' Combat 2nd Class';
336        $shipbadges[$i]['badge']='Veteran '.$ship['name'].' Pilot';
337  } elseif ($ship['cnt'] > $rank_badges[$i][2]) {
338        $bonus_rps+=$rank_badge_value[$i][2];
339        $shipbadges[$i]['icon']=$ship['type'].'_expert';
340        $shipbadges[$i]['class']=$ship['name'].' Combat 3rd Class';
341        $shipbadges[$i]['badge']='Expert '.$ship['name'].' Pilot';
342  }
343}
344
345// SHIP SUBCLASS RIBBONS
346$rank_badges = config::getnumerical('rankmod_sub_badreqs');
347$rank_badge_value = config::getnumerical('rankmod_sub_badvalues');
348foreach ($ship_sub_badges as $i => $ship)
349{
350  if ($ship['cnt'] > $rank_badges[$i][0]) {
351        $bonus_rps+=$rank_badge_value[$i][0];
352        $ship_sub_badges[$i]['icon']=$ship['type'].'_elite';
353        $ship_sub_badges[$i]['class']=$ship['name'].' Combat 1st Class';
354        $ship_sub_badges[$i]['badge']='Elite '.$ship['name'].' Pilot';
355  } elseif ($ship['cnt'] > $rank_badges[$i][1]) {
356        $bonus_rps+=$rank_badge_value[$i][1];
357        $ship_sub_badges[$i]['icon']=$ship['type'].'_veteran';
358        $ship_sub_badges[$i]['class']=$ship['name'].' Combat 2nd Class';
359        $ship_sub_badges[$i]['badge']='Veteran '.$ship['name'].' Pilot';
360  } elseif ($ship['cnt'] > $rank_badges[$i][2]) {
361        $bonus_rps+=$rank_badge_value[$i][2];
362        $ship_sub_badges[$i]['icon']=$ship['type'].'_expert';
363        $ship_sub_badges[$i]['class']=$ship['name'].' Combat 3rd Class';
364        $ship_sub_badges[$i]['badge']='Expert '.$ship['name'].' Pilot';
365  }
366}
367
368$ship_badges = array();
369$last_parent = -1;
370foreach ($ship_sub_badges as $subclass) {
371  if ($subclass['parent'] > $last_parent) {
372    $ship_badges[] = $shipbadges[$subclass['parent']];
373    $last_parent = $subclass['parent'];
374  }
375  $ship_badges[] = $subclass;
376}
377
378// WEAPON RIBBONS
379$rank_weap_badges = config::getnumerical('rankmod_weapreqs');
380$rank_weap_badge_value = config::getnumerical('rankmod_weapvalues');
381foreach ($weaponbadges as $i => $weap)
382{
383  if ($i == 4 || $i == 3 || $i == 5) { $bottom = 'Operator'; } else { $bottom = 'Gunner';}
384  if ($weap['cnt']>$rank_weap_badges[$i][0]) {
385        $bonus_rps+=$rank_weap_badge_value[$i][0];
386        $weaponbadges[$i]['icon']=$weap['type'].'_elite';
387        $weaponbadges[$i]['class']=$weap['name'].' Master 1st Class';
388        $weaponbadges[$i]['badge']='Elite '.$weap['name'].' '.$bottom;
389  } elseif ($weap['cnt']>$rank_weap_badges[$i][1]) {
390        $bonus_rps+=$rank_weap_badge_value[$i][1];
391        $weaponbadges[$i]['icon']=$weap['type'].'_veteran';
392        $weaponbadges[$i]['class']=$weap['name'].' Master 2nd Class';
393        $weaponbadges[$i]['badge']='Veteran '.$weap['name'].' '.$bottom;
394  } elseif ($weap['cnt']>$rank_weap_badges[$i][2]) {
395        $bonus_rps+=$rank_weap_badge_value[$i][2];
396        $weaponbadges[$i]['icon']=$weap['type'].'_expert';
397        $weaponbadges[$i]['class']=$weap['name'].' Master 3rd Class';
398        $weaponbadges[$i]['badge']='Expert '.$weap['name'].' '.$bottom;
399  }
400}
401
402$rps=$base_rps+$bonus_rps;
403$titles = config::getnumerical('rankmod_titles');
404$r_type = config::get('rankmod_rtype');
405
406switch ($r_type) {
407        case "Enlisted": $limit = 10; break;
408        case "Officer": $limit = 11; break;
409        case "Enlisted + Officer": $limit = 21; break;
410}
411
412$rank=0;
413
414while($rps>$titles[$rank]['reqrp'] && $rank<$limit)
415{
416  $rank++;
417}
418
419if ($rank!=0) { $rank--; }
420
421return $rank;
422
423}
424
Note: See TracBrowser for help on using the browser.