https://youtu.be/11_vC9nktSo



1) 인겜 시작순간 나올 순서는 가챠 이외에

    시드값을 바꿀 요소가 없기 때문에 사실상 정해진게 맞음

    섞여있는 카드패를 서로 나눠 갖는다고 이해해도 좋음 

    위 영상은 임의의 시드를 대입후 순서를 미리 안채로 연출한것임

    이후 난수고정 태초




2) 유닛이 나올순서를 예측 가능함?

    이론상 가능한데 전혀 할 필요 없음

    eudplib/random.py at c5c6ed554f30a39de743aeed95671a587898087e · armoha/eudplib (github.com)


    위 구현된 코드에 인겜 seed 값을 입력하면 다음값 예측 가능함

    다만 이건 메운디에만 한정되어 있는것임 (뽑을때만 난수변경 되는경우)


    중요한건 이미 seed값이 뭔지 알아내는 노력을 들인 시점부터

    예측이고 뭐고 그냥 원하는걸 뽑을 수 있


    매 프레임 갱신되는것도 아니고, EUDVariable()은 미네랄, 가스처럼

    메모리 변조 즉시 방이 갈리는것도 아니기 때문에

    4명이 치트엔진으로 같은 난수로 고정 한뒤, 동기(synchronous)문제만 없다면

    멀티 플레이도 됨



3) 그래서 확률 조작임?

    개발자 실수 정도로 보임

    버그 수정 난이도는 매우 간단하기 때문에 (매 프레임 randomize()를 호출 하면 됨)

    도와준 아스나 이 사람은 10초만에 고칠수 있을것임


    실제 맵에선 이런 형태로 구현됐을거라 생각함



randomize(); //내부 시드값 초기화. onPluginStart()내에서 한번만 이루어짐


function gacha_unit(cp) {

    var rand = dwrand() % k //k는 전체 경우의 수

    if (rand >= x1 && rand < x2) { //x는 해당 경우의 수

        CreateUnit(1,"일반드라군","Location",cp);

    }

    else if (rand >= x2 && rand < x3) {

        CreateUnit(1,"일반히드라","Location",cp);

    }

    //이하 줄줄이 개노가다

}