中国虚拟军事网(VME)- 专注于武装突袭系列虚拟军事游戏

 找回密码
 加入VME

QQ登录

只需一步,快速开始

搜索
查看: 1983|回复: 5

[灌水] 正在写一个脚本,大家猜猜我是想干什么

[复制链接]
发表于 2014-5-26 21:02:19 | 显示全部楼层 |阅读模式
估计除虫得花好久时间,而且效果不会太完美

//init.sqf

has_spare_magazine=
{
        _has=false;
        {
        scopeName "check";
        if( (getText(configFile>>"cfgMagazines">>_x select 0>>"ammo")==_this select 0)&&(_x select 1>0) ) then {_has=true;breakout "check";};
        }foreach (magazinesAmmo player);
        _has;
};

reload_keyDown=
{
        _key=_this select 1;if(_key!=[false, false, false, 19])exitWith{false;};
        _wpn=weaponstate player select 0;if(_wpn=="")exitWith{false;};
        _mag=weaponstate player select 3;if(_mag=="")exitWith{false;};
        _ammocount=weaponstate player select 4;if(_ammocount==0)exitWith{false;};
        _ammo=getText(configFile>>"cfgMagazines">>_mag>>"ammo");
        _muzzle=weaponstate player select 1;

        if (!(_mag in getArray(configFile>>"CfgWeapons">>GL_3GL_F>>"magazines"))&&{[_ammo] call has_spare_magazine}&&(vehicle player==player)) then
        {
                _wpntype=0;
                if (_wpn==secondaryWeapon player) then {_wpntype=1;};
                if (_wpn==handgunWeapon player) then {_wpntype=2;};

                if ((_muzzle!=weapon_loaded select _wpntype)||(_ammo!=ammo_loaded select _wpntype)) then {
                        weapon_loaded select _wpntype=_muzzle;
                        ammo_loaded select _wpntype=_ammo;
                        player setAmmo [_muzzle, _ammocount-1];
                        hint "Loading a bullet into chamber, remove a bullet from current mag";
                }
                else{
                        hint "Already has a bullet in chamber, no need to remove anything";
                };
        };

        false;
};

load_chambered=
{
        _wpn=weaponstate player select 0;if(_wpn=="")exitWith{false;};
        _mag=weaponstate player select 3;if(_mag=="")exitWith{false;};
        _ammocount=weaponstate player select 4;if(_ammocount==0)exitWith{false;};
        _ammo=getText(configFile>>"cfgMagazines">>_mag>>"ammo");
        _muzzle=weaponstate player select 1;

        _wpntype=0;
        if (_wpn==secondaryWeapon player) then {_wpntype=1;};
        if (_wpn==handgunWeapon player) then {_wpntype=2;};

        if ((_muzzle==weapon_loaded select _wpntype)&&(_ammo==ammo_loaded select _wpntype)) then {
                weapon_loaded select _wpntype="";
                ammo_loaded select _wpntype="";
                player setAmmo [_muzzle, _ammocount+1];
                hint "Loading a bullet from chamber to current mag";
        }
        else{
                hint "Wrong muzzle, bullet not add";
        };
};

weapon_loaded=["","",""];
ammo_loaded=["","",""];
waitUntil {!(isNull (findDisplay 46))};
(findDisplay 46) displayAddEventHandler ["KeyDown", "_this call reload_keyDown;"];
//waitUntil {alive player};
player addEventHandler ["fired", "_this call load_chambered;"]

systemChat "Tactical Reload Ammo Count Mod Initialized";

发表于 2014-5-26 22:32:10 | 显示全部楼层
戰術裝彈???
 楼主| 发表于 2014-5-27 00:57:24 | 显示全部楼层
本帖最后由 gpgpgpgp 于 2014-5-27 01:03 编辑

嗯,主要是模拟BF3,汤姆克兰西等弹夹没打完换弹后装弹显示31发这个特性...其实从引擎上实现起来比较简单,只是BI懒得做罢了...
吃饭的时候,顺手写了一个脚本...打算做成Mod用...太困...懒得调试了...
目前主要的问题是:
1.对多人不熟悉,多半只能单机用;
2.引擎限制显示不了31这个美妙的数字,只能做到打完1发后立马补上1发,在脚本不卡的情况下看起来应该是换上一个满弹夹30发,开了一枪还是显示30发这样...
3.由于采用了如2.所示的方法,这个脚本每开一枪都得判断一次有无弹上膛...无法做到最优化...尤其是在我这种打了GL5+bCombat+ASR A3+AISS2+TPW一起上这么多的Mod后,虽然步兵对射有趣程度大幅提高,但是死若干次不断读档后脚本空间就会变得一卡一卡的,再加上这个会不会雪上加霜呢?
4.很纠结引擎在存档读档时对脚本是如何处理的...保不保存呢?如果保存,代码写得不慎,载入存档会不会造成双开...甚至N重开呢?如果不保存,又让它如何被重新调用呢?更有甚者,如果在很卡的时候保存,会不会只存了一半,因而在读档的时候造成不可预料的Bug*呢?!!!
*传说中BI的脚本空间很不稳定,滥用资源导致泄漏出错会出现各类“表叔”(背包里突然塞满了手表手机手雷汉堡之类)的趣味现象...总之要纠结的很多啊...于是乎还是先洗洗睡了吧...
发表于 2014-5-27 08:20:04 | 显示全部楼层
gpgpgpgp 发表于 2014-5-27 00:57
嗯,主要是模拟BF3,汤姆克兰西等弹夹没打完换弹后装弹显示31发这个特性...其实从引擎上实现起来比较简单, ...

貌似保存后重新载入,不会重新载入一次脚本的。。。上次停在哪里就继续运行下去
发表于 2014-5-27 16:17:10 | 显示全部楼层
新警察故事结尾,成龙和吴彦祖在天台上第二次比组装手枪,成龙直接往枪膛里先顺手塞了颗子弹,吴彦祖斜眼看见就乱了方寸。。。。这细节真到位啊。
但是游戏嘛,咳咳。。
发表于 2014-5-27 22:49:13 | 显示全部楼层
为了一个小细节牺牲本来就不怎么样的计算导致游戏很卡个人觉得不是很划算。。。。

我现在编自己的任务和脚本都要考虑计算量了。 A3本来优化就不是那么好

不过探索精神和严谨考虑还是赞一下!
您需要登录后才可以回帖 登录 | 加入VME

本版积分规则

小黑屋|中国虚拟军事网

GMT+8, 2024-5-3 21:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表