Tokiwa Battle Royale  GE777
A PHP Battle Royale inspired game
 All Data Structures Namespaces Files Functions Variables Pages
achievement.func.php
Go to the documentation of this file.
1 <?php
2 
3 if(!defined('IN_GAME')) {
4  exit('Access Denied');
5 }
6 
7 function valid_achievement($s)
8 {
9  global $gamecfg;
10  require config("gamecfg",$gamecfg);
11  $k=-1;
12  //if (strlen($s)<=($achievement_count*4)) return false;
13  for ($i=1; $i<=$achievement_count*2; $i++)
14  {
15  if (strpos($s,"/",$k+1)===false) return false;
16  $k=strpos($s,"/",$k+1);
17  }
18  return true;
19 }
20 
21 function init_achievement($t)
22 {
23  global $gamecfg;
24  require config("gamecfg",$gamecfg);
25  $k=-1; $cnt=0;
26  $f=0;
27  while (1)
28  {
29  if (strpos($t,"/",$k+1)===false) {$f=1;break;}
30  $k=strpos($t,"/",$k+1); $cnt++;
31  }
32  $s=$t;
33  if (($f==1)&&($cnt==0)) {$s='';}
34  for ($i=1; $i<=$achievement_count*2-$cnt; $i++) $s.="0/";
35  return $s;
36 }
37 
38 function check_achievement($which, $who)
39 {
40  global $gamecfg,$name,$db,$tablepre;
41  $result = $db->query("SELECT achievement FROM {$tablepre}users WHERE username = '$who'");
42  $ach = $db->result($result, 0);
43  $bg=-1;
44  for ($i=1; $i<=$which*2; $i++) $bg=strpos($ach,"/",$bg+1);
45  $bg++; $ed=strpos($ach,"/",$bg);
46  $db->query("UPDATE {$tablepre}users SET achievement='$ach' WHERE username='".$who."'" );
47  $a=(int)substr($ach,$bg,$ed-$bg);
48  return $a;
49 }
50 
51 function fetch_achievement($which,$who)
52 {
53  global $gamecfg,$name,$db,$tablepre;
54  $result = $db->query("SELECT achievement FROM {$tablepre}users WHERE username = '$who'");
55  $ach = $db->result($result, 0);
56  $bg=-1;
57  for ($i=1; $i<=$which*2+1; $i++) $bg=strpos($ach,"/",$bg+1);
58  $bg++; $ed=strpos($ach,"/",$bg);
59  $db->query("UPDATE {$tablepre}users SET achievement='$ach' WHERE username='".$who."'" );
60  $a=(int)substr($ach,$bg,$ed-$bg);
61  return $a;
62 }
63 
64 function done_achievement($which,$ch,$who)
65 {
66  global $gamecfg,$name,$db,$tablepre;
67  $result = $db->query("SELECT achievement FROM {$tablepre}users WHERE username = '$who'");
68  $ach = $db->result($result, 0);
69  $bg=-1;
70  for ($i=1; $i<=$which*2; $i++) $bg=strpos($ach,"/",$bg+1);
71  $bg++; $ed=strpos($ach,"/",$bg);
72  $ach=substr($ach,0,$bg).$ch.substr($ach,$ed);
73  $db->query("UPDATE {$tablepre}users SET achievement='$ach' WHERE username='".$who."'" );
74 }
75 
76 function update_achievement($which,$who,$value)
77 {
78  global $cpl,$prc,$name,$db,$tablepre;
79  $result = $db->query("SELECT achievement FROM {$tablepre}users WHERE username = '$who'");
80  $ach = $db->result($result, 0);
81  $bg=-1;
82  for ($i=1; $i<=$which*2+1; $i++) $bg=strpos($ach,"/",$bg+1);
83  $bg++; $ed=strpos($ach,"/",$bg);
84  $ach=substr($ach,0,$bg).$value.substr($ach,$ed);
85  $bg=-1;
86  for ($i=1; $i<=$which*2+1; $i++) $bg=strpos($ach,"/",$bg+1);
87  $bg++; $ed=strpos($ach,"/",$bg);
88  $prc[$which]=substr($ach,$bg,$ed-$bg);
89  $db->query("UPDATE {$tablepre}users SET achievement='$ach' WHERE username='".$who."'" );
90 }
91 
92 function normalize_achievement($ach, &$crd1, &$crd2)
93 {
94  global $gamecfg;
95  require config("gamecfg",$gamecfg);
96  require config("resources",$gamecfg);
97  $crd1=0; $crd2=0;
98 
99 }
100 
101 function check_mixitem_achievement($nn,$item)
102 {
103  global $now,$validtime,$starttime,$gamecfg,$name,$db,$tablepre;
104  //0. KEY弹成就
105  if ($item=="【KEY系催泪弹】")
106  {
107  update_achievement(0,$nn,((int)fetch_achievement(0,$nn))+1);
108  if ((int)fetch_achievement(0,$nn)>=30 && (check_achievement(0,$nn)<999)) {
109  done_achievement(0,999,$nn);
110  $db->query("UPDATE {$tablepre}users SET credits=credits+700 WHERE username='".$nn."'" );
111  $db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
112  include_once GAME_ROOT.'./include/game/titles.func.php';
113  get_title("流星",$nn);
114  }
115  elseif ((int)fetch_achievement(0,$nn)>=5 && (check_achievement(0,$nn)<2)) {
116  done_achievement(0,2,$nn);
117  $db->query("UPDATE {$tablepre}users SET credits=credits+200 WHERE username='".$nn."'" );
118  $db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
119  include_once GAME_ROOT.'./include/game/titles.func.php';
120  get_title("幻想",$nn);
121  }
122  elseif ((int)fetch_achievement(0,$nn)>=1 && (check_achievement(0,$nn)<1)) {
123  $db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
124  $db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
125  done_achievement(0,1,$nn);
126  }
127  }
128  //1. 快速KEY弹成就
129  if ($item=="【KEY系催泪弹】")
130  {
131  $timeused=$now-$starttime; $besttime=(int)fetch_achievement(1,$nn);
132  if ($timeused<$besttime || $besttime==0) update_achievement(1,$nn,$timeused);
133  if (!check_achievement(1,$nn) && $timeused<=300) {
134  done_achievement(1,999,$nn);
135  $db->query("UPDATE {$tablepre}users SET credits=credits+30 WHERE username='".$nn."'" );
136  $db->query("UPDATE {$tablepre}users SET credits2=credits2+16 WHERE username='".$nn."'" );
137  include_once GAME_ROOT.'./include/game/titles.func.php';
138  get_title("KEY男",$nn);
139  }
140  }
141  //14. 燃烧弹成就
142  if ($item=="【KEY系燃烧弹】")
143  {
144  update_achievement(14,$nn,((int)fetch_achievement(14,$nn))+1);
145  if ((int)fetch_achievement(14,$nn)>=30 && (check_achievement(14,$nn)<999)) {
146  done_achievement(14,999,$nn);
147  $db->query("UPDATE {$tablepre}users SET credits=credits+700 WHERE username='".$nn."'" );
148  $db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
149  include_once GAME_ROOT.'./include/game/titles.func.php';
150  get_title("TERRA",$nn);
151  }
152  elseif ((int)fetch_achievement(14,$nn)>=5 && (check_achievement(14,$nn)<2)) {
153  done_achievement(14,2,$nn);
154  $db->query("UPDATE {$tablepre}users SET credits=credits+200 WHERE username='".$nn."'" );
155  $db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
156  include_once GAME_ROOT.'./include/game/titles.func.php';
157  get_title("树形图",$nn);
158  }
159  elseif ((int)fetch_achievement(14,$nn)>=1 && (check_achievement(14,$nn)<1)) {
160  $db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
161  $db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
162  done_achievement(14,1,$nn);
163  }
164  }
165  //15. 生命弹成就
166  if ($item=="【KEY系生命弹】")
167  {
168  update_achievement(15,$nn,((int)fetch_achievement(15,$nn))+1);
169  if ((int)fetch_achievement(15,$nn)>=30 && (check_achievement(15,$nn)<999)) {
170  done_achievement(15,999,$nn);
171  $db->query("UPDATE {$tablepre}users SET credits=credits+700 WHERE username='".$nn."'" );
172  $db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
173  include_once GAME_ROOT.'./include/game/titles.func.php';
174  get_title("未来战士",$nn);
175  }
176  elseif ((int)fetch_achievement(15,$nn)>=5 && (check_achievement(15,$nn)<2)) {
177  done_achievement(15,2,$nn);
178  $db->query("UPDATE {$tablepre}users SET credits=credits+200 WHERE username='".$nn."'" );
179  $db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
180  include_once GAME_ROOT.'./include/game/titles.func.php';
181  get_title("素描本",$nn);
182  }
183  elseif ((int)fetch_achievement(15,$nn)>=1 && (check_achievement(15,$nn)<1)) {
184  $db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
185  $db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
186  done_achievement(15,1,$nn);
187  }
188  }
189  //33. 诅咒刀成就
190  if ($item=="影刀【秋岚】")
191  {
192  update_achievement(33,$nn,((int)fetch_achievement(33,$nn))+1);
193  if ((int)fetch_achievement(33,$nn)>=1 && (check_achievement(15,$nn)<999)) {
194  done_achievement(33,999,$nn);
195  $db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
196  $db->query("UPDATE {$tablepre}users SET credits2=credits2+522 WHERE username='".$nn."'" );
197  include_once GAME_ROOT.'./include/game/titles.func.php';
198  get_title("剑圣",$nn);
199  }
200  }
201 }
202 function check_end_achievement($w,$m)
203 {
204  global $now,$validtime,$starttime,$gamecfg,$name,$db,$tablepre;
205  //16. 最后幸存成就
206  //$result = $db->query("SELECT achievement FROM {$tablepre}users WHERE username = '$w' AND type = 0");
207  //$ach = $db->result($result, 0);
208  if ($m==2)
209  {
210  update_achievement(16,$w,((int)fetch_achievement(16,$w))+1,$w);
211  if (!check_achievement(16,$w)) {
212  $db->query("UPDATE {$tablepre}users SET credits=credits+150 WHERE username='".$w."'" );
213  $db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$w."'" );
214  done_achievement(16,999,$w);
215  include_once GAME_ROOT.'./include/game/titles.func.php';
216  get_title("生存者",$w);
217  }
218  }
219  //17. 核爆全灭成就
220  if ($m==5)
221  {
222  update_achievement(17,$w,((int)fetch_achievement(17,$w))+1,$w);
223  if (!check_achievement(17,$w)) {
224  $db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$w."'" );
225  $db->query("UPDATE {$tablepre}users SET credits2=credits2+100 WHERE username='".$w."'" );
226  done_achievement(17,999,$w);
227  include_once GAME_ROOT.'./include/game/titles.func.php';
228  get_title("叶子钦定!",$w);
229  }
230  }
231  //18. 锁定解除成就
232  if ($m==3)
233  {
234  update_achievement(18,$w,((int)fetch_achievement(18,$w))+1);
235  if (!check_achievement(18,$w)) {
236  $db->query("UPDATE {$tablepre}users SET credits=credits+500 WHERE username='".$w."'" );
237  $db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$w."'" );
238  done_achievement(18,999,$w);
239  include_once GAME_ROOT.'./include/game/titles.func.php';
240  get_title("最后的荣光",$w);
241  }
242  }
243  //19. 幻境解离成就
244  if ($m==7)
245  {
246  update_achievement(19,$w,((int)fetch_achievement(19,$w))+1);
247  if (!check_achievement(19,$w)) {
248  $db->query("UPDATE {$tablepre}users SET credits=credits+1000 WHERE username='".$w."'" );
249  $db->query("UPDATE {$tablepre}users SET credits2=credits2+1000 WHERE username='".$w."'" );
250  done_achievement(19,999,$w);
251  include_once GAME_ROOT.'./include/game/titles.func.php';
252  get_title("奇迹的篝火",$w);
253  }
254  }
255 }
256 
257 function check_battle_achievement($n,$is_npc,$killname,$wp)
258 {
259  global $gamecfg,$w_name,$name,$db,$tablepre;
260  $nn=$n;
261  if ($nn==$killname){$nn=$w_name;}
262  //2. 击杀玩家成就
263  if (!$is_npc)
264  {
265  update_achievement(2,$nn,((int)fetch_achievement(2,$nn))+1);
266  if ((int)fetch_achievement(2,$nn)>=1000 && (check_achievement(2,$nn)<999)) {
267  done_achievement(2,999,$nn);
268  $db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
269  $db->query("UPDATE {$tablepre}users SET credits2=credits2+200 WHERE username='".$nn."'" );
270  include_once GAME_ROOT.'./include/game/titles.func.php';
271  get_title("G.D.M",$nn);
272  }
273  elseif ((int)fetch_achievement(2,$nn)>=100 && (check_achievement(2,$nn)<2)) {
274  done_achievement(2,2,$nn);
275  $db->query("UPDATE {$tablepre}users SET credits=credits+500 WHERE username='".$nn."'" );
276  $db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
277  include_once GAME_ROOT.'./include/game/titles.func.php';
278  get_title("二度打",$nn);
279  }
280  elseif ((int)fetch_achievement(2,$nn)>=10 && (check_achievement(2,$nn)<1)) {
281  $db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
282  $db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
283  done_achievement(2,1,$nn);
284  }
285  }
286  //31. ReturnToSender成就
287  if (!$is_npc)
288  {
289  $result = $db->query("SELECT nicks FROM {$tablepre}users WHERE username = '$killname'");
290  $ns = $db->result($result, 0);
291  if ((strpos($ns,"KEY男")!==false)&&($wp=='【KEY系催泪弹】')){
292  update_achievement(31,$nn,((int)fetch_achievement(31,$nn))+1);
293  if ((int)fetch_achievement(31,$nn)>=1 && (check_achievement(31,$nn)<999)) {
294  done_achievement(31,999,$nn);
295  include_once GAME_ROOT.'./include/game/titles.func.php';
296  get_title("R.T.S",$nn);
297  get_title("善有善报",$killname);
298  }
299  }
300  }
301  //32. 呵呵
302  if (!$is_npc)
303  {
304  $result = $db->query("SELECT nicks FROM {$tablepre}users WHERE username = '$killname'");
305  $ns1 = $db->result($result, 0);
306  $result = $db->query("SELECT nicks FROM {$tablepre}users WHERE username = '$nn'");
307  $ns2 = $db->result($result, 0);
308  if ((strpos($ns2,"LOOP")!==false)||(strpos($ns1,"LOOP")!==false)){
309  if (check_achievement(32,$nn)<999) done_achievement(32,999,$nn);
310  if (check_achievement(32,$killname)<999) done_achievement(32,999,$killname);
311  include_once GAME_ROOT.'./include/game/titles.func.php';
312  get_title("LOOP",$nn);
313  get_title("LOOP",$killname);
314  }
315  }
316  //3. 击杀NPC成就
317  if ($is_npc)
318  {
319  update_achievement(3,$nn,((int)fetch_achievement(3,$nn))+1);
320  if ((int)fetch_achievement(3,$nn)>=10000 && (check_achievement(3,$nn)<999)) {
321  done_achievement(3,999,$nn);
322  $db->query("UPDATE {$tablepre}users SET credits=credits+500 WHERE username='".$nn."'" );
323  $db->query("UPDATE {$tablepre}users SET credits2=credits2+15 WHERE username='".$nn."'" );
324  include_once GAME_ROOT.'./include/game/titles.func.php';
325  get_title("最后一步",$nn);
326  }
327  elseif ((int)fetch_achievement(3,$nn)>=500 && (check_achievement(3,$nn)<2)) {
328  done_achievement(3,2,$nn);
329  $db->query("UPDATE {$tablepre}users SET credits=credits+200 WHERE username='".$nn."'" );
330  $db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
331  include_once GAME_ROOT.'./include/game/titles.func.php';
332  get_title("黑客",$nn);
333  }
334  elseif ((int)fetch_achievement(3,$nn)>=100 && (check_achievement(3,$nn)<1)) {
335  $db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
336  $db->query("UPDATE {$tablepre}users SET credits2=credits2+5 WHERE username='".$nn."'" );
337  done_achievement(3,1,$nn);
338  }
339  }
340  //4. 推倒红暮成就
341  if ($is_npc && ($killname=="红暮" || $killname=="红杀将军 红暮"))
342  {
343  update_achievement(4,$nn,((int)fetch_achievement(4,$nn))+1);
344  if ((int)fetch_achievement(4,$nn)>=9 && (check_achievement(4,$nn)<999)) {
345  done_achievement(4,999,$nn);
346  include_once GAME_ROOT.'./include/game/titles.func.php';
347  get_title("越红者",$nn);
348  }
349  elseif ((int)fetch_achievement(4,$nn)>=1 && (check_achievement(4,$nn)<1)) {
350  done_achievement(4,1,$nn);
351  $db->query("UPDATE {$tablepre}users SET credits=credits+50 WHERE username='".$nn."'" );
352  $db->query("UPDATE {$tablepre}users SET credits2=credits2+75 WHERE username='".$nn."'" );
353  }
354  }
355  //13. 推倒蓝凝成就
356  if ($is_npc && ($killname=="蓝凝" || $killname=="红杀菁英 蓝凝"))
357  {
358  update_achievement(13,$nn,((int)fetch_achievement(13,$nn))+1);
359  if ((int)fetch_achievement(13,$nn)>=3 && (check_achievement(13,$nn)<999)) {
360  done_achievement(13,999,$nn);
361  include_once GAME_ROOT.'./include/game/titles.func.php';
362  get_title("跨过彩虹",$nn);
363  }
364  elseif ((int)fetch_achievement(13,$nn)>=1 && (check_achievement(13,$nn)<1)) {
365  done_achievement(13,1,$nn);
366  $db->query("UPDATE {$tablepre}users SET credits=credits+50 WHERE username='".$nn."'" );
367  $db->query("UPDATE {$tablepre}users SET credits2=credits2+75 WHERE username='".$nn."'" );
368  }
369  }
370  //20. 击破虚子成就
371  if ($is_npc && ($killname=="虚子" || $killname=="武神 虚子"))
372  {
373  update_achievement(20,$nn,((int)fetch_achievement(20,$nn))+1);
374  if ((int)fetch_achievement(20,$nn)>=1 && (check_achievement(20,$nn)<999)) {
375  done_achievement(20,999,$nn);
376  $db->query("UPDATE {$tablepre}users SET credits=credits+268 WHERE username='".$nn."'" );
377  $db->query("UPDATE {$tablepre}users SET credits2=credits2+263 WHERE username='".$nn."'" );
378  include_once GAME_ROOT.'./include/game/titles.func.php';
379  get_title("寻星者",$nn);
380  }
381  }
382  //21. 击破水月成就
383  if ($is_npc && ($killname=="水月" || $killname=="武神 水月"))
384  {
385  update_achievement(21,$nn,((int)fetch_achievement(21,$nn))+1);
386  if ((int)fetch_achievement(21,$nn)>=1 && (check_achievement(21,$nn)<999)) {
387  done_achievement(21,999,$nn);
388  $db->query("UPDATE {$tablepre}users SET credits=credits+233 WHERE username='".$nn."'" );
389  $db->query("UPDATE {$tablepre}users SET credits2=credits2+233 WHERE username='".$nn."'" );
390  include_once GAME_ROOT.'./include/game/titles.func.php';
391  get_title("寂静洪流",$nn);
392  }
393  }
394  //22. 击破冴冴成就
395  if ($is_npc && ($killname=="冴月麟MK-II" || $killname=="天神 冴月麟MK-II"))
396  {
397  update_achievement(22,$nn,((int)fetch_achievement(22,$nn))+1);
398  if ((int)fetch_achievement(22,$nn)>=1 && (check_achievement(22,$nn)<999)) {
399  done_achievement(22,999,$nn);
400  $db->query("UPDATE {$tablepre}users SET credits=credits+2333 WHERE username='".$nn."'" );
401  $db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
402  include_once GAME_ROOT.'./include/game/titles.func.php';
403  get_title("l33t",$nn);
404  }
405  }
406  //23. 击破四面成就
407  if ($is_npc && ($killname=="星莲船四面BOSS" || $killname=="天神 星莲船四面BOSS"))
408  {
409  update_achievement(23,$nn,((int)fetch_achievement(23,$nn))+1);
410  if ((int)fetch_achievement(23,$nn)>=1 && (check_achievement(23,$nn)<999)) {
411  done_achievement(23,999,$nn);
412  $db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
413  $db->query("UPDATE {$tablepre}users SET credits2=credits2+888 WHERE username='".$nn."'" );
414  include_once GAME_ROOT.'./include/game/titles.func.php';
415  get_title("赌玉狂魔",$nn);
416  }
417  }
418  //24. 击破北京成就
419  if ($is_npc && ($killname=="北京推倒你" || $killname=="武神 北京推倒你"))
420  {
421  update_achievement(24,$nn,((int)fetch_achievement(24,$nn))+1);
422  if ((int)fetch_achievement(24,$nn)>=1 && (check_achievement(24,$nn)<999)) {
423  done_achievement(24,999,$nn);
424  $db->query("UPDATE {$tablepre}users SET credits=credits+211 WHERE username='".$nn."'" );
425  $db->query("UPDATE {$tablepre}users SET credits2=credits2+299 WHERE username='".$nn."'" );
426  include_once GAME_ROOT.'./include/game/titles.func.php';
427  get_title("时代眼泪",$nn);
428  }
429  }
430  //25. 击破yoshiko成就
431  if ($is_npc && ($killname=="Yoshiko-G" || $killname=="武神 Yoshiko-G"))
432  {
433  update_achievement(25,$nn,((int)fetch_achievement(25,$nn))+1);
434  if ((int)fetch_achievement(25,$nn)>=1 && (check_achievement(25,$nn)<999)) {
435  done_achievement(25,999,$nn);
436  $db->query("UPDATE {$tablepre}users SET credits=credits+111 WHERE username='".$nn."'" );
437  $db->query("UPDATE {$tablepre}users SET credits2=credits2+333 WHERE username='".$nn."'" );
438  include_once GAME_ROOT.'./include/game/titles.func.php';
439  get_title("卸腿者",$nn);
440  }
441  }
442  //26. 击破吉祥物成就
443  if ($is_npc && ($killname=="便当盒" || $killname=="真职人 便当盒"))
444  {
445  update_achievement(26,$nn,((int)fetch_achievement(26,$nn))+1);
446  if ((int)fetch_achievement(26,$nn)>=1 && (check_achievement(26,$nn)<999)) {
447  done_achievement(26,999,$nn);
448  $db->query("UPDATE {$tablepre}users SET credits=credits+1 WHERE username='".$nn."'" );
449  $db->query("UPDATE {$tablepre}users SET credits2=credits2+111 WHERE username='".$nn."'" );
450  include_once GAME_ROOT.'./include/game/titles.func.php';
451  get_title("吉祥物",$nn);
452  }
453  }
454  //27. 英灵殿成就
455  if (($is_npc>=20)&&($is_npc<=22))
456  {
457  update_achievement(27,$nn,((int)fetch_achievement(27,$nn))+1);
458  if ((int)fetch_achievement(27,$nn)>=100 && (check_achievement(27,$nn)<999)) {
459  done_achievement(27,999,$nn);
460  $db->query("UPDATE {$tablepre}users SET credits=credits+500 WHERE username='".$nn."'" );
461  $db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
462  include_once GAME_ROOT.'./include/game/titles.func.php';
463  get_title("替天行道",$nn);
464  }
465  elseif ((int)fetch_achievement(27,$nn)>=30 && (check_achievement(27,$nn)<2)) {
466  done_achievement(27,2,$nn);
467  $db->query("UPDATE {$tablepre}users SET credits=credits+300 WHERE username='".$nn."'" );
468  $db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
469  }
470  elseif ((int)fetch_achievement(27,$nn)>=1 && (check_achievement(27,$nn)<1)) {
471  $db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
472  $db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
473  done_achievement(27,1,$nn);
474  }
475  }
476 }
477 
478 
479 function check_item_achievement($nn,$i,$ie,$is,$ik,$isk)
480 {
482  //28. 死斗成就
483  if (($gamestate==50)&&($i=="杏仁豆腐的ID卡"))
484  {
485  $t=$now-$starttime;
486  $besttime=(int)fetch_achievement(28,$nn);
487  if ($t<$besttime || $besttime==0) update_achievement(28,$nn,$t);
488  if (!check_achievement(28,$nn) && $t<=1800) {
489  done_achievement(28,999,$nn);
490  $db->query("UPDATE {$tablepre}users SET credits=credits+250 WHERE username='".$nn."'" );
491  $db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
492  include_once GAME_ROOT.'./include/game/titles.func.php';
493  get_title("神触",$nn);
494  }
495  }
496  //29. 美食成就
497  if (($ik=='HS')||($ik=='HH')||($ik=='HB'))
498  {
499  $heal=$ie;
500  if ($ik=='HB') $heal+=$ie;
501  $uu=((int)fetch_achievement(29,$nn))+$heal;
502  if ($uu>9999999) $uu=9999999;
503  update_achievement(29,$nn,$uu);
504  if (((int)fetch_achievement(29,$nn)>=999983) && (check_achievement(29,$nn))<999) {
505  done_achievement(29,999,$nn);
506  $db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
507  $db->query("UPDATE {$tablepre}users SET credits2=credits2+200 WHERE username='".$nn."'" );
508  include_once GAME_ROOT.'./include/game/titles.func.php';
509  get_title("补给掠夺者",$nn);
510  }
511  elseif ((int)fetch_achievement(29,$nn)>=142857 && (check_achievement(29,$nn)<2)) {
512  done_achievement(29,2,$nn);
513  $db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
514  $db->query("UPDATE {$tablepre}users SET credits2=credits2+50 WHERE username='".$nn."'" );
515  include_once GAME_ROOT.'./include/game/titles.func.php';
516  get_title("美食家",$nn);
517  }
518  elseif ((int)fetch_achievement(29,$nn)>=32767 && (check_achievement(29,$nn)<1)) {
519  $db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
520  $db->query("UPDATE {$tablepre}users SET credits2=credits2+5 WHERE username='".$nn."'" );
521  done_achievement(29,1,$nn);
522  }
523  }
524  //30. 贝爷成就
525  $kk=substr($ik,0,1);
526  if (($kk=='P')&&($ie>=30))
527  {
528  update_achievement(30,$nn,((int)fetch_achievement(30,$nn))+1);
529  if (((int)fetch_achievement(30,$nn)>=365) && (check_achievement(30,$nn))<999) {
530  done_achievement(30,999,$nn);
531  $db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
532  $db->query("UPDATE {$tablepre}users SET credits2=credits2+200 WHERE username='".$nn."'" );
533  include_once GAME_ROOT.'./include/game/titles.func.php';
534  get_title("贝爷",$nn);
535  }
536  elseif ((int)fetch_achievement(30,$nn)>=133 && (check_achievement(30,$nn)<2)) {
537  done_achievement(30,2,$nn);
538  $db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
539  $db->query("UPDATE {$tablepre}users SET credits2=credits2+50 WHERE username='".$nn."'" );
540  include_once GAME_ROOT.'./include/game/titles.func.php';
541  get_title("神农",$nn);
542  }
543  elseif ((int)fetch_achievement(30,$nn)>=5 && (check_achievement(30,$nn)<1)) {
544  $db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
545  $db->query("UPDATE {$tablepre}users SET credits2=credits2+5 WHERE username='".$nn."'" );
546  done_achievement(30,1,$nn);
547  }
548  }
549 }
550 
551 
552 ?>
$cnt
Definition: stat.php:11
$tablepre
Definition: config.inc.php:58
check_battle_achievement($n, $is_npc, $killname, $wp)
$gamecfg
Definition: system.php:22
check_item_achievement($nn, $i, $ie, $is, $ik, $isk)
$n
Definition: rank.php:51
$i
Definition: botservice.php:267
init_achievement($t)
$db
Definition: clear.php:32
check_end_achievement($w, $m)
fetch_achievement($which, $who)
$achievement_count
Definition: gamecfg_1.php:114
【生存者数:<?php echo $alivenum?> 人】< input type="button"value="显示全部幸存者"onClick="$('alivemode').value='all';$('gbmode').value='none';postCmd('alive','alive.php');"></p > if($gamblingon &&$gamestate >=20) elseif($gamblingon &&$gamestate<=10)
Definition: 1_alive.tpl.php:18
const GAME_ROOT
Definition: clear.php:6
$k
Definition: stat.php:7
$ach
$now
Definition: clear.php:23
$gamestate
Definition: gameinfo.php:4
config($file= '', $cfg=1)
if(!defined('IN_GAME')) get_title($t, $n)
Definition: titles.func.php:8
check_mixitem_achievement($nn, $item)
check_achievement($which, $who)
normalize_achievement($ach, &$crd1, &$crd2)
$starttime
Definition: gameinfo.php:5
done_achievement($which, $ch, $who)
update_achievement($which, $who, $value)
if(!defined('IN_GAME')) valid_achievement($s)
if(!$cuser||!$cpass) $result
Definition: admin.php:25