playXP

서브 메뉴

Page. 162 / 246 [내 메뉴에 추가]
글쓰기
작성자 프리슨어필
작성일 2013-02-12 21:07:52 KST 조회 733
제목
트리거 2개 질문입니다.

1. 현재 맵에서 플레이어가 1p~8p인데 유닛 처치 점수가 5000킬이 넘을 시 처치  플레이어에게 시민 1개를 주고

거기서 1만킬을 하면 다시 시민 1개를 주는 식으로 트리거를 짜고 싶습니다.

 

즉. 5000점수(유닛처치점수) 마다 달성한 플레이어에게 시민 1개를 주는 것,

그리고 이 것을 무한 반복되게하는 것입니다.

 

이 경우 5000점이 넘을 경우 그냥 점수를 초가화시키는 트리거를 넣으면 간단한데

조건이 유닛처치점수 자체에게 영향을 주지 말아야 한다는 점이 가장 난건입니다. 

유닛 처치점수는 플레이어들끼리 싸움을 하다보면 무조건 축척이 되고 변하는 데 시민을 주려는 트리거 변수의 조건을 이 처치 점수에 연관시켜야 하기 때문입니다. 변수=변수로 하면 구현이 어렵다는 거죠,, 5000킬.1만킬.1만5천킬 이렇게 해도 되지만 모두 일일이 트리거를 짜야하니 번거롭고요,

 

점수가 5000점을 넘을 시 해당 변수도 초기화하데 다시 5000점을 넘으면 시민 지급,...이 되야합니다

그런데 이 경우 유닛 처치점수는 건드리면 안 되니 유닛처치점수가 꼬박꼬박 쌓여서

2번째 5000점을 넘을시는 1만점이 됩니다. 일일이 트리거를 짜지않고 무조건 5000점 넘을때에만 발동하고 초기화하고 발동하는 트리거가 필요하네요.

 

1번정리: 유닛 처치 점수 5000점 넘을 때마다 플레이어에게 시민 1기 지급, 몇번이든 계속 반복. 단 유닛 처치 점수 자체는 다른 데 쓰이므로 초기화하거나 영향을 주어선 안 됨,

 

 

2번. 1번에 비해서 쉬운편인데요..플레이어들이 특정조건을 달성시 메세지를 보내주고 싶습니다.,

그래서 텍스트 메세지 트리거를 쓰는 중인데 여기서 문제가 생깁니다.

가령 10만점 달성시 달성 플레이어에게 축하메세지를 보냅니다. 그런데 텍스트메세지 트리거 에서 메세지를 보낼 플레이어를 함수에선, 팀플레이어,모두 등등 목적을 달성한 플레이어에게만 메세지를 보내는 플레이어 선택항목이 없다는 것입니다,

'활성 플레이어'  로 지정하면 10만점을 넘은 플레이어에게만 메세지를 보내는 가 싶었습니다. 

이 경우 저는 자막에 메세지를 보냈는데., 10만점 넘은 플레이어뿐만이 아니라 모든 플레이어에게 메세지를 다 보내는 것 같더군요

 

1p=저. 2~6p=컴퓨터로 실험해보니

2~6p가 10만점을 달성하면 뜨는 축하 메세제(자막)이 저에게도 보이는 것입니다.

 

이런 식이라면 배틀넷 해도 그 메세지가 10만점 안 넘은 플레이어에게도 보일게 분명하지 않습니까.

해결방법을 요청합니다.

 

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

발도장 찍기
아이콘 vhdy (2013-02-12 22:22:14 KST)
0↑ ↓0
센스 이미지
1번은 어쩔수 없이 전역변수를 추가로 필요할듯 하네요.
각 플레이어마다 변수를 하나씩 만들어야 하니, 배열로 만드는게 좋겠죠.
그리고 if문 조건을 5000*변수[x]보다 크거나 같으면 참이 되게 하고,
해당 플레이어의 변수를 1씩 증가하는 걸 if문 안에 넣어주면 됩니다.

2번은 안해봐서 몰라요.
아이콘 크더기 (2013-02-12 23:00:02 KST)
0↑ ↓0
센스 이미지
플레이어를 플레이어 그룹으로 변환
프리슨어필 (2013-02-12 23:48:16 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
이 글을 작성하기전에 만든 트리거입니다... 전역변수는 미리 전에 알고 만들었고요,

이벤트
유닛 - 아무 유닛 소멸
지역 변수
조건
시민 코스트[(처치하는 플레이어)] >= 5000
행동
일반 - If (조건) then (행동) else (행동)
If
(플레이어 (처치하는 플레이어)의 종족) == 테란
시민 코스트[(처치하는 플레이어)] >= 5000
Then
변수 - 시민 코스트[(처치하는 플레이어)] 수정: + 1

여기서 수정하거나 보태야할 점은?
프리슨어필 (2013-02-12 23:57:58 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
크더기/2번문제를 가리키나보군요, 간단히 해결됬습니다. 감사해요
아이콘 vhdy (2013-02-13 00:04:09 KST)
0↑ ↓0
센스 이미지
이해를 잘못 하신듯 하군요.

전역변수[8]=1
만드시고,


If
(플레이어 (처치하는 플레이어)의 종족) == 테란
시민 코스트[(처치하는 플레이어)] >= 5000 * 전역변수[처치하는 플레이어]
then
변수 - 전역변수[처치하는 플레이어] 수정: +1

입니다.
아이콘 vhdy (2013-02-13 00:08:02 KST)
0↑ ↓0
센스 이미지
시민 코스트는 점수 같은데 그걸 수정할 이유가 없죠.
프리슨어필 (2013-02-13 00:14:08 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
시민 코스트는 점수가 아니라 그냥 이트리거를 위해서 만든 전역변수에요 ㅎ..
점수 전역변수 트리거는 따로 있습니다
아이콘 vhdy (2013-02-13 00:18:48 KST)
0↑ ↓0
센스 이미지
ㄴ그럼 저 시민 코스트 대신 점수를 넣으시면 됩니다.
프리슨어필 (2013-02-13 00:32:53 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
음,,
이벤트
유닛 - 아무 유닛 소멸
지역 변수
조건
행동
일반 - If (조건) then (행동) else (행동)
If
(플레이어 (처치하는 플레이어)의 종족) == 테란
<플레이어 점수>[(처치하는 플레이어)] >= 5000
Then
변수 - <플레이어 점수>[(처치하는 플레이어)] 수정: + 1
Else

로 했습니다.그런데, 이해가 안 가네요..
연산이 가능한 if조건은 비교입니다. 근데 비교에서
<플레이어 점수>[(처치하는 플레이어)] >= 5000 로 하던가
<플레이어 점수>[(처치하는 플레이어)] >= 전역변수 [처치하는 플레이어]
로 하던가 둘 중 하나밖에 되지 않나요?.. 여기서 전역변수 [처치하는 플레이어]
의 전역변수는 <플레이어점수 가 되겠군요

그런데 어떻게 >= 5000 * 전역변수[처치하는 플레이어] 처럼 값과 전역변수를 동시에 쓸 수 있는거죠?.. 둘 중 하나만 되야할텐데,
그리고 숫자랑 전역변수를 같이 쓸때 변수(5000)식이지, 5000이 앞에 나가는 건 처음 보네요 ㄷㄷ
프리슨어필 (2013-02-13 00:40:22 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
<플레이어 점수>는 유닛처치점수와 동등하게 올라가는 전역변수(배열)입니다. 정수변수죠
아이콘 vhdy (2013-02-13 16:14:14 KST)
0↑ ↓0
센스 이미지
음..........
트리거는 c언어를 간단하게 익혀두신후에 하시는게 좋을것 같네요.
아이콘 vhdy (2013-02-13 16:26:29 KST)
0↑ ↓0
센스 이미지
참고로 님이 궁굼해 하신건 함수 - 산술 입니다.
아이콘 고자왈애자왈 (2013-02-15 03:14:50 KST)
0↑ ↓0
센스 이미지
1번은 (현재 킬수)%5000 == 0 일 경우라고 하면 되지 않나요? 수학 - 모듈로 쓰면 괜히 전역변수 추가할 필요 없어 보이네요.

2번은 무엇을 말하시고 싶으신지 잘 모르겠습니다. 플레이어 그룹 말고 플레이어를 직접 지정하시길 원하시는 거라면 '플레이어를 플레이어 그룹으로 변환'을 사용하세요.
아이콘 vhdy (2013-02-15 17:07:24 KST)
0↑ ↓0
센스 이미지
ㄴ 점수가 딱 5000점이 안되면 망하니까요.
아이콘 vhdy (2013-02-15 17:15:21 KST)
0↑ ↓0
센스 이미지
하긴 킬수면 그럴일은 별로 없겠네요.
댓글을 등록하려면 로그인 하셔야 합니다. 로그인 하시려면 [여기]를 클릭하십시오.
롤토체스 TFT - 롤체지지 LoLCHESS.GG
소환사의 협곡부터 칼바람, 우르프까지 - 포로지지 PORO.GG
배그 전적검색은 닥지지(DAK.GG)에서 가능합니다
  • (주)플레이엑스피
  • 대표: 윤석재
  • 사업자등록번호: 406-86-00726

© PlayXP Inc. All Rights Reserved.