-
Пилот
Ответ: Dedicated Server
типа, счетчик времени отпал.
где-то в этом куске кода ошибка возникает:
... tick() {
00793 validateTowAircraft();
00794 if(dying == 0)
00795 {
00796 long l = Time.tickNext();
00797 if(Mission.isCoop())
00798 l = NetServerParams.getServerTime() + (long)Time.tickLen();
00799 if(path != null)
00800 {
00801 computeInterpolatedDPR(l);
00802 setMovablePosition(l);
00803 } else
00804 if(computeInterpolatedDPR(l))
00805 setPosition();
00806 boolean flag = false;
00807 if(wakeupTmr == 0L)
00808 {
00809 for(int j = 0; j < prop.nGuns; j++)
00810 if(parts[arms[j].part_idx].state == 0)
00811 {
00812 arms[j].aime.tick_();
00813 flag = true;
00814 }
00815
00816 } else
00817 {
00818 for(int k = 0; k < prop.nGuns; k++)
00819 {
00820 if(parts[arms[k].part_idx].state != 0)
00821 continue;
00822 flag = true;
00823 break;
00824 }
00825
00826 if(wakeupTmr > 0L)
00827 wakeupTmr--;
00828 else
00829 if(++wakeupTmr == 0L)
00830 if(isAnyEnemyNear())
00831 wakeupTmr = BigshipGeneric.SecsToTicks(BigshipGeneric.Rnd(DELAY_WAKEUP, DELAY_WAKEUP * 1.2F));
00832 else
00833 wakeupTmr = -BigshipGeneric.SecsToTicks(BigshipGeneric.Rnd(4F, 7F));
00834 }
00835 if(flag)
00836 send_bufferized_FireCommand();
00837 if(isNetMirror())
00838 mirror_send_bufferized_Damage();
00839 else
00840 if(netsendPartsState_needtosend)
00841 send_bufferized_PartsState();
00842 return true;
00843 }
00844 if(dying == 3)
00845 {
00846 if(path != null || !Mission.isDeathmatch())
00847 {
00848 eraseGuns();
00849 return false;
00850 }
00851 if(respawnDelay-- > 0L)
00852 return true;
00853 if(!isNetMaster())
00854 {
00855 respawnDelay = 10000L;
00856 return true;
00857 } else
00858 {
00859 wakeupTmr = 0L;
00860 makeLive();
00861 forgetAllAiming();
00862 setDefaultLivePose();
00863 setDiedFlag(false);
00864 tmInterpoStart = tmInterpoEnd = 0L;
00865 bodyDepth = bodyPitch = bodyRoll = 0.0F;
00866 bodyDepth0 = bodyPitch0 = bodyRoll0 = 0.0F;
00867 bodyDepth1 = bodyPitch1 = bodyRoll1 = 0.0F;
00868 setPosition();
00869 pos.reset();
00870 send_RespawnCommand();
00871 return true;
00872 }
00873 }
00874 if(netsendPartsState_needtosend)
00875 send_bufferized_PartsState();
00876 long l1 = Time.tickNext();
00877 if(dying == 1)
00878 {
00879 if(l1 >= tmInterpoEnd)
00880 {
00881 bodyDepth0 = bodyDepth1;
00882 bodyPitch0 = bodyPitch1;
00883 bodyRoll0 = bodyRoll1;
00884 bodyDepth1 = sink2Depth;
00885 bodyPitch1 = sink2Pitch;
00886 bodyRoll1 = sink2Roll;
00887 tmInterpoStart = tmInterpoEnd;
00888 tmInterpoEnd = sink2timeWhenStop;
00889 dying = 2;
00890 }
00891 } else
00892 if(l1 >= tmInterpoEnd)
00893 {
00894 bodyDepth0 = bodyDepth1 = sink2Depth;
00895 bodyPitch0 = bodyPitch1 = sink2Pitch;
00896 bodyRoll0 = bodyRoll1 = sink2Roll;
00897 tmInterpoStart = tmInterpoEnd = 0L;
00898 dying = 3;
00899 }
00900 if((Time.tickCounter() & 0x63) == 0 && dsmoks != null)
00901 {
00902 for(int i = 0; i < dsmoks.length; i++)
00903 if(dsmoks[i] != null && dsmoks[i].pipe != null && dsmoks[i].pipe.pos.getAbsPoint().z < -4.891D)
00904 {
00905 Eff3DActor.finish(dsmoks[i].pipe);
00906 dsmoks[i].pipe = null;
00907 }
00908
00909 }
00910 computeInterpolatedDPR(l1);
00911 if(path != null)
00912 setMovablePosition(timeOfDeath);
00913 else
00914 setPosition();
00915 return true;
00916 }
p/s/ карта с кораблями? и что в логах клиентов в этот момент? и неплохо бы пару строчек предшествующих ошибке. java.lang.
p/p/s/ еще подумалось, а GC.CMD часто запускается? может уменьшить интервал между запусками?
Крайний раз редактировалось LePage; 12.12.2009 в 16:38.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума