playXP

서브 메뉴

Page. 1 / 246 [내 메뉴에 추가]
글쓰기
작성자 yudam
작성일 2014-06-26 14:50:16 KST 조회 1,169
제목
자원을 얻을때 같은 팀의 플레이어도 자원을 얻게 하려면?

한 플레이어가 자원을 얻을 때 같은 팀의 다른 플레이어들도 같은 양의 자원을 얻게 하려고 하는데요.


이벤트 -> 플레이어 속성변경

조건    -> 트리거 발동 플레이어 속성 =  광물

행동    -> 트리거 발동 플레이어가 속한 플레이어 그룹의 플레이어들을 선정해 행동 실행

          -> 선정된 플레이어가 트리거발동 플레이어가 아니면

          -> 선정된 플레이어에게 광물을 트리거 발동 플레이어 속성 변경 만큼 추가


이렇게 했더니 행동에서 '플레이어 속성 변경'을 하게 되니까 이게 다시 이 트리거를 발동시켜서 무한 반복이 되어버리네요. 다른 좋은 방법이 없을까요?

지속적인 허위 신고시 신고자가 제재를 받을 수 있습니다.
신고 사유를 입력하십시오:

발도장 찍기
성역의수호자 (2014-06-27 02:54:48 KST)
0↑ ↓0
센스 이미지
저보고 만들라고하면 약간의 손실이 있더라도 이렇게 구성할거같음.

이벤트 -> 플레이어 속성변경
조건 -> 트리거 발동 플레이어 속성 = 광물
-> 변수 분배중 =!참
행동 -> 변수 수정 - 모여있는 자원 총량 + 광물변경량
-> 변수 수정 - 개인이 보유하고 있는 자원량[트리거 발동 플레이어] + 광물변경량

이벤트 -> 분배주기 타이머 만료 (반복타이머)
행동 -> 변수수정 - 분배중 = 참
-> for문을 활용해서 모든 플레이어에게 (모여있는 총량-개인이 보유하고있는 자원량)만큼 자원추가
-> 변수 설정 - 모여있는 자원 총량 = 0
-> 변수 설정 - 개인이 보유하고 있는 자원량[트리거 발동 플레이어] = 0
-> 트리거 실행 - 수집재개

수집재개
행동 -> 변수수정 - 분배중 = 거짓

실시간공유가 아니라는 맹점도 있고, 못해도 분배중인 0.125초동안 오르는 자원량은 미스가 날테니 완벽한 총량복제는 아니겠지만, 섬멸전처럼 초단위로 큰차이가 벌어지지않는이상 체감은 크지 않으리라 생각됩니다'- ' 반복타이머의 주기가 빠르면 빠를수록 분배중 발생하는 로스타임이 커질테니 적절히 미네랄 분배조건 고려해가며 적절한 주기를 찾으시면될듯.

p.s- 전체플레이어의 총량복제가 필요한게 아니라면 그냥 동맹설정을 자원공유로 돌려놓으면 모든유저가 자원을 공유해서 함께쓸 수 있습니다. 어떤 유닛의 스킬로써 저런 기능이 들어가는거라면 주기 대신 스킬사용시 모인자원이 공유되는식으로 구성하셔도되구요.
yudam (2014-06-27 13:44:08 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
감사합니다- 간단한건데 의외로 제대로 구현하기는 좀 힘드네요, 말씀하신 방법은 생각해보지 못했는데 반복타이머가 있으면 게임이 많이 느려지지 않나요?
아이콘 부료선 (2014-06-27 14:08:09 KST)
0↑ ↓0
센스 이미지
처음 자원을 얻는 방식이 어떻냐가 중요한거 같은데, 트리거로 자원을 주는 방식이면 질문을 안했을테니, 일꾼으로 직접 채취하는 방식이라 생각하고 대답함.

유닛 능력 보면 각 일꾼마다 채취능력 있을텐데, 이벤트를 마지막 7단계로 설정하면 자원 반환시 트리거를 불러올 수 있음. 그거면 해결될거라 봄.
아이콘 부료선 (2014-06-27 16:05:19 KST)
0↑ ↓0
센스 이미지
뭔가 설명이 이상한데, 유닛 능력 이벤트로 채취하는걸 불러오면 중복 실행도 안하고 딱 알맞음.
성역의수호자 (2014-06-27 23:58:05 KST)
0↑ ↓0
센스 이미지
주기가 짧을수록 주기마다 행하는 동작이 많을수록 느려집니다. 근데, 맵만들어본 바에 의하면 저정도는 게임속도에 영향을 주지않더군요'- '(0.2초단위로 보급고 20개씩 1000개생성되는 트리거외에 이것저것 동시에 주기굴러가게 맵 만든게 있는데 아주 컴퓨터 성능이 저질인 사람이 있지않은이상 정상적으로 굴러감을 확인했습니다.)
주기적으로 구성할경우 앞서 설명했다시피 주기적 공유트리거가 발동하는동안 저장되는 미네랄을 셈하지 않게 구성해놨기떄문에 약간의 로스가 발생할수 있습니다. 이건 감안하셔야되고, 모든 미네랄을 얻는 방식(채집및 트리거로 속성수정등)에 대해 동작하는게 아니라 미네랄을 채집하는 방식에서만 공유를 하고싶으신거면 부료선님 쓰신대로 능력 7단계를 이벤트로 걸면 깔끔하게 구동될겁니다.
아이콘 mofa_b (2014-06-28 11:57:18 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
그냥 트리거 맨 위에 현재 트리거 끄기 놓고 맨 아래에 현재 트리거 켜기 놓으시면 될겁니다.
yudam (2014-06-28 15:55:03 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
적 유닛 처치시 자원을 얻게되는 상황에서 쓸 수 있는 방법이 필요했습니다. 일단 트리거 켜고 끄기를 이용하거나, 부울을 조건으로 이용해서는 완벽하게 되지 않습니다. 혹시 같은 문제가 있으신분들이 있으면 참고하세요.
먼저 전투중/비전투중 함수를 만듭니다. 아무유닛이 공격당할 때 전역변수로 정수변수를 4나 5정도로 설정해 주고, 또다른 트리거를 만들어서 매초마다 정수변수에서 1씩 빼줍니다. 그리고 정수변수가 0보다 크면 전투중 '참'을 반환하는 함수를 만듭니다.
그리고 자원이 변경될때, 전투중 함수가 '참'이라면, '팀이 얻은 자원'변수와 '플레이어가 얻은 자원'에 변경된 자원량을 더해주는 트리거를 만듭니다. 트리거 마지막 부분에서는 5초 대기후(전투중 함수에서 설정해 놓은 값으로) 또 다른 트리거를 실행시킵니다. 이 트리거는 전투중 함수가 '거짓'일 경우, '팀이 얻은 자원 - 플레이어가 얻은 자원'변수를 같은팀 플레이어들의 현재 자원양에 더해줍니다. 이렇게 하면 팀의 모든 플레이어가 자원을 똑같이 얻게 하는게 가능합니다.
yudam (2014-06-28 15:57:14 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
물론 전투가 끝나야 계산이 된다는 맹점이 있긴 합니다만, 전투중 함수의 카운트를 짧게 해준다거나 하면 거의 실시간으로 계산이 가능할겁니다. 아무튼 전 이정도면 만족스러운것 같네요.
아이콘 부료선 (2014-06-28 17:03:47 KST)
0↑ ↓0
센스 이미지
유닛 처치시 자원 획득이면, 데이터를 쓰지말고 첨부터 트리거로 자원을 얻게 하면 저런 이중고가 필요없겠죠.
아이콘 부료선 (2014-06-28 17:04:52 KST)
0↑ ↓0
센스 이미지
애초에 처음 자원줄때 다같이 주면 되니까요. 굳이 데이터로 자원 획득을 고집할 필요는 없어보이네요.
아이콘 mofa_b (2014-06-28 18:52:39 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
엥... 트리거 켜고 끄기로 완벽하게 안된다니 직접 실험해서 올린건데...
아이콘 부료선 (2014-06-28 19:16:20 KST)
0↑ ↓0
센스 이미지
트리거 끄고 켜기나 부울이나 이벤트를 죄다 씹어버리기 때문에, 손실량이 생길 수 가 있어 찝찝하죠.
유닛 처치시 자원을 얻는 방법이 두가지정도인데, 하나는 트리거로 유닛 처치시마다 돈을 주는거고, 다른 하나는 데이터에서 플래그를 설정하는 방법이죠. 보통은 데이터로 해결하는걸 추천하나, 본문과 같은 상황이면 트리거로 돈을 지급하는 방식이 더 알맞다고 봅니다.
아이콘 mofa_b (2014-06-28 19:31:31 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
동시에 여러명한테 광물 수정도 해보고 해병 200마리로 실험도 해봤는데 -_-;; 트리거는 순차적으로 진행된다고 생각하기때문에 한 사이클 내에서 처리하면 문제는 발생되지 않을거라고 생각해왔는데 틀린걸까요...
아이콘 부료선 (2014-06-28 21:13:49 KST)
0↑ ↓0
센스 이미지
타이밍 문제라, 손실이 아주 없다곤 볼 수 없을듯. 트리거가 꺼지는 시점에서 유닛을 죽이면 작동안할텐데, 뭐 낮은 확률이지만 손실자체는 있는거죠. 동시에 죽여도 문제없는건, 일단 이벤트 실행이 먼저되고 트리거 안의 꺼짐동작이 작동하는거라 그런걸겁니다.
yudam (2014-06-29 12:13:57 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
트리거로 하면 (유닛소멸->처치플레이어가 속한 팀에 자원 분배) 이렇게 되서 무지 간단하긴 하죠, 근데 왠지 트리거로 하면 리소스를 많이 잡아먹을 것 같아서요. 안그럴까요?
아이콘 부료선 (2014-06-29 13:41:50 KST)
0↑ ↓0
센스 이미지
위 트리거를 쓰나 처치플레이어로 하나 어차피 트리거를 써야하는건 똑같습니다.
아이콘 부료선 (2014-06-29 13:43:06 KST)
0↑ ↓0
센스 이미지
위에 잘못쓴게 있는데 데이터에서 플래그 설정이 아니라 그냥 처치 자원 입력하면 돈 줍니다.
아이콘 부료선 (2014-06-29 13:45:42 KST)
0↑ ↓0
센스 이미지
소멸 유닛의 자원값이라던가 처치 자원같은것도 불려올수 있으니 트리거가 길어진진 않을겁니다. 단지 처치자원은 데이터상에서 한번 습득이 되기때문에 그걸 감안해서 자원을 줘야겠죠.
아이콘 부료선 (2014-06-29 15:40:21 KST)
0↑ ↓0
센스 이미지
흔히 트리거 쓰면 렉걸린다고 하는데, 그건 특수한 경우를 제외하면 진짜 트리거를 개떡같이 작성해서 그런경우고, 왠만해선 물량렉이 대부분입니다.
iuprime (2014-07-05 11:19:27 KST) - 121.64.xxx.131
0↑ ↓0
센스 이미지를 등록해 주세요
켜기 끄기해도 손실 절대 안생김

뭐라고 설명해야 할진 모르겠는데 절대 안생김
댓글을 등록하려면 로그인 하셔야 합니다. 로그인 하시려면 [여기]를 클릭하십시오.
롤토체스 TFT - 롤체지지 LoLCHESS.GG
소환사의 협곡부터 칼바람, 우르프까지 - 포로지지 PORO.GG
배그 전적검색은 닥지지(DAK.GG)에서 가능합니다
  • (주)플레이엑스피
  • 대표: 윤석재
  • 사업자등록번호: 406-86-00726

© PlayXP Inc. All Rights Reserved.