Get rand player 가 뭘까요? rand라 랜덤을 말하는건가? 맞습니다. 랜덤 플레이어를 집어 온다는거죠. 안타깝게도 여러분들이 생각하는 판타지의 인간중 하나를 골라 내 올수는 없습니다.
우선 이걸 쓰기전에 corelib를 써 주시구요!!! [로드하란 말입니다 ^^ ]
공식은 이렇습니다 getrandplayer <variable> <identifier>
역 ) es getrandplayer <랜덤플레이어 저장할 변수> <파라미터>
파라미터 :
파라미터가 의미하는 바는 그 중에서 골라 오겠다는 겁니다.
es_set storeplayer 0
es_set theplayername 0
es getrandplayer storeplayer #alive#human
es_getplayername theplayername server_var(storeplayer)
es_tell server_var(storeplayer) RanDomPlayer : server_Var(theplayername) . Congretulation!!!.
' 자 . stroreplayer 이란 유저아이디를 저장할 변수와 theplayername 이라고 그 유저아이디를 가지고 구할 이름을 저장할 변수를 생성 해 냈습니다. 그리고 getrandplayer로 #alive#human -> #살아있으면서#봇이아닌레알인간들 로 랜덤유저를 하나 정했구요
es_getplayername theplayername storeplayer유저아이디
es_tell 로 메시지 출력.
간단히 이해가 가셨으리라 봅니다. 질문이 있을겁니다 ' #alive#human 이거 2개 겹쳐서 써도 되나요? ' 네 됩니다. 저 위에 의미를 적어 놨씁니다.
자 이제. playervar를 배워 보도록 하겠습니다. playervar는 개인변수라는건데 설명은 소스모드 3번 강좌에 잘 되어 있습니다. 뭐 나름이지만요.
공식은 3가지가 있는데요. set/get/exists 입니다.
playervar <get/set/exists> [var] <userid> [varname] [value]
es playervar <get/set/exists> [개인변수] <유저아이디> [공통변수] [값]
개인변수니 공통변수니 값이니 뭐이리 복잡해! 라고 생각 할 시간은 없습니다.
자 제대로 정리된 식을 제가 적어드릴게요 ~!
es playervar get 개인변수 유저아이디 공통변수
es playervar set 유저아이디 공통변수 값
es playervar exists 체크할변수 유저아이디 공통변수
->
es_set A 0
es_set B 0
es_set C 0
es playervar set event_var(userid) A 0
es playervar get B event_var(userid) A
es playervar exists C event_var(userid) A
라고 볼 수가 있죠. exists 는 A의 값을 존재여부 체크해버리는거기 때문에 자주 쓰진 않습니다.
활용으로 바로 넘어가서 이해를 꽉 잡아버리도록 합시다 !! 익숙해지면 뭐든게 다 됩니다 !! ^^
event player_spawn
{
es playervar set event_var(userid) A 1
}
event player_death
{
es playervar get B event_var(userid) A
if (server_Var(B) == 1) do
{
es_tell event_var(userid) B 의 생존횟수가 0번 남았습니다 하지만 스폰이 다시되면 1번으로 교체되니 계속 무한 반복입니다 ㅋ
es_math B - 1
es playerset event_var(userid) A server_var(B)
}
}
<<< 추가 >>>
위키에 좋은 예제가 있습니다
// Said 와 said 는 대소문자가 달라 서로 다른 변수인걸 확인합시다 !!
event player_spawn
{
es playervar set event_var(userid) SaidSomething 0
}
event player_say
{
es_xset saidsomething 0
es_xset check_var 0
es playervar exists check_var event_var(userid) SaidSomething
if (server_var(check_var) == 1) do
{
es playervar get saidsomething event_var(userid) SaidSomething
if (server_var(saidsomething) = 0) do
{
es_msg #green 스폰 한 뒤로 처음으로 말을 했씁니다 !
}
es playervar set event_var(userid) SaidSomething 1
}
}