Tokiwa Battle Royale  GE777
A PHP Battle Royale inspired game
 All Data Structures Namespaces Files Functions Variables Pages
clubskills.func.php
Go to the documentation of this file.
1 <?php
2 if (! defined ( 'IN_GAME' )) {
3  exit ( 'Access Denied' );
4 }
5 
6 function getskills(&$arr)
7 {
8  $arr=Array(
9  //铁拳无敌称号技能
10  1=>Array(
11  //格档,花费[0]点技能,使武器效果按百分之[1]比率算入防御力
12  "sk1"=>Array(
13  0=>Array(0,0),
14  1=>Array(2,5),
15  2=>Array(2,10),
16  3=>Array(3,15),
17  4=>Array(3,20),
18  5=>Array(4,30),
19  6=>Array(6,40)),
20  //暴击,花费[0]点技能,增强百分之[1]的攻击力
21  //有百分之[2]的几率在计算伤害时减少敌人百分之[3]的防御
22  "sk2"=>Array(
23  0=>Array(0,0,0,0),
24  1=>Array(2,2,4,5),
25  2=>Array(3,4,6,10),
26  3=>Array(3,6,8,15),
27  4=>Array(4,9,10,20),
28  5=>Array(5,12,20,20),
29  6=>Array(5,15,25,25))),
30  //见敌必斩称号技能
31  2=>Array(
32  //精准,花费[0]点技能,命中率和连击命中系数提升百分之[1]
33  "sk1"=>Array(
34  0=>Array(0,0),
35  1=>Array(2,2),
36  2=>Array(3,4),
37  3=>Array(4,6),
38  4=>Array(5,8),
39  5=>Array(6,10),
40  6=>Array(6,12)),
41  //保养,花费[0]点技能,武器损坏率降低百分之[1]
42  "sk2"=>Array(
43  0=>Array(0,0),
44  1=>Array(2,6),
45  2=>Array(3,13),
46  3=>Array(3,20),
47  4=>Array(4,30),
48  5=>Array(4,40),
49  6=>Array(5,50))),
50  //灌篮高手称号技能
51  3=>Array(
52  //臂力,花费[0]点技能,反击率提升百分之[1]
53  "sk1"=>Array(
54  0=>Array(0,0),
55  1=>Array(1,20),
56  2=>Array(2,40),
57  3=>Array(2,60),
58  4=>Array(3,80),
59  5=>Array(3,100),
60  6=>Array(4,120)),
61  //潜能,花费[0]点技能,攻击力提高[1],伤害浮动增加[2]
62  "sk2"=>Array(
63  0=>Array(0,0,0),
64  1=>Array(2,2,4),
65  2=>Array(3,4,8),
66  3=>Array(3,6,13),
67  4=>Array(4,8,19),
68  5=>Array(5,10,25),
69  6=>Array(5,12,33))),
70  //狙击鹰眼称号技能
71  4=>Array(
72  //静息,花费[0]点技能,命中率和连击命中系数提升百分之[1]
73  "sk1"=>Array(
74  0=>Array(0,0),
75  1=>Array(2,2),
76  2=>Array(3,4),
77  3=>Array(4,6),
78  4=>Array(5,8),
79  5=>Array(6,10),
80  6=>Array(7,12)),
81  //重击,花费[0]点技能,防具损坏率提高[1],
82  //防具损坏效果变为[2]倍,有百分之[3]的几率造成额外百分之[4]的伤害
83  "sk2"=>Array(
84  0=>Array(0,0,0,0,0),
85  1=>Array(2,20,1,5,10),
86  2=>Array(3,40,1,10,15),
87  3=>Array(4,60,2,15,20),
88  4=>Array(5,80,2,20,20),
89  5=>Array(5,100,2,35,25),
90  6=>Array(7,125,3,50,30))),
91  //拆弹专家称号技能
92  5=>Array(
93  //隐蔽,花费[0]点技能,隐蔽率提升百分之[1],先攻率提升百分之[2]
94  "sk1"=>Array(
95  0=>Array(0,0,0),
96  1=>Array(2,4,3),
97  2=>Array(3,8,6),
98  3=>Array(3,12,9),
99  4=>Array(4,16,12),
100  5=>Array(5,20,15),
101  6=>Array(5,24,18)),
102  //冷静,花费[0]点技能,陷阱回避率提升百分之[1],陷阱再利用率提升百分之[2]
103  "sk2"=>Array(
104  0=>Array(0,0,0),
105  1=>Array(1,7,5),
106  2=>Array(2,14,10),
107  3=>Array(2,21,15),
108  4=>Array(3,28,20),
109  5=>Array(3,35,25),
110  6=>Array(4,44,30))),
111  //宛如疾风称号技能
112  6=>Array(
113  //敏捷,花费[0]点技能,隐蔽率提升百分之[1],先攻率提升百分之[2],反击率提升百分之[3]
114  "sk1"=>Array(
115  0=>Array(0,0,0,0),
116  1=>Array(2,3,1,5),
117  2=>Array(2,6,2,10),
118  3=>Array(3,9,3,15),
119  4=>Array(3,12,5,20),
120  5=>Array(4,16,8,25),
121  6=>Array(5,20,13,30)),
122  //冷静,花费[0]点技能,对方命中率下降[1]
123  "sk2"=>Array(
124  0=>Array(0,0),
125  1=>Array(2,3),
126  2=>Array(3,7),
127  3=>Array(3,11),
128  4=>Array(4,15),
129  5=>Array(4,18),
130  6=>Array(5,20))),
131  //超能力者称号技能
132  9=>Array(
133  //灵力,花费[0]点技能,灵系体力消耗减少百分之[1],敌人对灵系反击率降低[2]
134  "sk1"=>Array(
135  0=>Array(0,0,0),
136  1=>Array(1,3,8),
137  2=>Array(2,6,16),
138  3=>Array(3,9,24),
139  4=>Array(3,12,32),
140  5=>Array(4,16,40),
141  6=>Array(5,20,50))),
142  19=>Array(
143  //晶莹,花费[0]点技能,给敌人的最终伤害减少百分之[1],自己受到的最终伤害减少百分之[2],RP增长率下降百分之[3]
144  "sk1"=>Array(
145  0=>Array(0,0,0,0),
146  1=>Array(1,50,10,10),
147  2=>Array(2,75,20,20),
148  3=>Array(3,88,30,30),
149  4=>Array(4,94,40,40),
150  5=>Array(5,97,50,50),
151  6=>Array(6,98,60,60)),
152  //剔透,花费[0]点技能,主动攻击时有[3]%概率对敌人造成额外的伤害
153  "sk2"=>Array(
154  0=>Array(0,0),
155  1=>Array(1,2),
156  2=>Array(2,5),
157  3=>Array(3,8),
158  4=>Array(4,12),
159  5=>Array(5,16),
160  6=>Array(6,20))),
161  );
162 }
163 
164 function getskills2(&$arr)
165 {
166  $arr=Array(
167  0=>0,
168  1=>Array(
169  0=>Array(0,0),
170  1=>Array(2,5),
171  2=>Array(2,10),
172  3=>Array(3,15),
173  4=>Array(3,20),
174  5=>Array(4,30),
175  6=>Array(6,40)),
176  2=>Array(
177  0=>Array(0,0,0,0),
178  1=>Array(2,2,4,5),
179  2=>Array(3,4,6,10),
180  3=>Array(3,6,8,15),
181  4=>Array(4,9,10,20),
182  5=>Array(5,12,20,20),
183  6=>Array(5,15,25,25)),
184  3=>Array(
185  0=>Array(0,0),
186  1=>Array(2,2),
187  2=>Array(3,4),
188  3=>Array(4,6),
189  4=>Array(5,8),
190  5=>Array(6,10),
191  6=>Array(6,12)),
192  4=>Array(
193  0=>Array(0,0),
194  1=>Array(2,6),
195  2=>Array(3,13),
196  3=>Array(3,20),
197  4=>Array(4,30),
198  5=>Array(4,40),
199  6=>Array(5,50)),
200  7=>Array(
201  0=>Array(0,0),
202  1=>Array(1,20),
203  2=>Array(2,40),
204  3=>Array(2,60),
205  4=>Array(3,80),
206  5=>Array(3,100),
207  6=>Array(4,120)),
208  8=>Array(
209  0=>Array(0,0,0),
210  1=>Array(2,2,4),
211  2=>Array(3,4,8),
212  3=>Array(3,6,13),
213  4=>Array(4,8,19),
214  5=>Array(5,10,25),
215  6=>Array(5,12,33)),
216  5=>Array(
217  0=>Array(0,0),
218  1=>Array(2,2),
219  2=>Array(3,4),
220  3=>Array(4,6),
221  4=>Array(5,8),
222  5=>Array(6,10),
223  6=>Array(7,12)),
224  6=>Array(
225  0=>Array(0,0,0,0,0),
226  1=>Array(2,20,1,5,10),
227  2=>Array(3,40,1,10,15),
228  3=>Array(4,60,2,15,20),
229  4=>Array(5,80,2,20,20),
230  5=>Array(5,100,2,35,25),
231  6=>Array(7,125,3,50,30)),
232  9=>Array(
233  0=>Array(0,0,0),
234  1=>Array(2,4,3),
235  2=>Array(3,8,6),
236  3=>Array(3,12,9),
237  4=>Array(4,16,12),
238  5=>Array(5,20,15),
239  6=>Array(5,24,18)),
240  10=>Array(
241  0=>Array(0,0,0),
242  1=>Array(1,7,5),
243  2=>Array(2,14,10),
244  3=>Array(2,21,15),
245  4=>Array(3,28,20),
246  5=>Array(3,35,25),
247  6=>Array(4,44,30)),
248  11=>Array(
249  0=>Array(0,0,0,0),
250  1=>Array(2,3,1,5),
251  2=>Array(2,6,2,10),
252  3=>Array(3,9,3,15),
253  4=>Array(3,12,5,20),
254  5=>Array(4,16,8,25),
255  6=>Array(5,20,13,30)),
256  12=>Array(
257  0=>Array(0,0),
258  1=>Array(2,3),
259  2=>Array(3,7),
260  3=>Array(3,11),
261  4=>Array(4,15),
262  5=>Array(4,18),
263  6=>Array(5,20)),
264  13=>Array(
265  0=>Array(0,0,0),
266  1=>Array(1,3,8),
267  2=>Array(2,6,16),
268  3=>Array(3,9,24),
269  4=>Array(3,12,32),
270  5=>Array(4,16,40),
271  6=>Array(5,20,50)),
272  14=>Array(
273  0=>Array(0,0,0,0),
274  1=>Array(1,50,10,10),
275  2=>Array(2,75,20,20),
276  3=>Array(3,88,30,30),
277  4=>Array(4,94,40,40),
278  5=>Array(5,97,50,50),
279  6=>Array(6,98,60,60)),
280  15=>Array(
281  0=>Array(0,0),
282  1=>Array(1,2),
283  2=>Array(2,5),
284  3=>Array(3,8),
285  4=>Array(4,12),
286  5=>Array(5,16),
287  6=>Array(6,20)),
288  );
289 }
290 
291 function get_research_cost(&$arr)
292 {
293  $arr=Array(0,1,2,2,1,2,1,1,1,2,2,2,3,1,3,3);
294 }
295 
296 function gskill(&$arr,$club,$kind,$sk1lv)
297 {
298  getskills($clskl);
299  $sk2lv=$sk1lv;
300  if ($club==9 && $kind==1)
301  {
302  $arr['lv']=$sk1lv;
303  $arr['curles']=$clskl[$club]['sk1'][$sk1lv][1];
304  $arr['curcnt']=$clskl[$club]['sk1'][$sk1lv][2];
305  if ($sk1lv<6)
306  {
307  $arr['nextlv']=$sk1lv+1;
308  $arr['cost']=$clskl[$club]['sk1'][$sk1lv+1][0];
309  $arr['newles']=$clskl[$club]['sk1'][$sk1lv+1][1];
310  $arr['newcnt']=$clskl[$club]['sk1'][$sk1lv+1][2];
311  }
312  else $arr['nextlv']=-1;
313  }
314  else if ($club==1 && $kind==1)
315  {
316  $arr['lv']=$sk1lv;
317  $arr['curdef']=$clskl[$club]['sk1'][$sk1lv][1];
318  if ($sk1lv<6)
319  {
320  $arr['nextlv']=$sk1lv+1;
321  $arr['cost']=$clskl[$club]['sk1'][$sk1lv+1][0];
322  $arr['newdef']=$clskl[$club]['sk1'][$sk1lv+1][1];
323  }
324  else $arr['nextlv']=-1;
325  }
326  else if ($club==1 && $kind==2)
327  {
328  $arr['lv']=$sk2lv;
329  $arr['curatt']=$clskl[$club]['sk2'][$sk2lv][1];
330  $arr['curpro']=$clskl[$club]['sk2'][$sk2lv][2];
331  $arr['curdec']=$clskl[$club]['sk2'][$sk2lv][3];
332  if ($sk2lv<6)
333  {
334  $arr['nextlv']=$sk2lv+1;
335  $arr['cost']=$clskl[$club]['sk2'][$sk2lv+1][0];
336  $arr['newatt']=$clskl[$club]['sk2'][$sk2lv+1][1];
337  $arr['newpro']=$clskl[$club]['sk2'][$sk2lv+1][2];
338  $arr['newdec']=$clskl[$club]['sk2'][$sk2lv+1][3];
339  }
340  else $arr['nextlv']=-1;
341  }
342  else if ($club==2 && $kind==1)
343  {
344  $arr['lv']=$sk1lv;
345  $arr['curacc']=$clskl[$club]['sk1'][$sk1lv][1];
346  if ($sk1lv<6)
347  {
348  $arr['nextlv']=$sk1lv+1;
349  $arr['cost']=$clskl[$club]['sk1'][$sk1lv+1][0];
350  $arr['newacc']=$clskl[$club]['sk1'][$sk1lv+1][1];
351  }
352  else $arr['nextlv']=-1;
353  }
354  else if ($club==2 && $kind==2)
355  {
356  $arr['lv']=$sk2lv;
357  $arr['curpro']=$clskl[$club]['sk2'][$sk2lv][1];
358  if ($sk2lv<6)
359  {
360  $arr['nextlv']=$sk2lv+1;
361  $arr['cost']=$clskl[$club]['sk2'][$sk2lv+1][0];
362  $arr['newpro']=$clskl[$club]['sk2'][$sk2lv+1][1];
363  }
364  else $arr['nextlv']=-1;
365  }
366  else if ($club==3 && $kind==1)
367  {
368  $arr['lv']=$sk1lv;
369  $arr['curpro']=$clskl[$club]['sk1'][$sk1lv][1];
370  if ($sk1lv<6)
371  {
372  $arr['nextlv']=$sk1lv+1;
373  $arr['cost']=$clskl[$club]['sk1'][$sk1lv+1][0];
374  $arr['newpro']=$clskl[$club]['sk1'][$sk1lv+1][1];
375  }
376  else $arr['nextlv']=-1;
377  }
378  else if ($club==3 && $kind==2)
379  {
380  $arr['lv']=$sk2lv;
381  $arr['curatt']=$clskl[$club]['sk2'][$sk2lv][1];
382  $arr['curfluc']=$clskl[$club]['sk2'][$sk2lv][2];
383  if ($sk2lv<6)
384  {
385  $arr['nextlv']=$sk2lv+1;
386  $arr['cost']=$clskl[$club]['sk2'][$sk2lv+1][0];
387  $arr['newatt']=$clskl[$club]['sk2'][$sk2lv+1][1];
388  $arr['newfluc']=$clskl[$club]['sk2'][$sk2lv+1][2];
389  }
390  else $arr['nextlv']=-1;
391  }
392  else if ($club==4 && $kind==1)
393  {
394  $arr['lv']=$sk1lv;
395  $arr['curacc']=$clskl[$club]['sk1'][$sk1lv][1];
396  if ($sk1lv<6)
397  {
398  $arr['nextlv']=$sk1lv+1;
399  $arr['cost']=$clskl[$club]['sk1'][$sk1lv+1][0];
400  $arr['newacc']=$clskl[$club]['sk1'][$sk1lv+1][1];
401  }
402  else $arr['nextlv']=-1;
403  }
404  else if ($club==4 && $kind==2)
405  {
406  $arr['lv']=$sk2lv;
407  $arr['curpro']=$clskl[$club]['sk2'][$sk2lv][1];
408  $arr['cureff']=$clskl[$club]['sk2'][$sk2lv][2];
409  $arr['curpro2']=$clskl[$club]['sk2'][$sk2lv][3];
410  $arr['curdmg']=$clskl[$club]['sk2'][$sk2lv][4];
411  if ($sk2lv<6)
412  {
413  $arr['nextlv']=$sk2lv+1;
414  $arr['cost']=$clskl[$club]['sk2'][$sk2lv+1][0];
415  $arr['newpro']=$clskl[$club]['sk2'][$sk2lv+1][1];
416  $arr['neweff']=$clskl[$club]['sk2'][$sk2lv+1][2];
417  $arr['newpro2']=$clskl[$club]['sk2'][$sk2lv+1][3];
418  $arr['newdmg']=$clskl[$club]['sk2'][$sk2lv+1][4];
419  }
420  else $arr['nextlv']=-1;
421  }
422  else if ($club==5 && $kind==1)
423  {
424  $arr['lv']=$sk1lv;
425  $arr['curhid']=$clskl[$club]['sk1'][$sk1lv][1];
426  $arr['curact']=$clskl[$club]['sk1'][$sk1lv][2];
427  if ($sk1lv<6)
428  {
429  $arr['nextlv']=$sk1lv+1;
430  $arr['cost']=$clskl[$club]['sk1'][$sk1lv+1][0];
431  $arr['newhid']=$clskl[$club]['sk1'][$sk1lv+1][1];
432  $arr['newact']=$clskl[$club]['sk1'][$sk1lv+1][2];
433  }
434  else $arr['nextlv']=-1;
435  }
436  else if ($club==5 && $kind==2)
437  {
438  $arr['lv']=$sk2lv;
439  $arr['curmis']=$clskl[$club]['sk2'][$sk2lv][1];
440  $arr['curpic']=$clskl[$club]['sk2'][$sk2lv][2];
441  if ($sk2lv<6)
442  {
443  $arr['nextlv']=$sk2lv+1;
444  $arr['cost']=$clskl[$club]['sk2'][$sk2lv+1][0];
445  $arr['newmis']=$clskl[$club]['sk2'][$sk2lv+1][1];
446  $arr['newpic']=$clskl[$club]['sk2'][$sk2lv+1][2];
447  }
448  else $arr['nextlv']=-1;
449  }
450  else if ($club==6 && $kind==1)
451  {
452  $arr['lv']=$sk1lv;
453  $arr['curhid']=$clskl[$club]['sk1'][$sk1lv][1];
454  $arr['curact']=$clskl[$club]['sk1'][$sk1lv][2];
455  $arr['curcnt']=$clskl[$club]['sk1'][$sk1lv][3];
456  if ($sk1lv<6)
457  {
458  $arr['nextlv']=$sk1lv+1;
459  $arr['cost']=$clskl[$club]['sk1'][$sk1lv+1][0];
460  $arr['newhid']=$clskl[$club]['sk1'][$sk1lv+1][1];
461  $arr['newact']=$clskl[$club]['sk1'][$sk1lv+1][2];
462  $arr['newcnt']=$clskl[$club]['sk1'][$sk1lv+1][3];
463  }
464  else $arr['nextlv']=-1;
465  }
466  else if ($club==6 && $kind==2)
467  {
468  $arr['lv']=$sk2lv;
469  $arr['curmis']=$clskl[$club]['sk2'][$sk2lv][1];
470  if ($sk2lv<6)
471  {
472  $arr['nextlv']=$sk2lv+1;
473  $arr['cost']=$clskl[$club]['sk2'][$sk2lv+1][0];
474  $arr['newmis']=$clskl[$club]['sk2'][$sk2lv+1][1];
475  }
476  else $arr['nextlv']=-1;
477  }
478  else if ($club==19 && $kind==1)
479  {
480  $arr['lv']=$sk1lv;
481  $arr['wdmgdown']=$clskl[$club]['sk1'][$sk1lv][1];
482  $arr['dmgdown']=$clskl[$club]['sk1'][$sk1lv][2];
483  $arr['rpdec']=100-$clskl[$club]['sk1'][$sk1lv][3];
484  if ($sk1lv<6)
485  {
486  $arr['nextlv']=$sk1lv+1;
487  $arr['cost']=$clskl[$club]['sk1'][$sk1lv+1][0];
488  $arr['newwdmgdown']=$clskl[$club]['sk1'][$sk1lv+1][1];
489  $arr['newdmgdown']=$clskl[$club]['sk1'][$sk1lv+1][2];
490  $arr['newrpdec']=100-$clskl[$club]['sk1'][$sk1lv+1][3];
491  }
492  else $arr['nextlv']=-1;
493  }
494  else if ($club==19 && $kind==2)
495  {
496  $arr['lv']=$sk2lv;
497  $arr['rpdmgr']=$clskl[$club]['sk2'][$sk2lv][1];
498  if ($sk2lv<6)
499  {
500  $arr['nextlv']=$sk2lv+1;
501  $arr['cost']=$clskl[$club]['sk2'][$sk2lv+1][0];
502  $arr['newrpdmgr']=$clskl[$club]['sk2'][$sk2lv+1][1];
503  }
504  else $arr['nextlv']=-1;
505  }
506 }
507 
508 function getclubavd(&$arr,$club)
509 {
510  $arr['learn1']=0; $arr['learn2']=0;
511  if ($club==1)
512  {
513  $arr['learn1']=1; $arr['learn2']=2;
514  }
515  else if ($club==2)
516  {
517  $arr['learn1']=3; $arr['learn2']=4;
518  }
519  else if ($club==3)
520  {
521  $arr['learn1']=7; $arr['learn2']=8;
522  }
523  else if ($club==4)
524  {
525  $arr['learn1']=5; $arr['learn2']=6;
526  }
527  else if ($club==5)
528  {
529  $arr['learn1']=9; $arr['learn2']=10;
530  }
531  else if ($club==6)
532  {
533  $arr['learn1']=11; $arr['learn2']=12;
534  }
535  else if ($club==9) $arr['learn1']=13;
536  else if ($club==19)
537  {
538  $arr['learn1']=14;$arr['learn2']=15;
539  }
540 }
541 
542 function getck($x,&$c,&$k)
543 {
544  $c1=Array(0,1,1,2,2,4,4,3,3,5,5,6,6,9,19,19);
545  $k1=Array(0,1,2,1,2,1,2,1,2,1,2,1,2,1,1,2);
546  $c=$c1[$x]; $k=$k1[$x];
547 }
548 
549 function getlearnt(&$arr,$club,$skills)
550 {
551  if ($club!=18 && $club!=98) //天赋异禀和换装迷宫称号(供NPC)可以任意学习技能
552  getclubavd($arr,$club);
553  else
554  {
555  $learn1=(int)(((int)($skills/100))/16);
556  $learn2=((int)($skills/100))%16;
557  $arr['learn1']=$learn1; $arr['learn2']=$learn2;
558  }
559 }
560 
561 function calcskills(&$arr)
562 {
563  getskills($clskl); get_research_cost($rcost);
564  global $club,$skills;
565  $sk1lv=((int)($skills/10))%10;
566  $sk2lv=$skills%10;
567  getlearnt($arr,$club,$skills);
568 
569  if ($arr['learn1'])
570  {
571  getck($arr['learn1'],$c,$k);
572  gskill($arr['sk1'],$c,$k,$sk1lv);
573  }
574  if ($arr['learn2'])
575  {
576  getck($arr['learn2'],$c,$k);
577  gskill($arr['sk2'],$c,$k,$sk2lv);
578  }
579 
580  if ($club==18)
581  {
582  for ($i=1; $i<=13; $i++)
583  {
584  if ($i!=$arr['learn1'] && $i!=$arr['learn2'])
585  {
586  $arr['rs'.$i]=0;
587  $arr['rs'.$i.'cost']=$rcost[$i];
588  }
589  else $arr['rs'.$i]=1;
590  }
591  $arr['learn']=2;
592  if ($arr['learn1']) $arr['learn']--;
593  if ($arr['learn2']) $arr['learn']--;
594  }
595 }
596 
598 {
599  getskills($clskl);
600  global $hp,$mhp,$sp,$msp,$att,$def,$inf,$skillpoint,$log,$club,$skills;
601  if ($cmd=="clubbasic1") //生命
602  {
603  if ($club==17)
604  {
605  $log.="你不能使用本技能。<br>";
606  return;
607  }
608 
609  if ($skillpoint<1)
610  {
611  $log.="技能点不足。<br>";
612  return;
613  }
614  else
615  {
616  $skillpoint--;
617  if ($club==13)
618  {
619  $log.="消耗了<span class='lime'>1</span>点技能点,你的生命上限增加了<span class='yellow'>6</span>点。<br>";
620  $hp+=6; $mhp+=6;
621  }
622  else
623  {
624  $log.="消耗了<span class='lime'>1</span>点技能点,你的生命上限增加了<span class='yellow'>3</span>点。<br>";
625  $hp+=3; $mhp+=3;
626  }
627  }
628  }
629  else if ($cmd=="clubbasic2") //攻防
630  {
631  if ($club==17)
632  {
633  $log.="你不能使用本技能。<br>";
634  return;
635  }
636 
637  if ($skillpoint<1)
638  {
639  $log.="技能点不足。<br>";
640  return;
641  }
642  else
643  {
644  $skillpoint--;
645  if ($club==14)
646  {
647  $log.="消耗了<span class='lime'>1</span>点技能点,你的基础攻击增加了<span class='yellow'>9</span>点,基础防御增加了<span class='yellow'>12</span>点。<br>";
648  $att+=9; $def+=12;
649  }
650  else
651  {
652  $log.="消耗了<span class='lime'>1</span>点技能点,你的基础攻击增加了<span class='yellow'>4</span>点,基础防御增加了<span class='yellow'>6</span>点。<br>";
653  $att+=4; $def+=6;
654  }
655  }
656  }
657  else if ($cmd=="clubbasic3") //治疗
658  {
659  if ($skillpoint<1)
660  {
661  $log.="技能点不足。<br>";
662  return;
663  }
664  else
665  {
666  $skillpoint--;
667  $log.="消耗了<span class='lime'>1</span>点技能点,你的所有受伤和异常状态都解除了。<br>";
668  $inf="";
669  }
670  }
671  else if (strpos($cmd,'clubskill') === 0)
672  {
673  getlearnt($ac,$club,$skills);
674  $sk1lv=((int)($skills/10))%10;
675  $sk2lv=$skills%10;
676 
677  $which=0;
678  $which=intval(substr($cmd,9,1),10);
679  if (strlen($cmd)>=11) $which=$which*10+intval(substr($cmd,10,1),10);
680 
681  if ($which<1 || $which>15)
682  {
683  $log.="技能不合法。<br>";
684  return;
685  }
686  if ($which!=$ac['learn1'] && $which!=$ac['learn2'])
687  {
688  $log.="你不能升级此技能。<br>";
689  return;
690  }
691  if ($which==$ac['learn1'])
692  {
693  if ($sk1lv==6)
694  {
695  $log.="你已经升到了最高级。<br>";
696  return;
697  }
698  getck($ac['learn1'],$c,$k);
699  if ($skillpoint<$clskl[$c]['sk'.$k][$sk1lv+1][0])
700  {
701  $log.="技能点不足。<br>";
702  return;
703  }
704  $skillpoint-=$clskl[$c]['sk'.$k][$sk1lv+1][0];
705  $skills+=10;
706 // if($which == 14){//晶莹剔透
707 // $msp=round($mhp*(100-$clskl[$c]['sk'.$k][$sk1lv+1][2])/100);if($sp > $msp){$sp = $msp;}
708 // $att=round($att*(100-$clskl[$c]['sk'.$k][$sk1lv+1][2])/100);
709 // $mhp=round($mhp*(100+$clskl[$c]['sk'.$k][$sk1lv+1][1])/100);
710 // $def=round($def*(100+$clskl[$c]['sk'.$k][$sk1lv+1][1])/100);
711 // }
712  $log.="升级成功。<br>";
713  }
714  else
715  {
716  if ($ac['learn2']==0)
717  {
718  $log.="你不能使用此技能。<br>";
719  return;
720  }
721  if ($sk2lv==6)
722  {
723  $log.="你已经升到了最高级。<br>";
724  return;
725  }
726  getck($ac['learn2'],$c,$k);
727  if ($skillpoint<$clskl[$c]['sk'.$k][$sk2lv+1][0])
728  {
729  $log.="技能点不足。<br>";
730  return;
731  }
732  $skillpoint-=$clskl[$c]['sk'.$k][$sk2lv+1][0];
733  $skills++;
734 
735  $log.="升级成功。<br>";
736  }
737  }
738  else
739  {
740  if ($club!=18)
741  {
742  $log.="你不能研发技能。<br>";
743  return;
744  }
745 
746  $sk1lv=((int)($skills/10))%10;
747  $sk2lv=$skills%10;
748  $learn1=(int)(((int)($skills/100))/16);
749  $learn2=((int)($skills/100))%16;
750  if ($learn1 && $learn2)
751  {
752  $log.="你不能研发更多的技能了。<br>";
753  return;
754  }
755 
756  $which=0;
757  $which=intval(substr($cmd,7,1),10);
758  if (strlen($cmd)>=9) $which=$which*10+intval(substr($cmd,8,1),10);
759  if ($which<1 || $which>13)
760  {
761  $log.="技能不合法。<br>";
762  return;
763  }
764  if ($which==$learn1 || $which==$learn2)
765  {
766  $log.="你已经研发过本技能了。<br>";
767  return;
768  }
769  get_research_cost($rcost);
770  if ($skillpoint<$rcost[$which])
771  {
772  $log.="技能点不足。<br>";
773  return;
774  }
775  $skillpoint-=$rcost[$which];
776  if (!$learn1) $skills+=1600*$which; else $skills+=100*$which;
777  }
778 }
779 
780 function get_clubskill_bonus_p($aclub,$askl,$prefix1,$bclub,$bskl,$prefix2,&$att,&$def)
781 {
782  //攻击防御加成系数
783  getskills2($clskl);
784  global ${$prefix1.'wepk'};
785  getlearnt($alearn,$aclub,$askl);
786  getlearnt($blearn,$bclub,$bskl);
787  $a1=((int)($askl/10))%10; $a2=$askl%10;
788  $b1=((int)($bskl/10))%10; $b2=$bskl%10;
789  $att=1; $def=1;
790  for ($i=1; $i<=2; $i++)
791  {
792  if ($alearn['learn'.$i]==2 && ${$prefix1.'wepk'}=="WP") //铁拳无敌称号
793  {
794  $att*=(1+$clskl[2][${'a'.$i}][1]/100);
795  if (rand(0,99)<$clskl[2][${'a'.$i}][2]) $def*=(1-$clskl[2][${'a'.$i}][3]/100);
796  }
797  if ($alearn['learn'.$i]==8 && ${$prefix1.'wepk'}=="WC") //灌篮高手称号
798  {
799  $att*=(1+$clskl[8][${'a'.$i}][1]/100);
800  }
801  if ($alearn['learn'.$i]==6 && (${$prefix1.'wepk'}=="WG" || ${$prefix1.'wepk'}=="WJ")) //狙击鹰眼称号
802  {
803  if (rand(0,99)<$clskl[6][${'a'.$i}][3]) $att*=(1+$clskl[6][${'a'.$i}][4]/100);
804  }
805  }
806 }
807 
808 function get_clubskill_bonus($aclub,$askl,$prefix1,$bclub,$bskl,$prefix2,&$att,&$def)
809 {
810  //攻击防御力加成
811  getskills2($clskl);
812  global ${$prefix2.'wepk'}, ${$prefix2.'wepe'};
813  getlearnt($alearn,$aclub,$askl);
814  getlearnt($blearn,$bclub,$bskl);
815  $a1=((int)($askl/10))%10; $a2=$askl%10;
816  $b1=((int)($bskl/10))%10; $b2=$bskl%10;
817  $att=0; $def=0;
818  for ($i=1; $i<=2; $i++)
819  {
820  if ($blearn['learn'.$i]==1 && ${$prefix2.'wepk'}=="WP") //铁拳无敌称号
821  {
822  $dup=$clskl[1][${'b'.$i}][1]/100*${$prefix2.'wepe'};
823  if ($dup>2000) $dup=2000;
824  $def+=$dup;
825  }
826  }
827 }
828 
829 function get_clubskill_bonus_hitrate($aclub,$askl,$prefix1,$bclub,$bskl,$prefix2)
830 {
831  //命中率系数
832  getskills2($clskl);
833  global ${$prefix1.'wepk'};
834  getlearnt($alearn,$aclub,$askl);
835  getlearnt($blearn,$bclub,$bskl);
836  $a1=((int)($askl/10))%10; $a2=$askl%10;
837  $b1=((int)($bskl/10))%10; $b2=$bskl%10;
838  $r=1;
839  for ($i=1; $i<=2; $i++)
840  {
841  if ($alearn['learn'.$i]==3 && ${$prefix1.'wepk'}=="WK") //见敌必斩称号
842  {
843  $r*=(1+$clskl[3][${'a'.$i}][1]/100);
844  }
845  if ($alearn['learn'.$i]==5 && (${$prefix1.'wepk'}=="WG" || ${$prefix1.'wepk'}=="WJ")) //狙击鹰眼称号
846  {
847  $r*=(1+$clskl[5][${'a'.$i}][1]/100);
848  }
849  if ($blearn['learn'.$i]==12) //宛如疾风称号
850  {
851  $r*=(1-$clskl[12][${'b'.$i}][1]/100);
852  }
853  }
854  return $r;
855 }
856 
857 function get_clubskill_bonus_imprate($aclub,$askl,$prefix1,$bclub,$bskl,$prefix2)
858 {
859  //武器损坏率系数
860  getskills2($clskl);
861  global ${$prefix1.'wepk'};
862  getlearnt($alearn,$aclub,$askl);
863  getlearnt($blearn,$bclub,$bskl);
864  $a1=((int)($askl/10))%10; $a2=$askl%10;
865  $b1=((int)($bskl/10))%10; $b2=$bskl%10;
866  $r=1;
867  for ($i=1; $i<=2; $i++)
868  {
869  if ($alearn['learn'.$i]==4 && ${$prefix1.'wepk'}=="WK") //见敌必斩称号
870  {
871  $r*=(1-$clskl[4][${'a'.$i}][1]/100);
872  }
873  }
874  return $r;
875 }
876 
877 function get_clubskill_bonus_imfrate($aclub,$askl,$prefix1,$bclub,$bskl,$prefix2)
878 {
879  //防具损坏率系数
880  getskills2($clskl);
881  global ${$prefix1.'wepk'};
882  getlearnt($alearn,$aclub,$askl);
883  getlearnt($blearn,$bclub,$bskl);
884  $a1=((int)($askl/10))%10; $a2=$askl%10;
885  $b1=((int)($bskl/10))%10; $b2=$bskl%10;
886  $r=1;
887  for ($i=1; $i<=2; $i++)
888  {
889  if ($alearn['learn'.$i]==6 && (${$prefix1.'wepk'}=="WG" || ${$prefix1.'wepk'}=="WJ")) //狙击鹰眼称号
890  {
891  $r*=(1+$clskl[6][${'a'.$i}][1]/100);
892  }
893  }
894  return $r;
895 }
896 
897 function get_clubskill_bonus_imftime($aclub,$askl,$prefix1,$bclub,$bskl,$prefix2)
898 {
899  //防具损坏效果系数
900  getskills2($clskl);
901  global ${$prefix1.'wepk'};
902  getlearnt($alearn,$aclub,$askl);
903  getlearnt($blearn,$bclub,$bskl);
904  $a1=((int)($askl/10))%10; $a2=$askl%10;
905  $b1=((int)($bskl/10))%10; $b2=$bskl%10;
906  $r=1;
907  for ($i=1; $i<=2; $i++)
908  {
909  if ($alearn['learn'.$i]==6 && (${$prefix1.'wepk'}=="WG" || ${$prefix1.'wepk'}=="WJ")) //狙击鹰眼称号
910  {
911  $r+=$clskl[6][${'a'.$i}][2];
912  }
913  }
914  return $r;
915 }
916 
917 function get_clubskill_bonus_fluc($aclub,$askl,$prefix1,$bclub,$bskl,$prefix2)
918 {
919  //伤害浮动值
920  getskills2($clskl);
921  global ${$prefix1.'wepk'};
922  getlearnt($alearn,$aclub,$askl);
923  getlearnt($blearn,$bclub,$bskl);
924  $a1=((int)($askl/10))%10; $a2=$askl%10;
925  $b1=((int)($bskl/10))%10; $b2=$bskl%10;
926  $r=0;
927  for ($i=1; $i<=2; $i++)
928  {
929  if ($alearn['learn'.$i]==8 && ${$prefix1.'wepk'}=="WC") //灌篮高手称号
930  {
931  $r+=$clskl[8][${'a'.$i}][2];
932  }
933  }
934  return $r;
935 }
936 
937 
938 
939 function get_clubskill_bonus_counter($aclub,$askl,$prefix1,$bclub,$bskl,$prefix2)
940 {
941  //反击率加成
942  getskills2($clskl);
943  global ${$prefix1.'wepk'}, ${$prefix2.'wepk'};
944  getlearnt($alearn,$aclub,$askl);
945  getlearnt($blearn,$bclub,$bskl);
946  $a1=((int)($askl/10))%10; $a2=$askl%10;
947  $b1=((int)($bskl/10))%10; $b2=$bskl%10;
948  $r=1;
949  for ($i=1; $i<=2; $i++)
950  {
951  if ($alearn['learn'.$i]==7 && ${$prefix1.'wepk'}=="WC") //灌篮高手称号
952  {
953  $r*=(1+$clskl[7][${'a'.$i}][1]/100);
954  }
955  if ($alearn['learn'.$i]==11) //宛如疾风称号
956  {
957  $r*=(1+$clskl[11][${'a'.$i}][3]/100);
958  }
959  if ($blearn['learn'.$i]==13 && ${$prefix2.'wepk'}=="WF") //超能力者称号
960  {
961  $r*=(1-$clskl[13][${'b'.$i}][2]/100);
962  }
963  }
964  return $r;
965 }
966 
967 function get_clubskill_bonus_hide($clb,$skl)
968 {
969  //躲避率加成
970  getskills2($clskl);
971  getlearnt($alearn,$clb,$skl);
972  $a1=((int)($skl/10))%10; $a2=$skl%10;
973  $r=1;
974  for ($i=1; $i<=2; $i++)
975  {
976  if ($alearn['learn'.$i]==9) $r*=(1+$clskl[9][${'a'.$i}][1]/100); //拆蛋专家称号
977  if ($alearn['learn'.$i]==11) $r*=(1+$clskl[11][${'a'.$i}][1]/100); //宛如疾风称号
978  }
979  return $r;
980 }
981 
982 function get_clubskill_bonus_active($aclub,$askl,$bclub,$bskl)
983 {
984  //先攻率加成
985  getskills2($clskl);
986  getlearnt($alearn,$aclub,$askl);
987  getlearnt($blearn,$bclub,$bskl);
988  $a1=((int)($askl/10))%10; $a2=$askl%10;
989  $b1=((int)($bskl/10))%10; $b2=$bskl%10;
990  $r=1;
991  for ($i=1; $i<=2; $i++)
992  {
993  if ($alearn['learn'.$i]==9) //拆蛋专家称号
994  {
995  $r*=(1+$clskl[9][${'a'.$i}][2]/100);
996  }
997  if ($alearn['learn'.$i]==11) //宛如疾风称号
998  {
999  $r*=(1+$clskl[11][${'a'.$i}][2]/100);
1000  }
1001  if ($blearn['learn'.$i]==9) //拆蛋专家称号
1002  {
1003  $r/=(1+$clskl[9][${'b'.$i}][2]/100);
1004  }
1005  if ($blearn['learn'.$i]==11) //宛如疾风称号
1006  {
1007  $r/=(1+$clskl[11][${'b'.$i}][2]/100);
1008  }
1009  }
1010  return $r;
1011 }
1012 
1013 function get_clubskill_bonus_escrate($clb,$skl)
1014 {
1015  //陷阱回避率加成
1016  getskills2($clskl);
1017  getlearnt($alearn,$clb,$skl);
1018  $a1=((int)($skl/10))%10; $a2=$skl%10;
1019  $r=1;
1020  for ($i=1; $i<=2; $i++)
1021  {
1022  if ($alearn['learn'.$i]==10) $r*=(1+$clskl[10][${'a'.$i}][1]/100); //拆蛋专家称号
1023  }
1024  return $r;
1025 }
1026 
1027 function get_clubskill_bonus_reuse($clb,$skl)
1028 {
1029  //陷阱再利用率加成
1030  getskills2($clskl);
1031  getlearnt($alearn,$clb,$skl);
1032  $a1=((int)($skl/10))%10; $a2=$skl%10;
1033  $r=1;
1034  for ($i=1; $i<=2; $i++)
1035  {
1036  if ($alearn['learn'.$i]==10) $r*=(1+$clskl[10][${'a'.$i}][2]/100); //拆蛋专家称号
1037  }
1038  return $r;
1039 }
1040 
1041 function get_clubskill_bonus_spd($clb,$skl)
1042 {
1043  //体力消耗减少
1044  getskills2($clskl);
1045  getlearnt($alearn,$clb,$skl);
1046  $a1=((int)($skl/10))%10; $a2=$skl%10;
1047  $r=1;
1048  for ($i=1; $i<=2; $i++)
1049  {
1050  if ($clb==13) $r*=(1-$clskl[13][${'a'.$i}][1]/100); //超能力者称号
1051  }
1052  return $r;
1053 }
1054 
1055 //function get_clubskill_bonus_dmg($club,$skl,$w=0){
1056 // //最终伤害加成/减成
1057 // getskills2($clskl);
1058 // $a1=((int)($skl/10))%10; $a2=$skl%10;
1059 // $r=1;
1060 // for ($i=1; $i<=2; $i++)
1061 // {
1062 // if ($club==13) //晶莹剔透称号
1063 // {
1064 // $r+=$w ? $clskl[14][${'a'.$i}][1] : $clskl[14][${'a'.$i}][2];//$w=1表示对敌伤害,反之是所受伤害
1065 // }
1066 // }
1067 // return $r;
1068 //}
1069 
1070 function get_clubskill_bonus_dmg_rate($aclub,$askl,$bclub,$bskl)
1071 {
1072  //最终伤害加成/减成,a为攻击方,b为防御方
1073  getskills2($clskl);
1074  getlearnt($alearn,$aclub,$askl);
1075  getlearnt($blearn,$bclub,$bskl);
1076  $a1=((int)($askl/10))%10; $a2=$askl%10;
1077  $b1=((int)($bskl/10))%10; $b2=$bskl%10;
1078  $ar=100;
1079  for ($i=1; $i<=2; $i++)
1080  {
1081  if ($alearn['learn'.$i]==14) //攻击方有晶莹技能,伤害大幅下降
1082  {
1083  $ar-=$clskl[14][${'a'.$i}][1];
1084  }
1085  }
1086  $br=100;
1087  for ($i=1; $i<=2; $i++)
1088  {
1089  if ($blearn['learn'.$i]==14) //防御方有晶莹技能,伤害下降
1090  {
1091  $br-=$clskl[14][${'b'.$i}][2];
1092  }
1093  }
1094  $r = round($ar*$br)/10000;
1095  return $r;
1096 }
1097 
1098 function get_clubskill_bonus_dmg_val($club,$skl,$rp,$w_rp)
1099 {
1100  //最终伤害增加值
1101  getskills2($clskl);
1102  getlearnt($learn,$club,$skl);
1103  $a1=((int)($skl/10))%10; $a2=$skl%10;
1104  $rate = 0;
1105  for ($i=1; $i<=2; $i++)
1106  {
1107  if ($learn['learn'.$i]==15) //攻击方有剔透技能,得到概率
1108  {
1109  $rate=$clskl[15][${'a'.$i}][1];
1110  }
1111  }
1112  $rate -= round($rp/20);
1113  if($rate < 0){$rate = 0;}
1114  $rpdmg = $w_rp - $rp;
1115  if($rpdmg > 0 && rand(0,99) < $rate){
1116  return $rpdmg;
1117  }
1118  return 0;
1119 }
1120 
1121 function get_clubskill_rp_dec($clb,$skl)
1122 {
1123  //RP增长率下降
1124  getskills2($clskl);
1125  getlearnt($alearn,$clb,$skl);
1126  $a1=((int)($skl/10))%10; $a2=$skl%10;
1127  $r=0;
1128  for ($i=1; $i<=2; $i++)
1129  {
1130  if ($alearn['learn'.$i]==14) $r=$clskl[14][${'a'.$i}][3]; //晶莹剔透1
1131  }
1132  //echo $r;
1133  return $r;
1134 }
1135 
1136 ?>
$inf
Definition: botservice.php:49
getclubavd(&$arr, $club)
get_clubskill_bonus_fluc($aclub, $askl, $prefix1, $bclub, $bskl, $prefix2)
get_clubskill_bonus_hitrate($aclub, $askl, $prefix1, $bclub, $bskl, $prefix2)
get_clubskill_bonus_imprate($aclub, $askl, $prefix1, $bclub, $bskl, $prefix2)
get_clubskill_bonus_spd($clb, $skl)
get_clubskill_bonus_escrate($clb, $skl)
get_clubskill_bonus($aclub, $askl, $prefix1, $bclub, $bskl, $prefix2, &$att, &$def)
get_clubskill_bonus_active($aclub, $askl, $bclub, $bskl)
if(!defined( 'IN_GAME')) getskills(&$arr)
get_clubskill_bonus_dmg_val($club, $skl, $rp, $w_rp)
getck($x, &$c, &$k)
$i
Definition: botservice.php:267
get_clubskill_bonus_imfrate($aclub, $askl, $prefix1, $bclub, $bskl, $prefix2)
get_clubskill_bonus_p($aclub, $askl, $prefix1, $bclub, $bskl, $prefix2, &$att, &$def)
get_clubskill_bonus_imftime($aclub, $askl, $prefix1, $bclub, $bskl, $prefix2)
calcskills(&$arr)
getskills2(&$arr)
$log
Definition: botservice.php:34
$k
Definition: stat.php:7
get_clubskill_bonus_dmg_rate($aclub, $askl, $bclub, $bskl)
getlearnt(&$arr, $club, $skills)
upgradeclubskills($cmd)
get_research_cost(&$arr)
get_clubskill_bonus_reuse($clb, $skl)
gskill(&$arr, $club, $kind, $sk1lv)
$cmd
Definition: botservice.php:51
get_clubskill_bonus_counter($aclub, $askl, $prefix1, $bclub, $bskl, $prefix2)
get_clubskill_rp_dec($clb, $skl)
get_clubskill_bonus_hide($clb, $skl)