drop_weight语句翻译
有大神看得懂这个语句么?这个文件在event\deposits里 顺便问一下:AI优先选择权重大的还是权重小的? 没看懂
大概明白一点点是说如果行星权重为1,如果小行星权重为3?最后那个faction不明白。 本帖最后由 sssjda 于 2016-7-4 18:56 编辑
之前没有看群星的脚本,刚才大致看了下这个文件,根据代码我猜的啊,以下我添加注释:
d_vast_mineral_deposit = {
resources = { minerals = 3 }//资源 3 矿
station = shipclass_mining_station //采矿船
orbital_weight = {//这个没有做试验存属猜测了,大概是计算总全职用的(因为代码中总权重的计算不可能涉及drop_weight里的诸多条件),或者出现在地图之上的权重,星系生成的时候用的
weight = 30
}
drop_weight = {
weight = 0//这个是探索后资源“掉落”出来的权重,默认为0
modifier = { //当是以下行星种类时权重改为1
weight = 1
planet = {
OR = { //逻辑或
is_planet_class = pc_gaia
is_planet_class = pc_continental
is_planet_class = pc_ringworld_habitable
is_planet_class = pc_tropical
is_planet_class = pc_ocean
is_planet_class = pc_arid
is_planet_class = pc_desert
is_planet_class = pc_tundra
is_planet_class = pc_arctic
is_planet_class = pc_frozen
is_planet_class = pc_molten
is_planet_class = pc_toxic
}
}
}
modifier = { //是小行星时权重改为3
weight = 3
planet = {
is_asteroid = yes
}
}
modifier = { //factor在文本头上注释的是添加,可见以上代码是按顺序执行的,如果同时符合上面的条某个条件和符合以下条件,就再加0.5权重
factor = 0.5
planet = {
is_asteroid = yes
is_in_cluster = resource_cluster_0
}
}
}
}
关于权重算法,一般都是遍历循环得出一个总数total, 用当前数current除以它,就是概率了,即概率百分比 percent = current/total
文本第一行是空资源行星的概率,有一行是黑洞的权重是0,所以游戏里遇到的黑洞总是有资源的
本帖最后由 sssjda 于 2016-7-4 19:00 编辑
算法猜测伪代码
float current = current.getDropWeight();
float total = 0;
for(deposit in deposits[]) {
total += deposit.orbital_weight.weight;
}
returncurrent / total; 问题已经解决了,谢谢
页:
[1]