Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled diff
생성일
11년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
9 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
180 행
복사
20 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
191 행
복사
/*
/*
복사
복사됨
복사
복사됨
specfix.u 9.
41
Kb (
9636
byte)
specfix.u 9.
78
Kb (
10017
byte)
26 january
200
6
y.,
3:06:38
9 december
200
0
y.,
16:48:56
CRC32:
B3DB93D0
CRC32:
89BF9DA3
MD5:
30C1D03DF171869CC073114C65549917
MD5:
3DCAFC88D82861FD16E735DE7EC9A772
SHA-1:
3D1A5720AA992ABB6C1523255F670FE64DFC038F
SHA-1:
A543880F09072D66D3A633F79E924212D4E1DC26
*/
*/
// ============================================================
// ============================================================
// specfix-1.specitem: enables behindview on default, removes viewtargets belt and resets "rolled" views
// specfix-1.specitem: enables behindview on default, removes viewtargets belt and resets "rolled" views
// interpolates missing viewrotation updates
// interpolates missing viewrotation updates
// by =NUB=garfield with great help from Mongo
// by =NUB=garfield with great help from Mongo
// ============================================================
// ============================================================
class specitem expands UMenuModMenuItem;
class specitem expands UMenuModMenuItem;
var specticker mytick;
var specticker mytick;
var float lastchecked;
var float lastchecked;
var inventory inv;
var inventory inv;
var playerpawn p, sp;
var playerpawn p, sp;
var levelinfo elvl;
var levelinfo elvl;
var ut_shieldbelteffect belt;
var ut_shieldbelteffect belt;
var weapon w;
var weapon w;
// prediction stuff
// prediction stuff
var float timepassed, totaltime, predictiontime;
var float timepassed, totaltime, predictiontime;
var rotator lastrotation, realtargetrotation;
var rotator lastrotation, realtargetrotation;
var int updatetimes, pitchdiff, yawdiff, tmppitch, tmpyaw;
var int updatetimes, pitchdiff, yawdiff, tmppitch, tmpyaw;
var float pitchrate, yawrate;
var float pitchrate, yawrate;
function setup()
function setup()
{
{
super.setup();
super.setup();
elvl = menuitem.owner.getentrylevel();
elvl = menuitem.owner.getentrylevel();
}
}
function execute()
function execute()
{
{
menuitem.bchecked=!menuitem.bchecked;
menuitem.bchecked=!menuitem.bchecked;
if (menuitem.bchecked)
if (menuitem.bchecked)
{
{
if (mytick == none)
if (mytick == none)
{
{
mytick = elvl.spawn(class'specticker');
mytick = elvl.spawn(class'specticker');
mytick.spectick=self;
mytick.spectick=self;
menuitem.owner.GetPlayerOwner().UpdateURL("OverrideClass", "Botpack.CHSpectator", True);
menuitem.owner.GetPlayerOwner().UpdateURL("OverrideClass", "Botpack.CHSpectator", True);
}
}
}
}
else
else
{
{
foreach elvl.allactors(class'specticker', mytick)
foreach elvl.allactors(class'specticker', mytick)
{
{
mytick.spectick=none;
mytick.spectick=none;
mytick.destroy();
mytick.destroy();
}
}
menuitem.owner.GetPlayerOwner().UpdateURL("OverrideClass", "", True);
menuitem.owner.GetPlayerOwner().UpdateURL("OverrideClass", "", True);
}
}
}
}
function setbasicstuff()
function setbasicstuff()
{
{
if (p != none)
if (p != none)
{
{
p.viewrotation.roll=0;
p.viewrotation.roll=0;
sp.targetviewrotation.roll=0;
sp.targetviewrotation.roll=0;
복사
복사됨
복사
복사됨
p.weapon.bhid
eweapo
n = true;
p.weapon.bhid
de
n = true;
sp.bbehindview=false;
sp.bbehindview=false;
};
};
}
}
복사
복사됨
복사
복사됨
function weaponreset()
{
foreach sp.allactors(class'weapon', w)
{
if ( (w.owner != p) && (w.owner != none) )
{
w.bhidden = false;
}
};
}
function beltstuff()
function beltstuff()
{
{
foreach sp.allactors(class'ut_shieldbelteffect', belt)
foreach sp.allactors(class'ut_shieldbelteffect', belt)
{
{
if (belt.owner == p)
if (belt.owner == p)
{
{
belt.bhidden = true;
belt.bhidden = true;
}
}
else
else
{
{
if (belt.owner.style != STY_Translucent)
if (belt.owner.style != STY_Translucent)
{
{
belt.bhidden = false;
belt.bhidden = false;
};
};
}
}
};
};
}
}
function gotupdated()
function gotupdated()
{
{
totaltime += timepassed;
totaltime += timepassed;
updatetimes++;
updatetimes++;
predictiontime = totaltime/updatetimes;
predictiontime = totaltime/updatetimes;
realtargetrotation = sp.targetviewrotation;
realtargetrotation = sp.targetviewrotation;
sp.targetviewrotation = lastrotation;
sp.targetviewrotation = lastrotation;
lastrotation = realtargetrotation;
lastrotation = realtargetrotation;
//log("udt"@timepassed);
//log("udt"@timepassed);
//log("upd"@realtargetrotation);
//log("upd"@realtargetrotation);
pitchdiff = (realtargetrotation.pitch - sp.targetviewrotation.pitch);
pitchdiff = (realtargetrotation.pitch - sp.targetviewrotation.pitch);
yawdiff = (realtargetrotation.yaw - sp.targetviewrotation.yaw);
yawdiff = (realtargetrotation.yaw - sp.targetviewrotation.yaw);
normdiff(pitchdiff);
normdiff(pitchdiff);
normdiff(yawdiff);
normdiff(yawdiff);
pitchrate = pitchdiff/(predictiontime);
pitchrate = pitchdiff/(predictiontime);
yawrate = yawdiff/(predictiontime);
yawrate = yawdiff/(predictiontime);
//log("unr"@pitchrate@", "@yawrate);
//log("unr"@pitchrate@", "@yawrate);
timepassed = 0;
timepassed = 0;
}
}
function normdiff(out int diff)
function normdiff(out int diff)
{
{
//log("nnorm"@diff);
//log("nnorm"@diff);
if (diff > 32767) {diff -= 65536;};
if (diff > 32767) {diff -= 65536;};
if (diff < -32767) {diff += 65536;};
if (diff < -32767) {diff += 65536;};
//log("normed"@diff);
//log("normed"@diff);
}
}
function renorm(out int a)
function renorm(out int a)
{
{
a = a&65535;
a = a&65535;
}
}
function setnewrate(float deltatime)
function setnewrate(float deltatime)
{
{
pitchdiff = (realtargetrotation.pitch - sp.targetviewrotation.pitch);
pitchdiff = (realtargetrotation.pitch - sp.targetviewrotation.pitch);
yawdiff = (realtargetrotation.yaw - sp.targetviewrotation.yaw);
yawdiff = (realtargetrotation.yaw - sp.targetviewrotation.yaw);
normdiff(pitchdiff);
normdiff(pitchdiff);
normdiff(yawdiff);
normdiff(yawdiff);
pitchrate = 2*pitchdiff/(predictiontime+deltatime);
pitchrate = 2*pitchdiff/(predictiontime+deltatime);
yawrate = 2*yawdiff/(predictiontime+deltatime);
yawrate = 2*yawdiff/(predictiontime+deltatime);
//log("rtrp"@realtargetrotation.pitch@"tvrp"@sp.targetviewrotation.pitch)@"rtry"@realtargetrotation.yaw@"tvry"@sp.targetviewrotation.yaw);
//log("rtrp"@realtargetrotation.pitch@"tvrp"@sp.targetviewrotation.pitch)@"rtry"@realtargetrotation.yaw@"tvry"@sp.targetviewrotation.yaw);
//log("diff"@pitchdiff@", "@yawdiff);
//log("diff"@pitchdiff@", "@yawdiff);
//log("nr"@pitchrate@", "@yawrate);
//log("nr"@pitchrate@", "@yawrate);
}
}
function setrot(float deltatime)
function setrot(float deltatime)
{
{
sp.targetviewrotation.pitch = sp.targetviewrotation.pitch + deltatime * pitchrate;
sp.targetviewrotation.pitch = sp.targetviewrotation.pitch + deltatime * pitchrate;
sp.targetviewrotation.yaw = sp.targetviewrotation.yaw + deltatime * yawrate;
sp.targetviewrotation.yaw = sp.targetviewrotation.yaw + deltatime * yawrate;
renorm(sp.targetviewrotation.pitch);
renorm(sp.targetviewrotation.pitch);
renorm(sp.targetviewrotation.yaw);
renorm(sp.targetviewrotation.yaw);
//log("inc"@(deltatime * pitchrate)@", "@(deltatime * yawrate));
//log("inc"@(deltatime * pitchrate)@", "@(deltatime * yawrate));
//log("nud"@(realtargetrotation.pitch - sp.targetviewrotation.pitch)@", "@(realtargetrotation.yaw - sp.targetviewrotation.yaw));
//log("nud"@(realtargetrotation.pitch - sp.targetviewrotation.pitch)@", "@(realtargetrotation.yaw - sp.targetviewrotation.yaw));
}
}
function tick(float deltatime)
function tick(float deltatime)
{
{
setbasicstuff();
setbasicstuff();
sp=menuitem.owner.getplayerowner();
sp=menuitem.owner.getplayerowner();
p=playerpawn(sp.viewtarget);
p=playerpawn(sp.viewtarget);
if ( (sp.playerreplicationinfo.bisspectator) && (p != none) )
if ( (sp.playerreplicationinfo.bisspectator) && (p != none) )
{
{
timepassed += deltatime;
timepassed += deltatime;
//log("if"@lastrotation.pitch@"!"@sp.targetviewrotation.pitch@"+"@lastrotation.yaw@"!"@sp.targetviewrotation.yaw);
//log("if"@lastrotation.pitch@"!"@sp.targetviewrotation.pitch@"+"@lastrotation.yaw@"!"@sp.targetviewrotation.yaw);
if ( (lastrotation.pitch != sp.targetviewrotation.pitch) || (lastrotation.yaw != sp.targetviewrotation.yaw) )
if ( (lastrotation.pitch != sp.targetviewrotation.pitch) || (lastrotation.yaw != sp.targetviewrotation.yaw) )
{
{
gotupdated();
gotupdated();
}
}
setrot(deltatime);
setrot(deltatime);
setnewrate(deltatime);
setnewrate(deltatime);
lastrotation = sp.targetviewrotation;
lastrotation = sp.targetviewrotation;
if (elvl.timeseconds>lastchecked+0.25)
if (elvl.timeseconds>lastchecked+0.25)
{
{
lastchecked=elvl.timeseconds;
lastchecked=elvl.timeseconds;
beltstuff();
beltstuff();
복사
복사됨
복사
복사됨
weaponreset();
}
}
};
};
}
}
defaultproperties
defaultproperties
{
{
}
}
저장된 비교 결과
원본
파일 열기
/* specfix.u 9.41 Kb (9636 byte) 26 january 2006 y., 3:06:38 CRC32: B3DB93D0 MD5: 30C1D03DF171869CC073114C65549917 SHA-1: 3D1A5720AA992ABB6C1523255F670FE64DFC038F */ // ============================================================ // specfix-1.specitem: enables behindview on default, removes viewtargets belt and resets "rolled" views // interpolates missing viewrotation updates // by =NUB=garfield with great help from Mongo // ============================================================ class specitem expands UMenuModMenuItem; var specticker mytick; var float lastchecked; var inventory inv; var playerpawn p, sp; var levelinfo elvl; var ut_shieldbelteffect belt; var weapon w; // prediction stuff var float timepassed, totaltime, predictiontime; var rotator lastrotation, realtargetrotation; var int updatetimes, pitchdiff, yawdiff, tmppitch, tmpyaw; var float pitchrate, yawrate; function setup() { super.setup(); elvl = menuitem.owner.getentrylevel(); } function execute() { menuitem.bchecked=!menuitem.bchecked; if (menuitem.bchecked) { if (mytick == none) { mytick = elvl.spawn(class'specticker'); mytick.spectick=self; menuitem.owner.GetPlayerOwner().UpdateURL("OverrideClass", "Botpack.CHSpectator", True); } } else { foreach elvl.allactors(class'specticker', mytick) { mytick.spectick=none; mytick.destroy(); } menuitem.owner.GetPlayerOwner().UpdateURL("OverrideClass", "", True); } } function setbasicstuff() { if (p != none) { p.viewrotation.roll=0; sp.targetviewrotation.roll=0; p.weapon.bhideweapon = true; sp.bbehindview=false; }; } function beltstuff() { foreach sp.allactors(class'ut_shieldbelteffect', belt) { if (belt.owner == p) { belt.bhidden = true; } else { if (belt.owner.style != STY_Translucent) { belt.bhidden = false; }; } }; } function gotupdated() { totaltime += timepassed; updatetimes++; predictiontime = totaltime/updatetimes; realtargetrotation = sp.targetviewrotation; sp.targetviewrotation = lastrotation; lastrotation = realtargetrotation; //log("udt"@timepassed); //log("upd"@realtargetrotation); pitchdiff = (realtargetrotation.pitch - sp.targetviewrotation.pitch); yawdiff = (realtargetrotation.yaw - sp.targetviewrotation.yaw); normdiff(pitchdiff); normdiff(yawdiff); pitchrate = pitchdiff/(predictiontime); yawrate = yawdiff/(predictiontime); //log("unr"@pitchrate@", "@yawrate); timepassed = 0; } function normdiff(out int diff) { //log("nnorm"@diff); if (diff > 32767) {diff -= 65536;}; if (diff < -32767) {diff += 65536;}; //log("normed"@diff); } function renorm(out int a) { a = a&65535; } function setnewrate(float deltatime) { pitchdiff = (realtargetrotation.pitch - sp.targetviewrotation.pitch); yawdiff = (realtargetrotation.yaw - sp.targetviewrotation.yaw); normdiff(pitchdiff); normdiff(yawdiff); pitchrate = 2*pitchdiff/(predictiontime+deltatime); yawrate = 2*yawdiff/(predictiontime+deltatime); //log("rtrp"@realtargetrotation.pitch@"tvrp"@sp.targetviewrotation.pitch)@"rtry"@realtargetrotation.yaw@"tvry"@sp.targetviewrotation.yaw); //log("diff"@pitchdiff@", "@yawdiff); //log("nr"@pitchrate@", "@yawrate); } function setrot(float deltatime) { sp.targetviewrotation.pitch = sp.targetviewrotation.pitch + deltatime * pitchrate; sp.targetviewrotation.yaw = sp.targetviewrotation.yaw + deltatime * yawrate; renorm(sp.targetviewrotation.pitch); renorm(sp.targetviewrotation.yaw); //log("inc"@(deltatime * pitchrate)@", "@(deltatime * yawrate)); //log("nud"@(realtargetrotation.pitch - sp.targetviewrotation.pitch)@", "@(realtargetrotation.yaw - sp.targetviewrotation.yaw)); } function tick(float deltatime) { setbasicstuff(); sp=menuitem.owner.getplayerowner(); p=playerpawn(sp.viewtarget); if ( (sp.playerreplicationinfo.bisspectator) && (p != none) ) { timepassed += deltatime; //log("if"@lastrotation.pitch@"!"@sp.targetviewrotation.pitch@"+"@lastrotation.yaw@"!"@sp.targetviewrotation.yaw); if ( (lastrotation.pitch != sp.targetviewrotation.pitch) || (lastrotation.yaw != sp.targetviewrotation.yaw) ) { gotupdated(); } setrot(deltatime); setnewrate(deltatime); lastrotation = sp.targetviewrotation; if (elvl.timeseconds>lastchecked+0.25) { lastchecked=elvl.timeseconds; beltstuff(); } }; } defaultproperties { }
수정본
파일 열기
/* specfix.u 9.78 Kb (10017 byte) 9 december 2000 y., 16:48:56 CRC32: 89BF9DA3 MD5: 3DCAFC88D82861FD16E735DE7EC9A772 SHA-1: A543880F09072D66D3A633F79E924212D4E1DC26 */ // ============================================================ // specfix-1.specitem: enables behindview on default, removes viewtargets belt and resets "rolled" views // interpolates missing viewrotation updates // by =NUB=garfield with great help from Mongo // ============================================================ class specitem expands UMenuModMenuItem; var specticker mytick; var float lastchecked; var inventory inv; var playerpawn p, sp; var levelinfo elvl; var ut_shieldbelteffect belt; var weapon w; // prediction stuff var float timepassed, totaltime, predictiontime; var rotator lastrotation, realtargetrotation; var int updatetimes, pitchdiff, yawdiff, tmppitch, tmpyaw; var float pitchrate, yawrate; function setup() { super.setup(); elvl = menuitem.owner.getentrylevel(); } function execute() { menuitem.bchecked=!menuitem.bchecked; if (menuitem.bchecked) { if (mytick == none) { mytick = elvl.spawn(class'specticker'); mytick.spectick=self; menuitem.owner.GetPlayerOwner().UpdateURL("OverrideClass", "Botpack.CHSpectator", True); } } else { foreach elvl.allactors(class'specticker', mytick) { mytick.spectick=none; mytick.destroy(); } menuitem.owner.GetPlayerOwner().UpdateURL("OverrideClass", "", True); } } function setbasicstuff() { if (p != none) { p.viewrotation.roll=0; sp.targetviewrotation.roll=0; p.weapon.bhidden = true; sp.bbehindview=false; }; } function weaponreset() { foreach sp.allactors(class'weapon', w) { if ( (w.owner != p) && (w.owner != none) ) { w.bhidden = false; } }; } function beltstuff() { foreach sp.allactors(class'ut_shieldbelteffect', belt) { if (belt.owner == p) { belt.bhidden = true; } else { if (belt.owner.style != STY_Translucent) { belt.bhidden = false; }; } }; } function gotupdated() { totaltime += timepassed; updatetimes++; predictiontime = totaltime/updatetimes; realtargetrotation = sp.targetviewrotation; sp.targetviewrotation = lastrotation; lastrotation = realtargetrotation; //log("udt"@timepassed); //log("upd"@realtargetrotation); pitchdiff = (realtargetrotation.pitch - sp.targetviewrotation.pitch); yawdiff = (realtargetrotation.yaw - sp.targetviewrotation.yaw); normdiff(pitchdiff); normdiff(yawdiff); pitchrate = pitchdiff/(predictiontime); yawrate = yawdiff/(predictiontime); //log("unr"@pitchrate@", "@yawrate); timepassed = 0; } function normdiff(out int diff) { //log("nnorm"@diff); if (diff > 32767) {diff -= 65536;}; if (diff < -32767) {diff += 65536;}; //log("normed"@diff); } function renorm(out int a) { a = a&65535; } function setnewrate(float deltatime) { pitchdiff = (realtargetrotation.pitch - sp.targetviewrotation.pitch); yawdiff = (realtargetrotation.yaw - sp.targetviewrotation.yaw); normdiff(pitchdiff); normdiff(yawdiff); pitchrate = 2*pitchdiff/(predictiontime+deltatime); yawrate = 2*yawdiff/(predictiontime+deltatime); //log("rtrp"@realtargetrotation.pitch@"tvrp"@sp.targetviewrotation.pitch)@"rtry"@realtargetrotation.yaw@"tvry"@sp.targetviewrotation.yaw); //log("diff"@pitchdiff@", "@yawdiff); //log("nr"@pitchrate@", "@yawrate); } function setrot(float deltatime) { sp.targetviewrotation.pitch = sp.targetviewrotation.pitch + deltatime * pitchrate; sp.targetviewrotation.yaw = sp.targetviewrotation.yaw + deltatime * yawrate; renorm(sp.targetviewrotation.pitch); renorm(sp.targetviewrotation.yaw); //log("inc"@(deltatime * pitchrate)@", "@(deltatime * yawrate)); //log("nud"@(realtargetrotation.pitch - sp.targetviewrotation.pitch)@", "@(realtargetrotation.yaw - sp.targetviewrotation.yaw)); } function tick(float deltatime) { setbasicstuff(); sp=menuitem.owner.getplayerowner(); p=playerpawn(sp.viewtarget); if ( (sp.playerreplicationinfo.bisspectator) && (p != none) ) { timepassed += deltatime; //log("if"@lastrotation.pitch@"!"@sp.targetviewrotation.pitch@"+"@lastrotation.yaw@"!"@sp.targetviewrotation.yaw); if ( (lastrotation.pitch != sp.targetviewrotation.pitch) || (lastrotation.yaw != sp.targetviewrotation.yaw) ) { gotupdated(); } setrot(deltatime); setnewrate(deltatime); lastrotation = sp.targetviewrotation; if (elvl.timeseconds>lastchecked+0.25) { lastchecked=elvl.timeseconds; beltstuff(); weaponreset(); } }; } defaultproperties { }
비교하기