소스모드
[TIP] 소스모드 문법 혼용으로 인한 발생워링 고치는법
소스모드 구문법과 신문법은 서로 혼용이 가능하며 컴파일또한 가능하다. 다만, 신문법 컴파일러부터는 구문법중 일부 함수나 문법은 권장사항같은 개념으로 이것을 쓰라며 워링 메시지를 출력한다. 아래는 각 워링의 사유들과 그에 대한 뜻과 해결책을 담았다. # Float 관련 1. FloatSub 워링 메시지 : symbol "FloatSub" is marked as deprecated: This native is internal implementation. For subtraction use the '-' operator. 해결법 : Float(A, B)를 A - B로 바꿔준다. 2. FloatMul 워링메시지:symbol "FloatMul" is marked as deprecated: This native i..
[TIP] NPC의 관계 설정
일반적으로 생각하는 NPC등은 다음의 코드로 관계를 설정할수있다. DispatchSpawn이하의 구문에 아래를 적어주자 SetVariantString("대상 관계타입"); AcceptEntityInput(대상, "setrelationship"); 관계타입은 아래와 같다. D_HT: Hate D_FR: Fear D_LI: Like D_NU: Neutral 플레이어에게 적대관계를 설정한다면 SetVariantString("player D_HT"); AcceptEntityInput(대상, "setrelationship"); 이 될것이다.
[레포데2] 좀비에게 훅 거는 방법
소스모드를 어느정도 한다는 기준하에 좀비한테 훅을 건다고 치자. 이때 걸만한 훅은 플레이어와 대동소이할것이다. 스폰, 데스, 데미지 이 세가지만 훅을 걸어도 대부분의 상황에 응용할수있을것이다. 그런데 문제가 있다. 레포데2는 코드상 좀비가 같은좀비가 아니다. 좀 까다롭다. 간단하게 설명하자면, 1) 일반좀비 + 위치 2) 그외 특수좀비(탱크, 스피터, 헌터, 자키, 등등) 으로 나뉜다. 코드를 작성하는 입장에서 한곳에서 관리하면 편할것을 두개로 나뉘어 코딩해야 한다는점이 참으로 짜증날뿐이다. 왜 이럴까? 뇌피셜이지만 레포데2는 코옵뿐만 아니라 PVP(인간 대 좀비[플레이어])모드도 지원한다. 이때 좀비인 플레이어는 길바닥에서 흔히보이는 일반좀비가 아니라 스피터, 헌터등과 같은 무조건 특수좀비다. 실제로 ..
[TIP] 각 게임 별 팀 번호
Team 0: Unassigned Team 1: Spectator Team 2: Combine (HL2DM), Allies (DoD:S), Terrorists (CSS), RED (TF2), Survivors (L4D/L4D2) Team 3: Rebels (HL2DM), Axis (DoD:S), Counter-Terrorists (CSS), BLU (TF2), Infected (L4D/L4D2) [데매 한정]HL2MP - mp_teamplay 0: team 0 = Unassigned (players play) team 1 = Spectators HL2MP - mp_teamplay 1: team 1 = spectators team 2 = combine team 3 = rebels
[하프2데매] 팀만 변경 시키는 법
카솟, 글옵에서 팀변경은 #include 에서 지원하는 CS_SwitchTeam(대상, 팀번호); 를 사용하면된다. 그외 게임은 ChangeClientTeam(대상, 팀번호);를 사용한다. 물론 데매에선 ChangeClientTeam을 사용한다. 문제점은 팀변경시 강제로 플레이어가 한번 뒤진다는것이다. 카솟, 글옵은 팀변경시 뒤지지않음. 이를 막으려면 플레이어 팀 오프셋값을 직접 바꿔주면된다. SetEntProp(대상, Prop_Send, "m_iTeamNum", 팀번호); 을 써주자. 팁을 주자면 데매에서 팀은 1: 관전, 2:콤바인, 3:반시민 이다. 카솟, 글옵은 1:관전, 2:테러리스트(T), 3:대테러리스트(CT)이다.
[하프2데매] 무기에 3인칭 입히는 코드
카솟, 글옵은 무기 스킨입히는 전용 API가 있어서 코드한줄로 간편히 바꿀수있지만 데매는 그런자료가 없다. 1인칭 뷰모델 무기입히는법은 알아보고있으나 3인칭은 매우간단하게 스킨을 입힐수있음을 알아냈다. 아래 코드 참조: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include #include #include new g_iWorldModel_StunStick; public void OnMapStart() { g_iWorldModel_StunStick = PrecacheModel("월드모델경로", true); } public Action:OnPlayerRunCmd(Client, &buttons, &impulse, Float:vel[3], Float..