微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP网页游戏学习之Xnova(ogame)源码解读七

十、基础数值(vars.PHP

vars.PHP文件中定义游戏中关键的基础数值,全部以数组形式定义;PHP中的数组实际上是一个有序图。我们下面将以代码注释的方式进行说明,可能有不正确的理解,希望大家自己也仔细看看,有问题请提出来!如果对这段数值理解了,那么你就可以创造新的单位了,比如新的科技(可以看我服的殖民技术)、新的船舰等。

"mnl_spy",1 => "mnl_joueur",2 => "mnl_alliance",3 => "mnl_attaque",4 => "mnl_exploit",5 => "mnl_transport",15 => "mnl_expedition",97 => "mnl_general",99 => "mnl_buildlist",100 => "new_message" ); // 所有游戏单位类型定义,其实就是数据库表中字段 $resource = array( //建筑单位 1 => "Metal_mine",2 => "crystal_mine",3 => "deuterium_sintetizer",4 => "solar_plant",12 => "fusion_plant",14 => "robot_factory",15 => "nano_factory",21 => "hangar",22 => "Metal_store",23 => "crystal_store",24 => "deuterium_store",31 => "laboratory",33 => "terraformer",34 => "ally_deposit",41 => "mondbasis",42 => "phalanx",43 => "sprungtor",44 => "silo",//科技研究单位 106 => "spy_tech",108 => "computer_tech",109 => "military_tech",110 => "defence_tech",111 => "shield_tech",113 => "energy_tech",114 => "hyperspace_tech",115 => "combustion_tech",117 => "impulse_motor_tech",118 => "hyperspace_motor_tech",120 => "laser_tech",121 => "ionic_tech",122 => "buster_tech",123 => "intergalactic_tech",124 => "expedition_tech",199 => "graviton_tech",//船舰单位 202 => "small_ship_cargo",203 => "big_ship_cargo",204 => "light_hunter",205 => "heavy_hunter",206 => "crusher",207 => "battle_ship",208 => "colonizer",209 => "recycler",210 => "spy_sonde",211 => "bomber_ship",212 => "solar_satelit",213 => "destructor",214 => "dearth_star",215 => "battleship",//防御单位 401 => "misil_launcher",402 => "small_laser",403 => "big_laser",404 => "gauss_canyon",405 => "ionic_canyon",406 => "buster_canyon",407 => "small_protection_shield",408 => "big_protection_shield",502 => "interceptor_misil",503 => "interplanetary_misil",//专家单位 601 => "rpg_geologue",602 => "rpg_amiral",603 => "rpg_ingenieur",604 => "rpg_technocrate",605 => "rpg_constructeur",606 => "rpg_scientifique",607 => "rpg_stockeur",608 => "rpg_defenseur",609 => "rpg_bunker",610 => "rpg_espion",611 => "rpg_commandant",612 => "rpg_destructeur",613 => "rpg_general",614 => "rpg_raideur",615 => "rpg_empereur",); //部分单位的前置升级条件定义 //很多都是多个前置条件,可以从科技树里面看到 $requeriments = array( // 建筑 12 => array( 3 => 5,113 => 3),15 => array( 14 => 10,108 => 10),21 => array( 14 => 2),33 => array( 15 => 1,113 => 12),// 月球建筑 42 => array( 41 => 1),43 => array( 41 => 1,114 => 7),// 科技研究 106 => array( 31 => 3),108 => array( 31 => 1),109 => array( 31 => 4),110 => array( 113 => 3,31 => 6),111 => array( 31 => 2),113 => array( 31 => 1),114 => array( 113 => 5,110 => 5,31 => 7),115 => array( 113 => 1,31 => 1),117 => array( 113 => 1,31 => 2),118 => array( 114 => 3,120 => array( 31 => 1,113 => 2),121 => array( 31 => 4,120 => 5,113 => 4),122 => array( 31 => 5,113 => 8,120 => 10,121 => 5),123 => array( 31 => 10,108 => 8,114 => 8),124 => array( 31 => 3,108 => 4,117 => 3),199 => array( 31 => 12),// 船舰 202 => array( 21 => 2,115 => 2),203 => array( 21 => 4,115 => 6),204 => array( 21 => 1,115 => 1),205 => array( 21 => 3,111 => 2,117 => 2),206 => array( 21 => 5,117 => 4,121 => 2),207 => array( 21 => 7,118 => 4),208 => array( 21 => 4,209 => array( 21 => 4,115 => 6,110 => 2),210 => array( 21 => 3,115 => 3,106 => 2),211 => array( 117 => 6,21 => 8,122 => 5),212 => array( 21 => 1),213 => array( 21 => 9,118 => 6,114 => 5),214 => array( 21 => 12,118 => 7,114 => 6,199 => 1),215 => array( 114 => 5,120 => 12,118 => 5,21 => 8),// 防御 401 => array( 21 => 1),402 => array( 113 => 1,21 => 2,120 => 3),403 => array( 113 => 3,21 => 4,120 => 6),404 => array( 21 => 6,113 => 6,109 => 3,110 => 1),405 => array( 21 => 4,121 => 4),406 => array( 21 => 8,122 => 7),407 => array( 110 => 2,21 => 1),408 => array( 110 => 6,21 => 6),502 => array( 44 => 2),503 => array( 44 => 4),// 专家 603 => array( 601 => 5),604 => array( 602 => 5),605 => array( 601 => 10,603 => 2),606 => array( 601 => 10,607 => array( 605 => 1),608 => array( 606 => 1),609 => array( 601 => 20,603 => 10,605 => 3,606 => 3,607 => 2,608 => 2),610 => array( 602 => 10,604 => 5),611 => array( 602 => 10,612 => array( 610 => 1),613 => array( 611 => 1),614 => array( 602 => 20,604 => 10,610 => 2,611 => 2,612 => 1,613 => 3),615 => array( 614 => 1,609 => 1),); //所有单位造价定义 //'Metal' =>金属,'crystal' =>晶体,'deuterium' =>重氢,'energy' =>能量,'factor' =>步进值 //'consumption' =>HH消耗,'consumption2' =>HH消耗,'speed' =>第一速度,'speed2' =>第二速度,'capacity' =>装载量 //'max' =>最高等级 $pricelist = array( 1 => array ( 'Metal' => 60,'crystal' => 15,'deuterium' => 0,'energy' => 0,'factor' => 3/2),2 => array ( 'Metal' => 48,'crystal' => 24,'factor' => 1.6),3 => array ( 'Metal' => 225,'crystal' => 75,4 => array ( 'Metal' => 75,'crystal' => 30,12 => array ( 'Metal' => 900,'crystal' => 360,'deuterium' => 180,'factor' => 1.8),14 => array ( 'Metal' => 400,'crystal' => 120,'deuterium' => 200,'factor' => 2),15 => array ( 'Metal' => 1000000,'crystal' => 500000,'deuterium' => 100000,21 => array ( 'Metal' => 400,'crystal' => 200,'deuterium' => 100,22 => array ( 'Metal' => 2000,'crystal' => 0,23 => array ( 'Metal' => 2000,'crystal' => 1000,24 => array ( 'Metal' => 2000,'crystal' => 2000,31 => array ( 'Metal' => 200,'crystal' => 400,33 => array ( 'Metal' => 0,'crystal' => 50000,'energy' => 1000,34 => array ( 'Metal' => 20000,'crystal' => 40000,41 => array ( 'Metal' => 20000,'deuterium' => 20000,42 => array ( 'Metal' => 20000,43 => array ( 'Metal' => 2000000,'crystal' => 4000000,'deuterium' => 2000000,44 => array ( 'Metal' => 20000,'crystal' => 20000,'deuterium' => 1000,106 => array ( 'Metal' => 200,108 => array ( 'Metal' => 0,'deuterium' => 600,109 => array ( 'Metal' => 800,110 => array ( 'Metal' => 200,'crystal' => 600,111 => array ( 'Metal' => 1000,113 => array ( 'Metal' => 0,'crystal' => 800,'deuterium' => 400,114 => array ( 'Metal' => 0,'crystal' => 4000,'deuterium' => 2000,115 => array ( 'Metal' => 400,117 => array ( 'Metal' => 2000,'deuterium' => 6000,118 => array ( 'Metal' => 10000,120 => array ( 'Metal' => 200,'crystal' => 100,121 => array ( 'Metal' => 1000,'crystal' => 300,122 => array ( 'Metal' => 2000,123 => array ( 'Metal' => 240000,'crystal' => 400000,'deuterium' => 160000,124 => array ( 'Metal' => 4000,'crystal' => 8000,'deuterium' => 4000,199 => array ( 'Metal' => 0,'energy_max' => 300000,'factor' => 3),202 => array ( 'Metal' => 2000,'energy' => 0,'factor' => 1,'consumption' => 20,'consumption2' => 40,'speed' => 5000,'speed2' => 10000,'capacity' => 5000 ),203 => array ( 'Metal' => 6000,'crystal' => 6000,'consumption' => 50,'consumption2' => 50,'speed' => 7500,'speed2' => 7500,'capacity' => 25000 ),204 => array ( 'Metal' => 3000,'consumption2' => 20,'speed' => 12500,'speed2' => 12500,'capacity' => 50 ),205 => array ( 'Metal' => 6000,'consumption' => 75,'consumption2' => 75,'speed' => 10000,'speed2' => 15000,'capacity' => 100 ),206 => array ( 'Metal' => 20000,'crystal' => 7000,'consumption' => 300,'consumption2' => 300,'speed' => 15000,'capacity' => 800 ),207 => array ( 'Metal' => 45000,'crystal' => 15000,'consumption' => 500,'consumption2' => 500,'capacity' => 1500 ),208 => array ( 'Metal' => 10000,'deuterium' => 10000,'consumption' => 1000,'consumption2' => 1000,'speed' => 2500,'speed2' => 2500,'capacity' => 7500 ),209 => array ( 'Metal' => 10000,'speed' => 2000,'speed2' => 2000,'capacity' => 20000 ),210 => array ( 'Metal' => 0,'consumption' => 1,'consumption2' => 1,'speed' => 100000000,'speed2' => 100000000,'capacity' => 5 ),211 => array ( 'Metal' => 50000,'crystal' => 25000,'deuterium' => 15000,'speed' => 4000,'speed2' => 5000,'capacity' => 500 ),212 => array ( 'Metal' => 0,'deuterium' => 500,'consumption' => 0,'consumption2' => 0,'speed' => 0,'speed2' => 0,'capacity' => 0 ),213 => array ( 'Metal' => 60000,'capacity' => 2000 ),214 => array ( 'Metal' => 5000000,'deuterium' => 1000000,'speed' => 100,'speed2' => 100,'capacity' => 1000000 ),215 => array ( 'Metal' => 30000,'consumption' => 250,'consumption2' => 250,'capacity' => 750 ),401 => array ( 'Metal' => 2000,'factor' => 1 ),402 => array ( 'Metal' => 1500,'crystal' => 500,403 => array ( 'Metal' => 6000,404 => array ( 'Metal' => 20000,405 => array ( 'Metal' => 2000,406 => array ( 'Metal' => 50000,'deuterium' => 30000,407 => array ( 'Metal' => 10000,'crystal' => 10000,408 => array ( 'Metal' => 50000,502 => array ( 'Metal' => 8000,503 => array ( 'Metal' => 12500,'crystal' => 2500,601 => array ( 'max' => 20),602 => array ( 'max' => 20),603 => array ( 'max' => 10),604 => array ( 'max' => 10),605 => array ( 'max' => 3),606 => array ( 'max' => 3),607 => array ( 'max' => 2),608 => array ( 'max' => 2),609 => array ( 'max' => 1),610 => array ( 'max' => 2),611 => array ( 'max' => 2),612 => array ( 'max' => 1),613 => array ( 'max' => 3),614 => array ( 'max' => 1),615 => array ( 'max' => 1),); //船舰和防御战斗数值定义 //'shield' =>护盾强度,'attack' =>攻击强度,'sd' =>速射值 $CombatCaps = array( 202 => array ( 'shield' => 10,'attack' => 5,'sd' => array (202 => 1,203 => 1,204 => 1,205 => 1,206 => 1,207 => 1,208 => 1,209 => 1,210 => 5,211 => 1,212 => 5,213 => 1,214 => 1,215 => 1,401 => 1,402 => 1,403 => 1,404 => 1,405 => 1,406 => 1,407 => 1,408 => 1 )),203 => array ( 'shield' => 25,204 => array ( 'shield' => 10,'attack' => 50,'sd' => array (202 => 2,205 => array ( 'shield' => 25,'attack' => 150,'sd' => array (202 => 3,206 => array ( 'shield' => 50,'attack' => 400,204 => 6,401 => 10,207 => array ( 'shield' => 200,'attack' => 1000,401 => 8,208 => array ( 'shield' => 100,209 => array ( 'shield' => 10,'attack' => 1,210 => array ( 'shield' => 0,'attack' => 0,'sd' => array (202 => 0,203 => 0,204 => 0,205 => 0,206 => 0,207 => 0,208 => 0,209 => 0,210 => 0,211 => 0,212 => 0,213 => 0,214 => 0,215 => 0,401 => 0,402 => 0,403 => 0,404 => 0,405 => 0,406 => 0,407 => 0,408 => 0 )),211 => array ( 'shield' => 500,401 => 20,402 => 20,403 => 10,405 => 10,212 => array ( 'shield' => 10,210 => 1,213 => array ( 'shield' => 500,'attack' => 2000,215 => 2,402 => 10,214 => array ( 'shield' => 50000,'attack' => 200000,'sd' => array (202 => 250,203 => 250,204 => 200,205 => 100,206 => 33,207 => 30,208 => 250,209 => 250,210 => 1250,211 => 25,212 => 1250,213 => 5,215 => 15,401 => 200,402 => 200,403 => 100,404 => 50,405 => 100,215 => array ( 'shield' => 400,'attack' => 700,203 => 3,205 => 4,206 => 4,207 => 7,401 => array ( 'shield' => 20,'attack' => 80,215 => 1) ),402 => array ( 'shield' => 25,'attack' => 100,403 => array ( 'shield' => 100,'attack' => 250,404 => array ( 'shield' => 200,'attack' => 1100,405 => array ( 'shield' => 500,406 => array ( 'shield' => 300,'attack' => 3000,407 => array ( 'shield' => 2000,408 => array ( 'shield' => 2000,502 => array ( 'shield' => 1,'attack' => 1 ),503 => array ( 'shield' => 1,'attack' => 12000 ) ); //资源生产和能量消耗公式 $ProdGrid = array( // 金属矿 1 => array( 'Metal' => 40,'crystal' => 10,'deuterium' => 0,'factor' => 3/2,'formule' => array( 'Metal' => 'return (30 * $BuildLevel * pow((1.1),$BuildLevel)) * (0.1 * $BuildLevelFactor);','crystal' => 'return "0";','deuterium' => 'return "0";','energy' => 'return - (10 * $BuildLevel * pow((1.1),$BuildLevel)) * (0.1 * $BuildLevelFactor);') ),// 晶体矿 2 => array( 'Metal' => 30,'crystal' => 15,'factor' => 1.6,'formule' => array( 'Metal' => 'return "0";','crystal' => 'return (20 * $BuildLevel * pow((1.1),// HH矿 3 => array( 'Metal' => 150,'crystal' => 50,'deuterium' => 'return ((10 * $BuildLevel * pow((1.1),$BuildLevel)) * (-0.002 * $BuildTemp + 1.28)) * (0.1 * $BuildLevelFactor);','energy' => 'return - (30 * $BuildLevel * pow((1.1),// 太阳能 4 => array( 'Metal' => 50,'crystal' => 20,'energy' => 'return (20 * $BuildLevel * pow((1.1),// 核电厂 12 => array( 'Metal' => 500,'crystal' => 200,'deuterium' => 100,'factor' => 1.8,'deuterium' => 'return - (10 * $BuildLevel * pow((1.1),'energy' => 'return (50 * $BuildLevel * pow((1.1),// 太阳能卫星 212 => array( 'Metal' => 0,'crystal' => 2000,'deuterium' => 500,'factor' => 0.5,'energy' => 'return (($BuildTemp / 4) + 20) * $BuildLevel * (0.1 * $BuildLevelFactor);') ) ); //所有单位是否启用定义 //即使前面定义了的单位,这里如果不加入,也是不起作用的 $reslist['build'] = array ( 1,2,3,4,12,14,15,21,22,23,24,31,33,34,44,41,42,43 ); $reslist['tech'] = array ( 106,108,109,110,111,113,114,115,117,118,120,121,122,123,124,199 ); $reslist['fleet'] = array ( 202,203,204,205,206,207,208,209,210,211,212,213,214,215 ); $reslist['defense'] = array ( 401,402,403,404,405,406,407,408,502,503 ); $reslist['officier'] = array ( 601,602,603,604,605,606,607,608,609,610,611,612,613,614,615); $reslist['prod'] = array ( 1,212 );

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐