Unlimited Stairs
This code is over 6 months old. The code may have expired and might no longer function.
settings
{
main
{
설명: "무한의 계단 / 제작 :흐야야 유튜브 / 7인용 / 코드 : HYXC5"
}
lobby
{
개별 전투 최대 인원: 7
경기 음성 대화: 활성화
대기열에 등록된 플레이어들도 허용: 네
}
modes
{
데스매치
{
enabled maps
{
워크샵 섬 밤 0
}
}
일반
{
게임 모드 시작: 즉시
무작위 영웅으로 부활: 활성화
역할 제한: 팀당 역할별로 2명
}
}
heroes
{
일반
{
궁극기: 비활성화
기본 발사: 비활성화
받는 피해: 10%
빠른 근접 공격: 비활성화
이동 속도: 300%
주는 피해: 10%
enabled heroes
{
바스티온
}
}
}
}
variables
{
global:
0: ElevatorText
1: RANDOM
2: HeroArray
3: StaminaText
4: BestScore
5: BestPlayer
player:
0: stairPosition
1: isStart
2: stairIndex
3: stairXX
4: floor
5: stamina
6: dir
7: stairDir
8: coinEffect
9: coinIndex
10: COINNNNNN
11: isElevator
12: coinText
13: coinNum
14: HeroIndex
15: staminaLevel
16: jam
17: jamIndex
18: jamEffect
19: jamText
20: FOR
21: runningElevator
}
subroutines
{
0: StairEffect
1: Dir2
2: Left1
3: Right1
4: Left2
5: Right2
}
rule("글로벌 설정")
{
event
{
Ongoing - Global;
}
action
{
Create In-World Text(All Players(All Teams), Custom String("'F' is to start the game"), Vector(0, 0, 0), 1.500, Clip Against Surfaces,
Visible To Position and String, Color(White), Default Visibility);
Create Effect(All Players(All Teams), Ring, Color(White), Vector(0, 0, 0), 2, Visible To Position and Radius);
Disable Built-In Game Mode Completion;
Disable Built-In Game Mode Music;
Disable Built-In Game Mode Announcer;
Disable Built-In Game Mode Scoring;
Create Dummy Bot(Hero(D.Va), All Teams, 11, Vector(16.122, 0.455, 15.366), Direction Towards(Vector(15.271, 1.300, 15.293), Vector(
0, 0, 0)));
Create In-World Text(All Players(All Teams), Global.ElevatorText, Vector(16.511, 2.300, 16.467), 1.500, Clip Against Surfaces,
Visible To Position and String, Color(White), Default Visibility);
Global.ElevatorText = Custom String("Elevator");
Create Dummy Bot(Hero(라인하르트), All Teams, 10, Vector(-15.770, 1.350, 15.811), Direction Towards(Vector(-15.770, 1.350, 15.811),
Vector(0, 0, 0)));
Create In-World Text(All Players(All Teams), Global.StaminaText, Vector(-15.700, 2.350, 16), 1.500, Clip Against Surfaces,
Visible To Position and String, Color(White), Default Visibility);
Global.StaminaText = Custom String("Stamina");
Create Effect(All Players(All Teams), Ring, Color(White), Vector(0, 0, -16), 2, Visible To Position and Radius);
Create In-World Text(All Players(All Teams), Custom String("다음 영웅"), Vector(0, 3, -16), 1, Clip Against Surfaces,
Visible To Position and String, Color(White), Default Visibility);
Wait(3, Ignore Condition);
Global.BestPlayer = Host Player;
Global.BestScore = Workshop Setting Integer(Custom String("게임설정"), Custom String("최고점수"), 0, 0, 1000, 0);
Create In-World Text(All Players(All Teams), Custom String(
"Unlimited Stairs\r\nPlaytime 3min\r\nJump is up, Ctrl is other way\r\n최고기록에 도전해 보세요! \r\nps. Push the interaction Key front of D.va or Rein \r\n제작자: 흐야야 유튜브\r\n버그수정: Asurada\r\n코드: HYXC5"),
Vector(0, 4, -16), 2, Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
Create HUD Text(All Players(All Teams), Null, Null, Custom String("제작자 : 흐야야 유튜브\r\n버그수정 : Asurada\r\n코드 : HYXC5"), Left, 0, Color(
White), Color(White), Color(White), Visible To and String, Default Visibility);
}
}
rule("더미봇 설정")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
disabled Is Dummy Bot(Event Player) == True;
}
action
{
Wait(3, Ignore Condition);
Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Color(White), Default);
}
}
rule("개인설정")
{
event
{
Ongoing - Each Player;
All;
All;
}
action
{
Set Ability 1 Enabled(Event Player, False);
Set Ability 2 Enabled(Event Player, False);
Set Secondary Fire Enabled(Event Player, False);
Disallow Button(Event Player, Button(Crouch));
Event Player.staminaLevel = 1;
Start Forcing Player To Be Hero(Event Player, Global.HeroArray[Event Player.HeroIndex]);
Set Status(Event Player, Null, Phased Out, 9999);
Event Player.isElevator = False;
Event Player.runningElevator = False;
}
}
rule("무한의 계단 시작")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Distance Between(Event Player, Vector(0, 0, 0)) < 2;
Is Button Held(Event Player, Button(Interact)) == True;
}
action
{
Small Message(Event Player, Custom String("Ctrl : Other way / Jump : Up"));
Event Player.stamina = 10;
Event Player.dir = -1;
Start Forcing Player Position(Event Player, Event Player.stairPosition[Event Player.floor % 14], True);
Event Player.stairXX = 0;
Event Player.stairIndex = 0;
Event Player.floor = 0;
Event Player.stairPosition = Empty Array;
Teleport(Event Player, Vector(0, 0, 0));
Start Camera(Event Player, Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player), 10);
Wait(0.016, Ignore Condition);
Start Camera(Event Player, Position Of(Event Player) + Vector(0, 4, 7), Position Of(Event Player) + Vector(0, 4, 0), 10);
Event Player.isStart = True;
Start Facing(Event Player, Vector(Event Player.dir, 0, 0), 1000, To World, Direction and Turn Rate);
Set Move Speed(Event Player, 1);
Event Player.stairDir = -1.500;
Event Player.stairPosition[0] = Vector(Event Player.stairXX, Event Player.stairIndex, 0);
Event Player.stairXX += Event Player.stairDir;
For Player Variable(Event Player, stairIndex, 1, 14, 1);
Event Player.stairPosition[Event Player.stairIndex] = Vector(Event Player.stairXX, Event Player.stairIndex, 0);
Event Player.stairDir *= Random Integer(0, 2.100) ? 1 : -1;
Event Player.stairXX += Event Player.stairDir;
End;
}
}
rule("계단 이팩트 생성")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Is Dummy Bot(Event Player) == False;
}
action
{
Create Beam Effect(Event Player.floor >= 100 ? All Players(All Teams) : Event Player, Good Beam, Vector(-1, 0, 0)
+ Event Player.stairPosition[0], Vector(1, 0, 0) + Event Player.stairPosition[0], Color(Orange),
Visible To Position and Radius);
Create Beam Effect(Event Player.floor >= 100 ? All Players(All Teams) : Event Player, Good Beam, Vector(-1, 0, 0)
+ Event Player.stairPosition[1], Vector(1, 0, 0) + Event Player.stairPosition[1], Color(Orange),
Visible To Position and Radius);
Create Beam Effect(Event Player.floor >= 100 ? All Players(All Teams) : Event Player, Good Beam, Vector(-1, 0, 0)
+ Event Player.stairPosition[2], Vector(1, 0, 0) + Event Player.stairPosition[2], Color(Orange),
Visible To Position and Radius);
Create Beam Effect(Event Player.floor >= 100 ? All Players(All Teams) : Event Player, Good Beam, Vector(-1, 0, 0)
+ Event Player.stairPosition[3], Vector(1, 0, 0) + Event Player.stairPosition[3], Color(Orange),
Visible To Position and Radius);
Create Beam Effect(Event Player.floor >= 100 ? All Players(All Teams) : Event Player, Good Beam, Vector(-1, 0, 0)
+ Event Player.stairPosition[4], Vector(1, 0, 0) + Event Player.stairPosition[4], Color(Orange),
Visible To Position and Radius);
Create Beam Effect(Event Player.floor >= 100 ? All Players(All Teams) : Event Player, Good Beam, Vector(-1, 0, 0)
+ Event Player.stairPosition[5], Vector(1, 0, 0) + Event Player.stairPosition[5], Color(Orange),
Visible To Position and Radius);
Create Beam Effect(Event Player.floor >= 100 ? All Players(All Teams) : Event Player, Good Beam, Vector(-1, 0, 0)
+ Event Player.stairPosition[6], Vector(1, 0, 0) + Event Player.stairPosition[6], Color(Orange),
Visible To Position and Radius);
Create Beam Effect(Event Player.floor >= 100 ? All Players(All Teams) : Event Player, Good Beam, Vector(-1, 0, 0)
+ Event Player.stairPosition[7], Vector(1, 0, 0) + Event Player.stairPosition[7], Color(Orange),
Visible To Position and Radius);
Create Beam Effect(Event Player.floor >= 100 ? All Players(All Teams) : Event Player, Good Beam, Vector(-1, 0, 0)
+ Event Player.stairPosition[8], Vector(1, 0, 0) + Event Player.stairPosition[8], Color(Orange),
Visible To Position and Radius);
Create Beam Effect(Event Player.floor >= 100 ? All Players(All Teams) : Event Player, Good Beam, Vector(-1, 0, 0)
+ Event Player.stairPosition[9], Vector(1, 0, 0) + Event Player.stairPosition[9], Color(Orange),
Visible To Position and Radius);
Create Beam Effect(Event Player.floor >= 100 ? All Players(All Teams) : Event Player, Good Beam, Vector(-1, 0, 0)
+ Event Player.stairPosition[10], Vector(1, 0, 0) + Event Player.stairPosition[10], Color(Orange),
Visible To Position and Radius);
Create Beam Effect(Event Player.floor >= 100 ? All Players(All Teams) : Event Player, Good Beam, Vector(-1, 0, 0)
+ Event Player.stairPosition[11], Vector(1, 0, 0) + Event Player.stairPosition[11], Color(Orange),
Visible To Position and Radius);
Create Beam Effect(Event Player.floor >= 100 ? All Players(All Teams) : Event Player, Good Beam, Vector(-1, 0, 0)
+ Event Player.stairPosition[12], Vector(1, 0, 0) + Event Player.stairPosition[12], Color(Orange),
Visible To Position and Radius);
Create Beam Effect(Event Player.floor >= 100 ? All Players(All Teams) : Event Player, Good Beam, Vector(-1, 0, 0)
+ Event Player.stairPosition[13], Vector(1, 0, 0) + Event Player.stairPosition[13], Color(Orange),
Visible To Position and Radius);
}
}
rule("게인 인터페이승~")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Is Dummy Bot(Event Player) == False;
}
action
{
Create In-World Text(All Players(All Teams), Event Player.floor, Position Of(Event Player) + Vector(0, 5, 0), 5,
Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
Create HUD Text(Event Player, Custom String("JAM : {0}", Event Player.jam), Null, Null, Right, 0, Color(Purple), Color(White),
Color(White), Visible To and String, Default Visibility);
Create HUD Text(Event Player, Custom String("COIN : {0}", Event Player.COINNNNNN), Null, Null, Right, 0, Color(Yellow), Color(
White), Color(White), Visible To and String, Default Visibility);
Create In-World Text(Event Player.isStart ? Event Player : Null, Custom String("coin +{0}", Event Player.coinNum), Vector(0, 1, 0)
+ Event Player.coinText, 3, Do Not Clip, Visible To Position and String, Color(Yellow), Default Visibility);
Event Player.coinText = Vector(0, -100, 0);
disabled Create HUD Text(Event Player, World Vector Of(Vector(0, 0, 0), Event Player, Rotation And Translation), Null, Null, Right, 0,
Color(Yellow), Color(White), Color(White), Visible To and String, Default Visibility);
Create In-World Text(Event Player, Custom String("{0} 원", 50 + Event Player.staminaLevel * 50), Vector(-15.700, 3, 16), 1,
Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
Create In-World Text(Event Player.isStart ? Event Player : Null, Custom String("jam +1"), Vector(0, 1, 0) + Event Player.jamText,
3, Do Not Clip, Visible To Position and String, Color(Purple), Default Visibility);
Event Player.jamText = Vector(0, -100, 0);
Create In-World Text(Event Player, Hero Icon String(Global.HeroArray[Event Player.HeroIndex + 1]), Vector(0, 2, -16), 2,
Do Not Clip, Visible To Position and String, Color(White), Default Visibility);
Create In-World Text(Event Player, Custom String("{0} 보석", Event Player.HeroIndex + 5), Vector(0, 0.500, -16), 1.500,
Clip Against Surfaces, Visible To Position and String, Color(Purple), Default Visibility);
}
}
rule("글러벌 인터페이스ㅡ다")
{
event
{
Ongoing - Global;
}
action
{
Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.stamina == 10), Custom String("■■■■■■■■■■"), Null,
Null, Top, 2, Color(Green), Color(White), Color(White), Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.stamina == 9), Custom String("■■■■■■■■■□"), Null,
Null, Top, 2, Color(Red), Color(White), Color(White), Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.stamina == 8), Custom String("■■■■■■■■□□"), Null,
Null, Top, 2, Color(Red), Color(White), Color(White), Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.stamina == 7), Custom String("■■■■■■■□□□"), Null,
Null, Top, 2, Color(Red), Color(White), Color(White), Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.stamina == 6), Custom String("■■■■■■□□□□"), Null,
Null, Top, 2, Color(Red), Color(White), Color(White), Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.stamina == 5), Custom String("■■■■■□□□□□"), Null,
Null, Top, 2, Color(Red), Color(White), Color(White), Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.stamina == 4), Custom String("■■■■□□□□□□"), Null,
Null, Top, 2, Color(Red), Color(White), Color(White), Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.stamina == 3), Custom String("■■■□□□□□□□"), Null,
Null, Top, 2, Color(Red), Color(White), Color(White), Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.stamina == 2), Custom String("■■□□□□□□□□"), Null,
Null, Top, 2, Color(Red), Color(White), Color(White), Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.stamina == 1), Custom String("■□□□□□□□□□"), Null,
Null, Top, 2, Color(Red), Color(White), Color(White), Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.stamina == 0), Custom String("□□□□□□□□□□"), Null,
Null, Top, 2, Color(Red), Color(White), Color(White), Visible To and String, Default Visibility);
Create HUD Text(All Players(All Teams), Null, Null, Custom String("스테미나"), Top, 3, Color(Green), Color(White), Color(White),
Visible To and String, Default Visibility);
Create HUD Text(All Players(All Teams), Custom String("베스트 스코어 : {0}", Global.BestScore), Null, Global.BestPlayer, Left, 0, Color(
Sky Blue), Color(White), Color(White), Visible To and String, Default Visibility);
}
}
rule("방향 전환")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Is Button Held(Event Player, Button(Crouch)) == True;
Event Player.isStart == True;
Event Player.runningElevator == False;
}
action
{
Event Player.dir *= -1;
disabled Start Rule(Dir2, Restart Rule);
}
}
rule("왼쪽")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Event Player.isStart == True;
(False || Is Button Held(Event Player, Button(Jump))) == True;
Event Player.dir == -1;
Event Player.runningElevator == False;
}
action
{
Start Rule(Left1, Restart Rule);
}
}
rule("오른쪽 | | 수정하로 오신거면 흐야야 유튜브 구독먼저 ㄱㄱㄱㄱㄱㄱ | |")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Event Player.isStart == True;
(False || Is Button Held(Event Player, Button(Jump))) == True;
Event Player.dir == 1;
Event Player.runningElevator == False;
}
action
{
Start Rule(Right1, Restart Rule);
}
}
rule("왼쪽")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Event Player.isStart == True;
(Is Button Held(Event Player, Button(Crouch)) || False) == True;
Event Player.dir == -1;
Event Player.runningElevator == False;
}
action
{
Start Rule(Left2, Restart Rule);
}
}
rule("오른쪽 | | 수정하로 오신거면 흐야야 유튜브 구독먼저 ㄱㄱㄱㄱㄱㄱ | |")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Event Player.isStart == True;
(Is Button Held(Event Player, Button(Crouch)) || False) == True;
Event Player.dir == 1;
Event Player.runningElevator == False;
}
action
{
Start Rule(Right2, Restart Rule);
}
}
rule("게임 끝")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Event Player.isStart == False;
Is Dummy Bot(Event Player) == False;
}
action
{
Wait(0.500, Ignore Condition);
Communicate(Event Player, Hello);
Wait(3, Abort When False);
Stop Camera(Event Player);
Set Move Speed(Event Player, 100);
Stop Forcing Throttle(Event Player);
Stop Facing(Event Player);
Teleport(Event Player, Vector(0, 0, 0));
Event Player.stairPosition = Empty Array;
Set Player Score(Event Player, Max(Score Of(Event Player), Event Player.floor));
}
}
rule("땅에 떨어질 경우")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Is On Ground(Event Player) == True;
}
action
{
Set Gravity(Event Player, 100);
Destroy Effect(Event Player.coinEffect);
Event Player.coinEffect = Null;
Event Player.coinText = Vector(0, -100, 0);
Destroy Effect(Event Player.jamEffect);
Event Player.jamEffect = Null;
Event Player.jamText = Vector(0, -100, 0);
}
}
rule("스테미나 줄어들기")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Event Player.isStart == True;
Event Player.isElevator == False;
}
action
{
Wait(Max(0.150, 0.600 + Event Player.staminaLevel * 0.100 - 0.002 * Event Player.floor), Ignore Condition);
Event Player.stamina -= 1;
Loop If Condition Is True;
}
}
rule("스테미나 전부 씀")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Event Player.isStart == True;
Event Player.stamina == 0;
}
action
{
Event Player.isStart = False;
Wait(1.500, Ignore Condition);
Stop Forcing Player Position(Event Player);
Set Gravity(Event Player, 200);
}
}
rule("계단 올라갈때")
{
event
{
Subroutine;
StairEffect;
}
action
{
If(Event Player.floor > 3);
Event Player.stairPosition[Event Player.stairIndex % 14] = Vector(Event Player.stairXX, Event Player.stairIndex % 900, 0);
Event Player.stairDir *= Random Integer(0, 2.100) ? 1 : -1;
Event Player.stairXX += Event Player.stairDir;
Event Player.stairIndex += 1;
End;
Event Player.floor += 1;
Event Player.stamina = Min(10, 1 + Event Player.stamina);
Play Effect(All Players(All Teams), Good Pickup Effect, Color(Blue), Event Player, 0.500);
Play Effect(Event Player, Explosion Sound, Color(Blue), Event Player, 200);
If(Event Player.coinEffect == Null && !Random Integer(0, 10));
Event Player.coinIndex = Event Player.stairIndex;
Create Effect(Y Component Of(Event Player.stairPosition[Event Player.coinIndex % 14]) >= Y Component Of(Position Of(Event Player))
? Event Player : Null, Orb, Color(Yellow), Event Player.stairPosition[Event Player.coinIndex % 14] + Vector(0, 1.500, 0), 1,
Visible To Position and Radius);
Event Player.coinEffect = Last Created Entity;
End;
If(Event Player.floor == Event Player.coinIndex);
Destroy Effect(Event Player.coinEffect);
Event Player.coinEffect = Null;
Play Effect(All Players(All Teams), Good Explosion, Color(Yellow), Event Player.stairPosition[Event Player.coinIndex % 14], 1);
Play Effect(All Players(All Teams), Buff Impact Sound, Color(Yellow), Event Player, 200);
Event Player.coinNum = Random Integer(10, 50);
Event Player.COINNNNNN += Event Player.coinNum;
Event Player.coinText = Event Player.stairPosition[Event Player.coinIndex % 14];
End;
If(Event Player.jamEffect == Null && !Random Integer(0, 200));
Event Player.jamIndex = Event Player.stairIndex;
Create Effect(Y Component Of(Event Player.stairPosition[Event Player.jamIndex % 14]) >= Y Component Of(Position Of(Event Player))
? Event Player : Null, Orb, Color(Purple), Event Player.stairPosition[Event Player.jamIndex % 14] + Vector(0, 1.500, 0), 1,
Visible To Position and Radius);
Event Player.jamEffect = Last Created Entity;
End;
If(Event Player.floor == Event Player.jamIndex);
Destroy Effect(Event Player.jamEffect);
Event Player.jamEffect = Null;
Play Effect(All Players(All Teams), Good Explosion, Color(Purple), Event Player.stairPosition[Event Player.jamIndex % 14], 1);
Play Effect(All Players(All Teams), Buff Impact Sound, Color(Yellow), Event Player, 200);
Event Player.jam += 1;
Event Player.jamText = Event Player.stairPosition[Event Player.jamIndex % 14];
End;
}
}
rule("흐야야's 무한의 계단 치트키 by 오떱 - 엘베로 씀 250")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Event Player.isStart == True;
Event Player.isElevator == 1;
Event Player.floor < 250;
}
action
{
Event Player.runningElevator = True;
"Left"
If(X Component Of(Position Of(Event Player)) > X Component Of(Event Player.stairPosition[(Event Player.floor + 1) % 14]));
If(Event Player.dir == -1);
Start Rule(Left1, Restart Rule);
Else;
Event Player.dir *= -1;
Start Rule(Left2, Restart Rule);
End;
"Right"
Else If(X Component Of(Position Of(Event Player)) < X Component Of(Event Player.stairPosition[(Event Player.floor + 1) % 14]));
If(Event Player.dir == -1);
Event Player.dir *= -1;
Start Rule(Right2, Restart Rule);
Else;
Start Rule(Right1, Restart Rule);
End;
End;
Wait(0.020, Ignore Condition);
Loop If Condition Is True;
Event Player.runningElevator = False;
Wait(5, Ignore Condition);
Event Player.isElevator = False;
}
}
rule("흐야야's 무한의 계단 치트키 by 오떱 - 엘베로 씀 400")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Event Player.isStart == True;
Event Player.isElevator == 2;
Event Player.floor < 400;
}
action
{
Event Player.runningElevator = True;
"Left"
If(X Component Of(Position Of(Event Player)) > X Component Of(Event Player.stairPosition[(Event Player.floor + 1) % 14]));
If(Event Player.dir == -1);
Start Rule(Left1, Restart Rule);
Else;
Event Player.dir *= -1;
Start Rule(Left2, Restart Rule);
End;
"Right"
Else If(X Component Of(Position Of(Event Player)) < X Component Of(Event Player.stairPosition[(Event Player.floor + 1) % 14]));
If(Event Player.dir == -1);
Event Player.dir *= -1;
Start Rule(Right2, Restart Rule);
Else;
Start Rule(Right1, Restart Rule);
End;
End;
Wait(0.020, Ignore Condition);
Loop If Condition Is True;
Event Player.runningElevator = False;
Wait(5, Ignore Condition);
Event Player.isElevator = False;
}
}
rule("흐야야's 무한의 계단 치트키 by 오떱 - 엘베로 씀 800")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Event Player.isStart == True;
Event Player.isElevator == 3;
Event Player.floor < 800;
}
action
{
Event Player.runningElevator = True;
"Left"
If(X Component Of(Position Of(Event Player)) > X Component Of(Event Player.stairPosition[(Event Player.floor + 1) % 14]));
If(Event Player.dir == -1);
Start Rule(Left1, Restart Rule);
Else;
Event Player.dir *= -1;
Start Rule(Left2, Restart Rule);
End;
"Right"
Else If(X Component Of(Position Of(Event Player)) < X Component Of(Event Player.stairPosition[(Event Player.floor + 1) % 14]));
If(Event Player.dir == -1);
Event Player.dir *= -1;
Start Rule(Right2, Restart Rule);
Else;
Start Rule(Right1, Restart Rule);
End;
End;
Wait(0.020, Ignore Condition);
Loop If Condition Is True;
Event Player.runningElevator = False;
Wait(5, Ignore Condition);
Event Player.isElevator = False;
}
}
rule("버그 방지 엘베")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Event Player.isStart == True;
Event Player.floor % 900 >= 870;
}
action
{
Event Player.runningElevator = True;
Event Player.isElevator = 5;
For Player Variable(Event Player, FOR, 0, 100, 1);
"Left"
If(X Component Of(Position Of(Event Player)) > X Component Of(Event Player.stairPosition[(Event Player.floor + 1) % 14]));
If(Event Player.dir == -1);
Start Rule(Left1, Restart Rule);
Else;
Event Player.dir *= -1;
Start Rule(Left2, Restart Rule);
End;
"Right"
Else If(X Component Of(Position Of(Event Player)) < X Component Of(Event Player.stairPosition[(Event Player.floor + 1) % 14]));
If(Event Player.dir == -1);
Event Player.dir *= -1;
Start Rule(Right2, Restart Rule);
Else;
Start Rule(Right1, Restart Rule);
End;
End;
Wait(0.050, Ignore Condition);
End;
Small Message(Event Player, Custom String("이것은 버그 방지다"));
Event Player.runningElevator = False;
Wait(5, Ignore Condition);
Event Player.isElevator = False;
}
}
rule("엘베 사기")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Distance Between(Vector(16, 0.500, 15), Event Player) < 5;
Is Button Held(Event Player, Button(Interact)) == True;
Event Player.isElevator == 0;
}
action
{
If(Score Of(Event Player) < 300);
Small Message(Event Player, Custom String("{0} : You are begginer...", Hero Icon String(Hero(D.Va))));
Wait(3, Ignore Condition);
Small Message(Event Player, Custom String("{0} : over 300stairs!!", Hero Icon String(Hero(D.Va))));
Wait(3, Ignore Condition);
Else If(Event Player.COINNNNNN < 50);
Small Message(Event Player, Custom String("{0} : not enoght money", Hero Icon String(Hero(D.Va))));
Wait(3, Ignore Condition);
Small Message(Event Player, Custom String("{0} : 대여. 곤란.", Hero Icon String(Hero(D.Va))));
Wait(3, Ignore Condition);
Else If(Score Of(Event Player) < 600);
Small Message(Event Player, Custom String("{0} : available elevator (money -50)", Hero Icon String(Hero(D.Va))));
Event Player.COINNNNNN -= 50;
Event Player.isElevator = 1;
Wait(3, Ignore Condition);
Small Message(Event Player, Custom String("{0} : VIP elevator over 600staris!", Hero Icon String(Hero(D.Va))));
Wait(3, Ignore Condition);
Else If(Score Of(Event Player) >= 1200);
Small Message(Event Player, Custom String("{0} : VVIP elevator available (money -50)", Hero Icon String(Hero(D.Va))));
Event Player.COINNNNNN -= 50;
Event Player.isElevator = 3;
Wait(3, Ignore Condition);
Else;
Small Message(Event Player, Custom String("{0} : VIP elevator available (money -50)", Hero Icon String(Hero(D.Va))));
Event Player.COINNNNNN -= 50;
Event Player.isElevator = 2;
Wait(3, Ignore Condition);
Small Message(Event Player, Custom String("{0} : VVIP elevator over 1200stairs!", Hero Icon String(Hero(D.Va))));
Wait(3, Ignore Condition);
End;
}
}
rule("디바 대사")
{
event
{
Ongoing - Global;
}
action
{
Global.RANDOM = Random Integer(0, 2.100);
If(Global.RANDOM == 0);
Global.ElevatorText = Custom String("I made a elevator! (상호작용)");
Else If(Global.RANDOM == 1);
Global.ElevatorText = Custom String("can use elevator with 50 coins! (상호작용)");
Else If(Global.RANDOM == 2);
Global.ElevatorText = Custom String("제작자는 흐야야 유튜브! (상호작용)");
End;
Wait(10, Ignore Condition);
Loop;
}
}
rule("라인 대사")
{
event
{
Ongoing - Global;
}
action
{
Global.RANDOM = Random Integer(0, 2.100);
If(Global.RANDOM == 0);
Global.StaminaText = Custom String("Shall you train with me? (상호작용)");
Else If(Global.RANDOM == 1);
Global.StaminaText = Custom String("Muscle problem (상호작용)");
Else If(Global.RANDOM == 2);
Global.StaminaText = Custom String("Fucking malpoy (상호작용)");
End;
Wait(9, Ignore Condition);
Loop;
}
}
rule("영웅 배열")
{
event
{
Ongoing - Global;
}
action
{
Global.HeroArray = Hero(바스티온);
Modify Global Variable(HeroArray, Append To Array, Hero(애쉬));
Modify Global Variable(HeroArray, Append To Array, Hero(모이라));
Modify Global Variable(HeroArray, Append To Array, Hero(솔저: 76));
Modify Global Variable(HeroArray, Append To Array, Hero(캐서디));
Modify Global Variable(HeroArray, Append To Array, Hero(로드호그));
Modify Global Variable(HeroArray, Append To Array, Hero(둠피스트));
Modify Global Variable(HeroArray, Append To Array, Hero(에코));
Modify Global Variable(HeroArray, Append To Array, Hero(메르시));
Modify Global Variable(HeroArray, Append To Array, Hero(한조));
Modify Global Variable(HeroArray, Append To Array, Hero(겐지));
}
}
rule("스테미나 훈련")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Distance Between(Vector(-14.764, 1.300, 15.167), Event Player) < 5;
Is Button Held(Event Player, Button(Interact)) == True;
}
action
{
If(Event Player.COINNNNNN < 50 + Event Player.staminaLevel * 50);
Small Message(Event Player, Custom String("{0} : You don't have enough coins", Hero Icon String(Hero(라인하르트))));
Wait(3, Ignore Condition);
Else;
Small Message(Event Player, Custom String("{0} : Start to train now! (돈 -{1})", Hero Icon String(Hero(라인하르트)),
50 + Event Player.staminaLevel * 50));
Event Player.COINNNNNN -= 50 + Event Player.staminaLevel * 50;
Communicate(Event Player, Emote Up);
Wait(5, Ignore Condition);
Small Message(Event Player, Custom String("{0} : Perfect!!! (Stamina decrease speed down↓)", Hero Icon String(Hero(라인하르트))));
Play Effect(All Players(All Teams), Good Explosion, Color(Green), Event Player, 1);
Event Player.staminaLevel += 1;
Wait(3, Ignore Condition);
End;
}
}
rule("영웅 업글")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Distance Between(Vector(0, 0, -16), Event Player) < 2;
Is Button Held(Event Player, Button(Interact)) == True;
Event Player.jam >= Event Player.HeroIndex + 5;
}
action
{
Event Player.jam -= 5 + Event Player.HeroIndex;
Event Player.HeroIndex += 1;
Start Forcing Player To Be Hero(Event Player, Global.HeroArray[Event Player.HeroIndex]);
Play Effect(All Players(All Teams), Good Explosion, Color(Purple), Event Player, 3);
Big Message(All Players(All Teams), Custom String("{0}님이 {1}을 사셨습니다!", Event Player, Global.HeroArray[Event Player.HeroIndex]));
}
}
rule("전체최고기록 달성할경우")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Event Player.floor > Global.BestScore;
}
action
{
Global.BestScore = Event Player.floor;
Global.BestPlayer = Event Player;
Big Message(All Players(All Teams), Custom String("{0}님이 게임 최고기록을 달성하고 있습니다!", Event Player));
While(Event Player.isStart);
Wait(0.250, Ignore Condition);
Global.BestScore = Event Player.floor;
Global.BestPlayer = Event Player;
End;
}
}
rule("개인 최고기록 달성")
{
event
{
Ongoing - Each Player;
All;
All;
}
condition
{
Event Player.floor > Score Of(Event Player);
}
action
{
Small Message(Event Player, Custom String("Personal New record!"));
}
}
rule("방향 전환2")
{
event
{
Subroutine;
Dir2;
}
action
{
Event Player.dir *= -1;
}
}
rule("왼쪽1")
{
event
{
Subroutine;
Left1;
}
action
{
If(X Component Of(Position Of(Event Player)) > X Component Of(Event Player.stairPosition[(Event Player.floor + 1) % 14]));
Start Rule(StairEffect, Restart Rule);
Else;
Event Player.isStart = False;
Start Forcing Player Position(Event Player, Event Player.stairPosition[Event Player.floor % 14] + Vector(-2.500, 1, 0), True);
Wait(1.500, Ignore Condition);
Stop Forcing Player Position(Event Player);
Set Gravity(Event Player, 200);
End;
}
}
rule("오른쪽1")
{
event
{
Subroutine;
Right1;
}
action
{
If(X Component Of(Position Of(Event Player)) < X Component Of(Event Player.stairPosition[(Event Player.floor + 1) % 14]));
Start Rule(StairEffect, Restart Rule);
Else;
Event Player.isStart = False;
Start Forcing Player Position(Event Player, Event Player.stairPosition[Event Player.floor % 14] + Vector(2.500, 1, 0), True);
Wait(1.500, Ignore Condition);
Stop Forcing Player Position(Event Player);
Set Gravity(Event Player, 200);
End;
}
}
rule("왼쪽2")
{
event
{
Subroutine;
Left2;
}
action
{
If(X Component Of(Position Of(Event Player)) > X Component Of(Event Player.stairPosition[(Event Player.floor + 1) % 14]));
Start Rule(StairEffect, Restart Rule);
Else;
Event Player.isStart = False;
Start Forcing Player Position(Event Player, Event Player.stairPosition[Event Player.floor % 14] + Vector(-2.500, 1, 0), True);
Wait(1.500, Ignore Condition);
Stop Forcing Player Position(Event Player);
Set Gravity(Event Player, 200);
End;
}
}
rule("오른쪽2")
{
event
{
Subroutine;
Right2;
}
action
{
If(X Component Of(Position Of(Event Player)) < X Component Of(Event Player.stairPosition[(Event Player.floor + 1) % 14]));
Start Rule(StairEffect, Restart Rule);
Else;
Event Player.isStart = False;
Start Forcing Player Position(Event Player, Event Player.stairPosition[Event Player.floor % 14] + Vector(2.500, 1, 0), True);
Wait(1.500, Ignore Condition);
Stop Forcing Player Position(Event Player);
Set Gravity(Event Player, 200);
End;
}
}