테이블이라도 확률에 문제가 없는 건 알 거고


확률 방식을 정확하게 안 봐서 모르겠는데


태초 확률은 딱 1/5120 인듯? - 0.01953% 인줄 알았는데 아닌 것 같다


요즘은 확률 조건 만드는 방식이 따로 있나 정수 뽑아서 범위로 나누거나 부동소수 이용하는 식으로



테이블 크기가 정해져 있고 그 안에서 확률에 맞는 개수 만큼 생성하고 그걸 선형으로 붙이는 등의 이상한 짓만 안 했으면 어차피 ㄱㅊ




일부 애들은 이 방식 자체가 싫고


실시간으로 011010011 스위치를 뽑아서


해당 숫자에 맞는 녀석이 나왔으면 좋겠다는 거 아니냐


근데 예전에는 이 방식으로 만들었는데 요즘은 아닌가 보네





내가 한창 유즈맵 만들던 시절에는 복권이나 뽑기 있으면 이런 방식으로 만듦


옛날에 만든 성큰 6웨이 복권인데


//-----------------------------------------------------------------//


Trigger("All players"){

Conditions:

Always();


Actions:

Set Switch("LOTTO 1", randomize);

Set Switch("LOTTO 2", randomize);

Set Switch("LOTTO 3", randomize);

Set Switch("LOTTO 4", randomize);

Set Switch("LOTTO 5", randomize);

Set Switch("LOTTO 6", randomize);

Preserve Trigger();

Comment("LOTTO SHUFFLE!\r\n\r\n9?쒕? ?댁긽 ?곸썒???뱀꺼?섏? ?딆쓬\r\n\r\n0~37 苑?r\n41~52 ?쒕? ?뱀꺼 ?뚮젮以? 41~46 1, 47~49 2, 50 3, 51 5, 52 10\r\n53~63, 38~40 ?곸썒?뱀꺼 \r\n怨⑤━?? 留덈┛3 ?쒕씪援? - 53~55\r\n?? 裕ㅽ깉3 ?덈뱶?? - 56~58\r\n諛곗뒳5 由щ쾭6 ?ъ빱7 - 59~61\r\n罹먮━嫄? ?쒕씪?? - 62, 63\r\n媛?붿뼵8 ?뚮껙8 ?湲留? - 38~40\r\n\r\n?쒕??뱀꺼 30\r\n?곸썒?뱀꺼 72\r\n蹂듦텒??湲곕?媛?1.59375\r\n");

}


//-----------------------------------------------------------------//


트리거 에디터에 이런식으로 넣고


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

LOTTO SHUFFLE!


9시민 이상 영웅들 당첨되지 않음


0~37 꽝

41~52 시민 당첨 돌려줌 41~46 1, 47~49 2, 50 3, 51 5, 52 10

53~63, 38~40 영웅당첨

골리앗2 마린3 드라군3 - 53~55

퀸4 뮤탈3 히드라5 - 56~58

배슬5 리버6 러커7 - 59~61

캐리건4 제라툴8 - 62, 63

가디언8 파벳8 저글링6 - 38~40


시민당첨 30

영웅당첨 72

복권의 기대값 1.59375

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

당시 트리거 코멘트 (게임 내에서는 당연히 안 알려줌)


6개 숫자 계속 무한 랜덤으로 돌리고 해당 플레이어가 뽑을 때 숫자에 따라 당첨




//-----------------------------------------------------------------//


Trigger("All players"){

Conditions:

Bring("Current Player", "Terran Civilian", "Location for LOTTO", At least, 1);

Switch("LOTTO 1", Not Set);

Switch("LOTTO 2", Not Set);

Switch("LOTTO 3", Not Set);

Switch("LOTTO 4", Not Set);

Switch("LOTTO 5", Not Set);

Switch("LOTTO 6", Not Set);


Actions:

Remove Unit At Location("Current Player", "Men", 1, "Location for LOTTO");

Preserve Trigger();

Comment("LOTTO SYSTEM0");

}


//-----------------------------------------------------------------//


Trigger("All players"){

Conditions:

Bring("Current Player", "Terran Civilian", "Location for LOTTO", At least, 1);

Switch("LOTTO 1", Not Set);

Switch("LOTTO 2", Not Set);

Switch("LOTTO 3", Not Set);

Switch("LOTTO 4", Not Set);

Switch("LOTTO 5", Not Set);

Switch("LOTTO 6", Set);


Actions:

Remove Unit At Location("Current Player", "Men", 1, "Location for LOTTO");

Preserve Trigger();

Comment("LOTTO SYSTEM1");

}


//-----------------------------------------------------------------//


Trigger("All players"){

Conditions:

Bring("Current Player", "Terran Civilian", "Location for LOTTO", At least, 1);

Switch("LOTTO 1", Not Set);

Switch("LOTTO 2", Not Set);

Switch("LOTTO 3", Not Set);

Switch("LOTTO 4", Not Set);

Switch("LOTTO 5", Set);

Switch("LOTTO 6", Not Set);


Actions:

Remove Unit At Location("Current Player", "Men", 1, "Location for LOTTO");

Preserve Trigger();

Comment("LOTTO SYSTEM2");

}


//-----------------------------------------------------------------//


이런식으로 현재 숫자에 따라 당첨 결정됨


굳이 말하면 그때그때 시간마다 운빨 결정


대신 이렇게 하면 트리거가 많아지기는 하는데




클래식 에디터에는 액션에 코맨트 달아놓으면 어차피 이런식으로 깔끔하게 볼 수 있고


전체적인 수정이나 추가, 생성은 에디터에서 안하고 파이썬으로 트리거 텍스트를 만들어서 넣었었음 특히 반복같은 거 있으면 훨씬 편함


내용 길어지는 거야 복붙하면 그만



라떼 추억해봤다