Syncope.T-*
Published 2011. 12. 8. 20:08
[5] 소리 나오게 하기! Steam/Sourcemod
728x90

이번 시간엔 소리나오게 하는 커맨드를 알아 볼건데요. 경로를 한 번에 받고 TF2에 쓰이는 커맨드를 이용해 스크립트 하나를 만들어 볼 겁니다.

쓰일 커맨드 종류는

Class 와 Weapon 를 알아 보기와 EmitSound 랍니다.

플러그인 설명 : TF2 에 게임 클래스에 속한 Sniper의 Rifle 로 HeadShot 을 맞을 경우에 Emitsound 방출.

-----------------------------------------------------------------------------------------------------

// INCLUDE BASIS
#include sourcemod
#include sdktools

// define 이란 변수 선언을 하는건데요. 알아 둘 것이 있다면 #define [변수이름] 으로 설정을 했다면 그 변수이름으로 설정된 모든 값들은 뒤에있는 밸류값으로 바뀌어진다는 뜻이에요

// 만약 #define a "0" 이라고 선선햇다면

// a + 1 = 1 로 나올거구요

// 10a + 1 = x 로 나오거나 10a + 1 = 1 로 나올겁니다. a가 들어간 모든 부분에 속해버린다는거죠

// Boom [대소문자 구별] 이라는 단어에 이 경로를 넣어주고

// Boom2 엔 이 경로를. 써 주는겁니다 그냥.
#define Boom "boom/boomheadshot.mp3"
#define Boom2 "boom/boomheadshot2.mp3"

public OnPluginStart() {
HookEvent("player_death", Event_PlayerDeath)
CreateConVar("BoomHSVersion", "1.1", "Boom Headshot Version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY)
}

public OnMapStart()
{

// sound/boom/boomheadshot.mp3 라는 경로에 있는 사운드파일을 프리캐싱 [ 미리 불러오는 ] 작업을 해 줍니다.
PrecacheSound(Boom)
decl String:file[64]
Format(file, 63, "sound/%s", Boom); // 포맷이란 묶는걸 말합니다. 한번에 file이란 변수에다 묶어버리죠.
AddFileToDownloadsTable(file) // 다운로드 파일 추가

PrecacheSound(Boom2)
decl String:file2[64]
Format(file2, 63, "sound/%s", Boom2);
AddFileToDownloadsTable(file2)
}

public Action:Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
new attacker = GetClientOfUserId(GetEventInt(event, "attacker"))
new victim = GetClientOfUserId(GetEventInt(event, "victim"))
new String:weapon[32]
new String:BoomName[64];
GetClientName(attacker,BoomName, 64);


GetEventString(event, "weapon", weapon, 32)
new customkill = GetEventInt(event, "customkill");
if(customkill == 1) // HitGroup 중 1번이 머리부분이란 것이니 킬 부위가 머리[헤드샷] 이면 발생하는 if 구문.
{
if (StrContains(weapon,"sniperrifle") != -1) // 스나이퍼 라이플일 경우. 활은 안된다는 뜻. 그외 무기도 다.
{
new Leade = GetRandomInt(1, 2); // 자 드디어 나왔습니다 !! Leade 에 Rand 값 넣기.
if (Leade == 1)
{

// EMITSOUND 쓰기

// EmitSoundToClient(유저아이디,경로, SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_NORMAL)
EmitSoundToClient(attacker, Boom, SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_NORMAL)
EmitSoundToClient(victim, Boom, SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_NORMAL)
}
if (Leade == 2)
{

EmitSoundToClient(attacker, Boom2, SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_NORMAL)
EmitSoundToClient(victim, Boom2, SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_NORMAL)
}
PrintToChatAll("\x04[\x03%s\x04]\x01 : Ka BOOM! 헤드 샷!!!!",BoomName);

}
}
return Plugin_Continue
}

profile

Syncope.T-*

@Syncope

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...