예제 #1
0
        //---------------------------------------------------------------------
        // 客户端请求手动发炮
        public void c2sManualFire(int bullet_objid, float turret_angle, int turret_rate, int locked_fish_id)
        {
            if (!_canLockFish())
            {
                locked_fish_id = -1;
            }

            // 扣币
            int cur_gold = mScene.getListener().onLogicSceneGetPlayerGold(mPlayer.et_player_rpcid);

            if (cur_gold < turret_rate)
            {
                return;
            }

            cur_gold -= turret_rate;
            mScene.getListener().onLogicSceneSetPlayerGold(mPlayer.et_player_rpcid, cur_gold, -1, "TurretFire", turret_rate);

            mTurretAngle = turret_angle;
            mTurretRate  = turret_rate;

            // 创建子弹
            float        level_cur_second = mScene.getLevel().getCurSecond();
            CLogicBullet bullet           = new CLogicBullet(mScene);

            bullet.create(mPlayer.et_player_rpcid, bullet_objid, mTurretRate,
                          -1, getFirePos(), mTurretAngle, CBulletConstant.ManualSpeed);
            if (!mMapBullet.ContainsKey(bullet_objid))
            {
                mMapBullet[bullet_objid] = bullet;
            }
            else
            {
                bullet.Dispose();
                bullet = null;
            }

            // 服务端广播发炮
            mScene.getProtocol().s2allcManualFire(mPlayer.et_player_rpcid,
                                                  bullet_objid, turret_angle, turret_rate, locked_fish_id);
        }
예제 #2
0
        //---------------------------------------------------------------------
        // 客户端请求自动发炮
        public void c2sAutoFire(Queue <_tBullet> que_bullet)
        {
            Queue <_tBullet> que_bullet2 = new Queue <_tBullet>();

            foreach (var bullet_struct in que_bullet)
            {
                // 扣币
                int cur_gold = mScene.getListener().onLogicSceneGetPlayerGold(mPlayer.et_player_rpcid);
                if (cur_gold < bullet_struct.turret_rate)
                {
                    return;
                }

                cur_gold -= bullet_struct.turret_rate;
                mScene.getListener().onLogicSceneSetPlayerGold(mPlayer.et_player_rpcid, cur_gold, -1, "TurretFire", bullet_struct.turret_rate);

                mTurretAngle = bullet_struct.turret_angle;
                mTurretRate  = bullet_struct.turret_rate;

                // 创建子弹
                float        level_cur_second = mScene.getLevel().getCurSecond();
                CLogicBullet bullet           = new CLogicBullet(mScene);
                bullet.create(mPlayer.et_player_rpcid, bullet_struct.bullet_objid, mTurretRate, -1, getFirePos(), mTurretAngle, getBulletSpeed());
                if (!mMapBullet.ContainsKey(bullet_struct.bullet_objid))
                {
                    mMapBullet[bullet_struct.bullet_objid] = bullet;
                }
                else
                {
                    bullet.Dispose();
                    bullet = null;
                }

                que_bullet2.Enqueue(bullet_struct);
            }

            // 服务端广播自动发炮
            mScene.getProtocol().s2allcAutoFire(mPlayer.et_player_rpcid, que_bullet2);
        }
예제 #3
0
        //---------------------------------------------------------------------
        // 客户端请求自动发炮
        public void c2sAutoFire(Queue<_tBullet> que_bullet)
        {
            Queue<_tBullet> que_bullet2 = new Queue<_tBullet>();
            foreach (var bullet_struct in que_bullet)
            {
                // 扣币
                int cur_gold = mScene.getListener().onLogicSceneGetPlayerGold(mPlayer.et_player_rpcid);
                if (cur_gold < bullet_struct.turret_rate)
                {
                    return;
                }

                cur_gold -= bullet_struct.turret_rate;
                mScene.getListener().onLogicSceneSetPlayerGold(mPlayer.et_player_rpcid, cur_gold, -1, "TurretFire", bullet_struct.turret_rate);

                mTurretAngle = bullet_struct.turret_angle;
                mTurretRate = bullet_struct.turret_rate;

                // 创建子弹
                float level_cur_second = mScene.getLevel().getCurSecond();
                CLogicBullet bullet = new CLogicBullet(mScene);
                bullet.create(mPlayer.et_player_rpcid, bullet_struct.bullet_objid, mTurretRate, -1, getFirePos(), mTurretAngle, getBulletSpeed());
                if (!mMapBullet.ContainsKey(bullet_struct.bullet_objid))
                {
                    mMapBullet[bullet_struct.bullet_objid] = bullet;
                }
                else
                {
                    bullet.Dispose();
                    bullet = null;
                }

                que_bullet2.Enqueue(bullet_struct);
            }

            // 服务端广播自动发炮
            mScene.getProtocol().s2allcAutoFire(mPlayer.et_player_rpcid, que_bullet2);
        }
예제 #4
0
        //---------------------------------------------------------------------
        // 客户端请求手动发炮
        public void c2sManualFire(int bullet_objid, float turret_angle, int turret_rate, int locked_fish_id)
        {
            if (!_canLockFish())
            {
                locked_fish_id = -1;
            }

            // 扣币
            int cur_gold = mScene.getListener().onLogicSceneGetPlayerGold(mPlayer.et_player_rpcid);
            if (cur_gold < turret_rate)
            {
                return;
            }

            cur_gold -= turret_rate;
            mScene.getListener().onLogicSceneSetPlayerGold(mPlayer.et_player_rpcid, cur_gold, -1, "TurretFire", turret_rate);

            mTurretAngle = turret_angle;
            mTurretRate = turret_rate;

            // 创建子弹
            float level_cur_second = mScene.getLevel().getCurSecond();
            CLogicBullet bullet = new CLogicBullet(mScene);

            bullet.create(mPlayer.et_player_rpcid, bullet_objid, mTurretRate,
                -1, getFirePos(), mTurretAngle, CBulletConstant.ManualSpeed);
            if (!mMapBullet.ContainsKey(bullet_objid))
            {
                mMapBullet[bullet_objid] = bullet;
            }
            else
            {
                bullet.Dispose();
                bullet = null;
            }

            // 服务端广播发炮
            mScene.getProtocol().s2allcManualFire(mPlayer.et_player_rpcid,
                bullet_objid, turret_angle, turret_rate, locked_fish_id);
        }