|
发表于 2008-3-7 13:22:13
|
显示全部楼层
来自 中国–甘肃–兰州
回复: [求助]1.6魔兽9族保留经验服问题
4. 魔兽商店的价格不再是固定不变的,而是取决于玩家的等级,等级越低,打折下来就越便宜,相反,玩家的等级越高,物品就卖得越贵.主要是为了蘅平等级相差悬殊的问题,防止贫富两极分化.不过我觉得这个作用不是很大,并且价格变来变去也很不适应,最后我对这部分代码做了修改,已经可以把价格固定了.还有就是,玩家可以在同一个商店里购买两种物品,更加自由了,若再购买第三个物品,将有相关的提示问玩家希望新物品替换哪个旧物品. 呵呵~ 你是说上面的这个问题对吧?不过我首先得说明一下,其实魔兽插件v3.0里面默认的商店物品的价格和以前的魔兽插件v2.3.2是一样的,完全是按照官方网的默认配置,并没有做改动,这个价格是官方网的发布者经过魔兽插件的多次更新后才最终确定的,因此是经过公测的比较合理的价格。(当然,源代码是公开的,广大玩家也可以根据个人的爱好自行修改。)
另外,如果玩家不喜欢商店物品价格的固定模式,而是喜欢用打折的方法来确定价格,从而蘅平等级相差悬殊的问题,防止贫富两极分化的话,也是可以的,只要对war3ft的源代码略做改动就行了,而关于价格可以打折这部分的代码其实我并没有删除掉,只不过用“//”这样的符号注释掉了而以。恢复价格可以打折的方法如下:
先打开amxmodx\scripting\war3ft这个文件夹,然后再打开items.inl这个文件,找到下面的这些代码:// We created this to allow for different prices of items at different levels
ITEM_Cost( id, iItem )
{
// How much should ratio increase per level?
//new Float:fInc = ( 1.0 - ITEM_COST_RATIO ) / float( MAX_LEVELS );
new Float:fInc = ( 1.0 - ITEM_COST_RATIO + ITEM_COST_RATIO);
// Cost * ratio (ITEM_COST_RATIO to 1.0 dependent on level)
//new Float:fRatio = (float( p_data[id][P_LEVEL] ) * fInc) + ITEM_COST_RATIO;
new Float:fRatio = ( ( float( p_data[id][P_LEVEL] ) - float( p_data[id][P_LEVEL] ) ) * fInc ) + fInc;
return floatround( float( ITEM_COST[iItem] ) * fRatio );
} 修改成下面的样子后,重新编译war3ft.sma的源代码就可以了。// We created this to allow for different prices of items at different levels
ITEM_Cost( id, iItem )
{
// How much should ratio increase per level?
new Float:fInc = ( 1.0 - ITEM_COST_RATIO ) / float( MAX_LEVELS );
// Cost * ratio (ITEM_COST_RATIO to 1.0 dependent on level)
new Float:fRatio = (float( p_data[id][P_LEVEL] ) * fInc) + ITEM_COST_RATIO;
return floatround( float( ITEM_COST[iItem] ) * fRatio );
} |
|