Ejemplo n.º 1
0
def onPluginStart():
    # (Line 16) sys.SetPColor(7, 0);    // 플레이어 7 색 변경
    sys.SetPColor(7, 0)
    # (Line 17) sys.SetPColor(8, 196);  // 플레이어 8 색 변경
    sys.SetPColor(8, 196)
    # (Line 18) sys.RegisterMSQC();     // MSQC 변수
    sys.RegisterMSQC()
    # (Line 19) sys.SinglePlayCheck();  // 싱글플레이 체크
    sys.SinglePlayCheck()
    # (Line 20) sys.SetAlly();          // 동맹 설정
    sys.SetAlly()
    # (Line 21) npc.CreateNPC();        // NPC 유닛 생성
    npc.CreateNPC()
    # (Line 22) item.SetItemInfo();     // 아이템 정보 입력
    item.SetItemInfo()
    # (Line 24) foreach (cp : EUDLoopPlayer()) {
    for cp in EUDLoopPlayer():
        # (Line 25) setcurpl(cp);
        f_setcurpl(cp)
        # (Line 26) inven.ResetInven(); // 인벤토리 초기화
        inven.ResetInven()
        # (Line 27) sys.SetName(); // 유닛 이름 변경
        sys.SetName()
        # (Line 28) screen.light[cp] = 31; // 밝기 최대로 변경
        _ARRW(screen.light, cp) << (31)
        # (Line 29) statusBar.stats[cp] = statusBar.USER_STATUS; // 상태바 기본값으로 설정
        _ARRW(statusBar.stats, cp) << (statusBar.USER_STATUS)
        # (Line 30) char.NewCharacter(); // 캐릭터 생성 (임시)
        char.NewCharacter()
        # (Line 33) item.AddItem(10000, 1, 1, 10, true);
        item.AddItem(10000, 1, 1, 10, True)
        # (Line 34) item.AddItem(10000, 1, 2, 10, true);
        item.AddItem(10000, 1, 2, 10, True)
Ejemplo n.º 2
0
def NewCharacter():
    # (Line 10) const cp = getcurpl();
    cp = f_getcurpl()
    # (Line 11) setloc("temp", 322, 280);
    f_setloc("temp", 322, 280)
    # (Line 12) bwrite(0x65FD00 + 18424 + v.playerUnit[cp], 71); // 그래픽 시민으로 변경
    f_bwrite(0x65FD00 + 18424 + v.playerUnit[cp], 71)
    # (Line 13) bwrite(0x65FD00 + 14776 + cp, 130); // 무기 NONE
    f_bwrite(0x65FD00 + 14776 + cp, 130)
    # (Line 14) if(v.singlePlay == false) CenterView("temp");
    if EUDIf()(v.singlePlay == False):
        # (Line 15) user.character[cp] = sys.SetNextUnitEPD();
        DoActions(CenterView("temp"))
    EUDEndIf()
    _ARRW(user.character, cp) << (sys.SetNextUnitEPD())
    # (Line 16) CreateUnit(1, v.playerUnit[cp], "temp", cp);
    # (Line 18) user.position[cp] = 1;
    DoActions(CreateUnit(1, v.playerUnit[cp], "temp", cp))
    _ARRW(user.position, cp) << (1)
    # (Line 19) user.alive[cp] = 1;
    _ARRW(user.alive, cp) << (1)
    # (Line 20) user.level[cp] = 1;
    _ARRW(user.level, cp) << (1)
    # (Line 27) sys.Heal();
    sys.Heal()
    # (Line 28) stats.RefreshExp();
    stats.RefreshExp()
    # (Line 29) SetMemoryXEPD(user.character[cp] + 0x08F / 4, SetTo, user.level[cp] * 16777216, 0xFF000000);
    # (Line 31) item.AddItem(10000, 2, 1, 1, false);
    DoActions(
        SetMemoryXEPD(user.character[cp] + 0x08F // 4, SetTo,
                      user.level[cp] * 16777216, 0xFF000000))
    item.AddItem(10000, 2, 1, 1, False)
    # (Line 32) item.AddItem(10000, 3, 1, 1, false);
    item.AddItem(10000, 3, 1, 1, False)
Ejemplo n.º 3
0
def Init():
    # (Line 27) setcurpl(6);
    EUDTraceLog(27)
    f_setcurpl(6)
    # (Line 28) SetAllianceStatus(Force1, Ally);
    # (Line 29) potal.PotalInit();
    EUDTraceLog(28)
    DoActions(SetAllianceStatus(Force1, Ally))
    EUDTraceLog(29)
    potal.PotalInit()
    # (Line 31) item.Init();
    EUDTraceLog(31)
    item.Init()
    # (Line 34) mobinfo.SetInfo();
    EUDTraceLog(34)
    mobinfo.SetInfo()
    # (Line 35) mobloc.MobSpawnLocationCheck();
    EUDTraceLog(35)
    mobloc.MobSpawnLocationCheck()
    # (Line 36) npc.CreateNPC();
    EUDTraceLog(36)
    npc.CreateNPC()
    # (Line 37) SetPColor(7, 0);
    EUDTraceLog(37)
    SetPColor(7, 0)
    # (Line 38) SetPColor(8, 196);
    EUDTraceLog(38)
    SetPColor(8, 196)
    # (Line 39) if(Memory(0x57F0B4, Exactly, 0)) SetVariables(single, 1);
    _t1 = EUDIf()
    EUDTraceLog(39)
    if _t1(Memory(0x57F0B4, Exactly, 0)):
        EUDTraceLog(39)
        SetVariables(single, 1)
        # (Line 40) else SetVariables(single, 0);
    if EUDElse()():
        EUDTraceLog(40)
        SetVariables(single, 0)
        # (Line 43) SetVariables(useSCA, false);
    EUDEndIf()
    EUDTraceLog(43)
    SetVariables(useSCA, False)
    # (Line 45) foreach (cp : EUDLoopPlayer()) {
    for cp in EUDLoopPlayer():
        # (Line 46) setcurpl(cp);
        EUDTraceLog(46)
        f_setcurpl(cp)
        # (Line 47) SetAllianceStatus(P7, Ally);
        # (Line 48) inven.ResetInven();
        EUDTraceLog(47)
        DoActions(SetAllianceStatus(P7, Ally))
        EUDTraceLog(48)
        inven.ResetInven()
        # (Line 49) equip.ResetEquip();
        EUDTraceLog(49)
        equip.ResetEquip()
        # (Line 50) screen.light[cp] = 31;
        EUDTraceLog(50)
        _ARRW(screen.light, cp) << (31)
Ejemplo n.º 4
0
def UseMPPtn(unit):
    # (Line 125) const cp = getcurpl();
    EUDTraceLog(125)
    cp = f_getcurpl()
    # (Line 126) if(v.KeyF[cp] == 1) {
    _t1 = EUDIf()
    EUDTraceLog(126)
    if _t1(v.KeyF[cp] == 1):
        # (Line 127) if(unit == v.unitNum[cp]) {
        _t2 = EUDIf()
        EUDTraceLog(127)
        if _t2(unit == v.unitNum[cp]):
            # (Line 128) if(user.useMPPtn[cp] == 0) {
            _t3 = EUDIf()
            EUDTraceLog(128)
            if _t3(user.useMPPtn[cp] == 0):
                # (Line 129) v.s.printAt(10, "\x05등록된 마나 물약이 없습니다");
                EUDTraceLog(129)
                v.s.printAt(10, "\x05등록된 마나 물약이 없습니다")
                # (Line 130) return;
                EUDTraceLog(130)
                EUDReturn()
                # (Line 131) }
                # (Line 132) else if(user.remainMPPtn[cp] == 0) {
            _t4 = EUDElseIf()
            EUDTraceLog(132)
            if _t4(user.remainMPPtn[cp] == 0):
                # (Line 133) v.s.printAt(10, "\x05마나 물약이 부족합니다");
                EUDTraceLog(133)
                v.s.printAt(10, "\x05마나 물약이 부족합니다")
                # (Line 134) return;
                EUDTraceLog(134)
                EUDReturn()
                # (Line 135) }
                # (Line 136) user.remainMPPtn[cp] -= 1;
            EUDEndIf()
            EUDTraceLog(136)
            _ARRW(user.remainMPPtn, cp).__isub__(1)
            # (Line 137) v.s.printAt(10, "\x04마나를 \x1E", user.recoveryMPPtn[cp], " \x04만큼 회복합니다  \x05", user.remainMPPtn[cp], " 개 남음");
            EUDTraceLog(137)
            v.s.printAt(10, "\x04마나를 \x1E", user.recoveryMPPtn[cp], " \x04만큼 회복합니다  \x05", user.remainMPPtn[cp], " 개 남음")
            # (Line 138) item.RemoveItem(1, user.useMPPtn[cp], 1);
            EUDTraceLog(138)
            item.RemoveItem(1, user.useMPPtn[cp], 1)
            # (Line 139) }
            # (Line 140) }
        EUDEndIf()
        # (Line 141) }
    EUDEndIf()
Ejemplo n.º 5
0
def EquipArmor(index):
    # (Line 235) const cp = getcurpl();
    EUDTraceLog(235)
    cp = f_getcurpl()
    # (Line 236) const a1 = armor.Armor.cast(armor.armorList[index - 1]);
    EUDTraceLog(236)
    a1 = armor.Armor.cast(armor.armorList[index - 1])
    # (Line 237) if(user.level[cp] >= a1.lv) {
    _t1 = EUDIf()
    EUDTraceLog(237)
    if _t1(user.level[cp] >= a1.lv):
        # (Line 238) const a2 = armor.Armor.cast(equip[7 * cp + 1]);
        EUDTraceLog(238)
        a2 = armor.Armor.cast(equip[7 * cp + 1])
        # (Line 239) a2.index = a1.index;
        EUDTraceLog(239)
        _ATTW(a2, 'index') << (a1.index)
        # (Line 240) a2.defense = a1.defense;
        EUDTraceLog(240)
        _ATTW(a2, 'defense') << (a1.defense)
        # (Line 241) a2.name = a1.name;
        EUDTraceLog(241)
        _ATTW(a2, 'name') << (a1.name)
        # (Line 242) settbl2(411 + cp, 0, "\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d");
        EUDTraceLog(242)
        f_settbl2(
            411 + cp, 0,
            "\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d"
        )
        # (Line 243) settbl2(411 + cp, 0, epd2s(a1.name2));
        EUDTraceLog(243)
        f_settbl2(411 + cp, 0, epd2s(a1.name2))
        # (Line 244) v.s.printAt(10, "\x1f‡ \x04", ptr2s(a2.name), " \x05장착");
        EUDTraceLog(244)
        v.s.printAt(10, "\x1f‡ \x04", ptr2s(a2.name), " \x05장착")
        # (Line 245) item.RemoveItem(3, a1.index, 1);
        EUDTraceLog(245)
        item.RemoveItem(3, a1.index, 1)
        # (Line 246) stats.SetDefense();
        EUDTraceLog(246)
        stats.SetDefense()
        # (Line 247) }
        # (Line 248) else v.s.printAt(10, "\x05장착을 위한 레벨이 부족합니다.");
    if EUDElse()():
        EUDTraceLog(248)
        v.s.printAt(10, "\x05장착을 위한 레벨이 부족합니다.")
        # (Line 249) }
    EUDEndIf()
Ejemplo n.º 6
0
def ReleaseWeapon():
    # (Line 260) const cp = getcurpl();
    EUDTraceLog(260)
    cp = f_getcurpl()
    # (Line 261) const c = Weapon.cast(equip[7 * cp + 0]);
    EUDTraceLog(261)
    c = Weapon.cast(equip[7 * cp + 0])
    # (Line 262) if(c.index == 0) return;
    _t1 = EUDIf()
    EUDTraceLog(262)
    if _t1(c.index == 0):
        EUDTraceLog(262)
        EUDReturn()
        # (Line 263) const weaponNum = c.index;
    EUDEndIf()
    EUDTraceLog(263)
    weaponNum = c.index
    # (Line 264) item.AddItem(10000, 2, weaponNum, 1, false);
    EUDTraceLog(264)
    item.AddItem(10000, 2, weaponNum, 1, False)
Ejemplo n.º 7
0
def Cheat():
    # (Line 6) const cp = getcurpl();
    EUDTraceLog(6)
    cp = f_getcurpl()
    # (Line 7) if(MemoryEPD(EPD(v.chatPattern) + cp, Exactly, 1)) {
    _t1 = EUDIf()
    EUDTraceLog(7)
    if _t1(MemoryEPD(EPD(v.chatPattern) + cp, Exactly, 1)):
        # (Line 8) v.s.print("길이 : ", dwread_epd(EPD(v.chatLen) + cp));
        EUDTraceLog(8)
        v.s.print("길이 : ", f_dwread_epd(EPD(v.chatLen) + cp))
        # (Line 9) v.s.print("패턴 : ", dwread_epd(EPD(v.chatPattern) + cp));
        EUDTraceLog(9)
        v.s.print("패턴 : ", f_dwread_epd(EPD(v.chatPattern) + cp))
        # (Line 11) const itemCode = Db(5);
        EUDTraceLog(11)
        itemCode = Db(5)
        # (Line 12) memcpy(itemCode, dwread_epd(EPD(v.chatAddr) + cp) + 4, 5); // addr의 4바이트 길이만큼의 내용을 num에 복사
        EUDTraceLog(12)
        f_memcpy(itemCode, f_dwread_epd(EPD(v.chatAddr) + cp) + 4, 5)
        # (Line 13) var code, d = parse(itemCode, radix=10); // 정수와 자릿수 반환, 숫자가 아니면 0 반환
        EUDTraceLog(13)
        code, d = _MVAR([f_parse(itemCode, radix=10)])
        # (Line 14) v.s.print("\x04code : ", code);
        EUDTraceLog(14)
        v.s.print("\x04code : ", code)
        # (Line 15) var type = code / 10000;
        EUDTraceLog(15)
        type = EUDVariable()
        type << (code // 10000)
        # (Line 16) if(type > 3) return;
        _t2 = EUDIf()
        EUDTraceLog(16)
        if _t2(type <= 3, neg=True):
            EUDTraceLog(16)
            EUDReturn()
            # (Line 17) code -= type * 10000;
        EUDEndIf()
        EUDTraceLog(17)
        code.__isub__(type * 10000)
        # (Line 18) var index = code / 100;
        EUDTraceLog(18)
        index = EUDVariable()
        index << (code // 100)
        # (Line 19) code -= index * 100;
        EUDTraceLog(19)
        code.__isub__(index * 100)
        # (Line 20) var amount = code;
        EUDTraceLog(20)
        amount = EUDVariable()
        amount << (code)
        # (Line 22) v.s.print("\x17type \x04: ", type, "  \x17index \x04: ", index, "  \x17amount \x04: ", amount);
        EUDTraceLog(22)
        v.s.print("\x17type \x04: ", type, "  \x17index \x04: ", index,
                  "  \x17amount \x04: ", amount)
        # (Line 23) item.AddItem(10000, type, index, amount, true);
        EUDTraceLog(23)
        item.AddItem(10000, type, index, amount, True)
        # (Line 24) }
        # (Line 36) }
    EUDEndIf()
Ejemplo n.º 8
0
def OpenBox():
    # (Line 22) const cp = getcurpl();
    EUDTraceLog(22)
    cp = f_getcurpl()
    # (Line 23) if(v.key[cp] == 0) return;
    _t1 = EUDIf()
    EUDTraceLog(23)
    if _t1(v.key[cp] == 0):
        EUDTraceLog(23)
        EUDReturn()
        # (Line 24) if(user.inMap[cp] == 2) {
    EUDEndIf()
    _t2 = EUDIf()
    EUDTraceLog(24)
    if _t2(user.inMap[cp] == 2):
        # (Line 25) if(sys.EPDBring(v.locNum[cp], box[0])) {
        _t3 = EUDIf()
        EUDTraceLog(25)
        if _t3(sys.EPDBring(v.locNum[cp], box[0])):
            # (Line 26) if(openedBox1[cp] == 0) {
            _t4 = EUDIf()
            EUDTraceLog(26)
            if _t4(openedBox1[cp] == 0):
                # (Line 27) openedBox1[cp] = 1;
                EUDTraceLog(27)
                _ARRW(openedBox1, cp) << (1)
                # (Line 28) item.AddItem(10000, 1, 1, 30, false);
                EUDTraceLog(28)
                item.AddItem(10000, 1, 1, 30, False)
                # (Line 29) item.AddItem(10000, 1, 16, 30, false);
                EUDTraceLog(29)
                item.AddItem(10000, 1, 16, 30, False)
                # (Line 30) v.s.printAt(10, "\x13\x05소량의 물약을 획득했다");
                EUDTraceLog(30)
                v.s.printAt(10, "\x13\x05소량의 물약을 획득했다")
                # (Line 31) }
                # (Line 32) else v.s.printAt(10, "\x13\x05비어있다");
            if EUDElse()():
                EUDTraceLog(32)
                v.s.printAt(10, "\x13\x05비어있다")
                # (Line 33) }
            EUDEndIf()
            # (Line 34) else if(sys.EPDBring(v.locNum[cp], box[1])) {
        _t5 = EUDElseIf()
        EUDTraceLog(34)
        if _t5(sys.EPDBring(v.locNum[cp], box[1])):
            # (Line 35) if(openedBox2[cp] == 0) {
            _t6 = EUDIf()
            EUDTraceLog(35)
            if _t6(openedBox2[cp] == 0):
                # (Line 36) openedBox2[cp] = 1;
                EUDTraceLog(36)
                _ARRW(openedBox2, cp) << (1)
                # (Line 37) item.AddItem(10000, 2, 1, 1, false);
                EUDTraceLog(37)
                item.AddItem(10000, 2, 1, 1, False)
                # (Line 38) v.s.printAt(10, "\x13\x05무기를 획득했다");
                EUDTraceLog(38)
                v.s.printAt(10, "\x13\x05무기를 획득했다")
                # (Line 39) }
                # (Line 40) else v.s.printAt(10, "\x13\x05비어있다");
            if EUDElse()():
                EUDTraceLog(40)
                v.s.printAt(10, "\x13\x05비어있다")
                # (Line 41) }
            EUDEndIf()
            # (Line 42) }
        EUDEndIf()
        # (Line 43) }
    EUDEndIf()
Ejemplo n.º 9
0
def Inventory():
    # (Line 43) const cp = getcurpl();
    cp = f_getcurpl()
    # (Line 44) const t = 24 * cp;
    t = 24 * cp
    # (Line 46) if(v.KeyI[cp] == 1) {
    if EUDIf()(v.KeyI[cp] == 1):
        # (Line 47) if(user.openedInven[cp] == 0) {
        if EUDIf()(user.openedInven[cp] == 0):
            # (Line 48) if(user.conv[cp] == 0) Open();
            if EUDIf()(user.conv[cp] == 0):
                Open()
                # (Line 49) }
            EUDEndIf()
            # (Line 50) else Close();
        if EUDElse()():
            Close()
            # (Line 51) }
        EUDEndIf()
        # (Line 53) if(user.openedInven[cp] == 1) {
    EUDEndIf()
    if EUDIf()(user.openedInven[cp] == 1):
        # (Line 54) if(type[cp] == 0) {
        if EUDIf()(type[cp] == 0):
            # (Line 55) if(v.textRefresh[cp] == 1) {
            if EUDIf()(v.textRefresh[cp] == 1):
                # (Line 56) v.textRefresh[cp] = 0;
                _ARRW(v.textRefresh, cp) << (0)
                # (Line 57) const inven1 = Inven.cast(inven[t + page[cp] + 0]);
                inven1 = Inven.cast(inven[t + page[cp] + 0])
                # (Line 58) const inven2 = Inven.cast(inven[t + page[cp] + 1]);
                inven2 = Inven.cast(inven[t + page[cp] + 1])
                # (Line 59) const inven3 = Inven.cast(inven[t + page[cp] + 2]);
                inven3 = Inven.cast(inven[t + page[cp] + 2])
                # (Line 60) const inven4 = Inven.cast(inven[t + page[cp] + 3]);
                inven4 = Inven.cast(inven[t + page[cp] + 3])
                # (Line 61) const inven5 = Inven.cast(inven[t + page[cp] + 4]);
                inven5 = Inven.cast(inven[t + page[cp] + 4])
                # (Line 62) const inven6 = Inven.cast(inven[t + page[cp] + 5]);
                inven6 = Inven.cast(inven[t + page[cp] + 5])
                # (Line 64) v.d.insert(0);
                v.d.insert(0)
                # (Line 65) v.d.append("\x1c   [ 인벤토리 ]\n");
                v.d.append("\x1c   [ 인벤토리 ]\n")
                # (Line 66) v.d.append("\x1e────────────────────\n");
                v.d.append("\x1e────────────────────\n")
                # (Line 67) v.d.append("   ", ptr2s(color[0]), "\x07■ ", ptr2s(color[0]), ptr2s(inven1.name), "  \x19[", inven1.amount, " 개]\n");
                v.d.append("   ", ptr2s(color[0]), "\x07■ ", ptr2s(color[0]),
                           ptr2s(inven1.name), "  \x19[", inven1.amount,
                           " 개]\n")
                # (Line 68) v.d.append("   ", ptr2s(color[1]), "\x07■ ", ptr2s(color[1]), ptr2s(inven2.name), "  \x19[", inven2.amount, " 개]\n");
                v.d.append("   ", ptr2s(color[1]), "\x07■ ", ptr2s(color[1]),
                           ptr2s(inven2.name), "  \x19[", inven2.amount,
                           " 개]\n")
                # (Line 69) v.d.append("   ", ptr2s(color[2]), "\x07■ ", ptr2s(color[2]), ptr2s(inven3.name), "  \x19[", inven3.amount, " 개]\n");
                v.d.append("   ", ptr2s(color[2]), "\x07■ ", ptr2s(color[2]),
                           ptr2s(inven3.name), "  \x19[", inven3.amount,
                           " 개]\n")
                # (Line 70) v.d.append("   ", ptr2s(color[3]), "\x07■ ", ptr2s(color[3]), ptr2s(inven4.name), "  \x19[", inven4.amount, " 개]\n");
                v.d.append("   ", ptr2s(color[3]), "\x07■ ", ptr2s(color[3]),
                           ptr2s(inven4.name), "  \x19[", inven4.amount,
                           " 개]\n")
                # (Line 71) v.d.append("   ", ptr2s(color[4]), "\x07■ ", ptr2s(color[4]), ptr2s(inven5.name), "  \x19[", inven5.amount, " 개]\n");
                v.d.append("   ", ptr2s(color[4]), "\x07■ ", ptr2s(color[4]),
                           ptr2s(inven5.name), "  \x19[", inven5.amount,
                           " 개]\n")
                # (Line 72) v.d.append("   ", ptr2s(color[5]), "\x07■ ", ptr2s(color[5]), ptr2s(inven6.name), "  \x19[", inven6.amount, " 개]\n");
                v.d.append("   ", ptr2s(color[5]), "\x07■ ", ptr2s(color[5]),
                           ptr2s(inven6.name), "  \x19[", inven6.amount,
                           " 개]\n")
                # (Line 73) if(curPage[cp] == 1) v.d.append("   \x1f[1]  \x1e[2]  \x1e[3]  \x1e[4]  \x07[잠금]");
                if EUDIf()(curPage[cp] == 1):
                    v.d.append(
                        "   \x1f[1]  \x1e[2]  \x1e[3]  \x1e[4]  \x07[잠금]")
                    # (Line 74) else if(curPage[cp] == 2) v.d.append("   \x0e[1]  \x1f[2]  \x1e[3]  \x1e[4]  \x07[잠금]");
                if EUDElseIf()(curPage[cp] == 2):
                    v.d.append(
                        "   \x0e[1]  \x1f[2]  \x1e[3]  \x1e[4]  \x07[잠금]")
                    # (Line 75) else if(curPage[cp] == 3) v.d.append("   \x1e[1]  \x1e[2]  \x1f[3]  \x1e[4]  \x07[잠금]");
                if EUDElseIf()(curPage[cp] == 3):
                    v.d.append(
                        "   \x1e[1]  \x1e[2]  \x1f[3]  \x1e[4]  \x07[잠금]")
                    # (Line 76) else if(curPage[cp] == 4) v.d.append("   \x1e[1]  \x1e[2]  \x1e[3]  \x1f[4]  \x07[잠금]");
                if EUDElseIf()(curPage[cp] == 4):
                    v.d.append(
                        "   \x1e[1]  \x1e[2]  \x1e[3]  \x1f[4]  \x07[잠금]")
                    # (Line 77) }
                EUDEndIf()
                # (Line 78) v.d.DisplayAt(0);
            EUDEndIf()
            v.d.DisplayAt(0)
            # (Line 79) ChangeSelectColorMain();
            ChangeSelectColorMain()
            # (Line 80) if(v.mouseClick[cp] == 1) {
            if EUDIf()(v.mouseClick[cp] == 1):
                # (Line 81) if(v.mouseX[cp] < 20 || v.mouseX[cp] > 242) return;
                if EUDIf()(EUDSCOr()(v.mouseX[cp] >= 20,
                                     neg=True)(v.mouseX[cp] <= 242,
                                               neg=True)()):
                    EUDReturn()
                    # (Line 82) if(v.mouseY[cp] < 144 || v.mouseY[cp] > 236) return;
                EUDEndIf()
                if EUDIf()(EUDSCOr()(v.mouseY[cp] >= 144,
                                     neg=True)(v.mouseY[cp] <= 236,
                                               neg=True)()):
                    EUDReturn()
                    # (Line 83) for(var i = 0; i < 5; i++) {
                EUDEndIf()
                i = EUDVariable()
                i << (0)
                if EUDWhile()(i >= 5, neg=True):

                    def _t15():
                        i.__iadd__(1)

                    # (Line 84) if(sys.clickedLine(i + 2)) {
                    if EUDIf()(sys.f_clickedLine(i + 2)):
                        # (Line 85) SelectSlot(i + 1);
                        SelectSlot(i + 1)
                        # (Line 86) break;
                        EUDBreak()
                        # (Line 87) }
                        # (Line 88) }
                    EUDEndIf()
                    # (Line 89) }
                    EUDSetContinuePoint()
                    _t15()
                EUDEndWhile()
                # (Line 90) }
            EUDEndIf()
            # (Line 91) else if(type[cp] == 1) {
        if EUDElseIf()(type[cp] == 1):
            # (Line 92) if(v.textRefresh[cp] == 1) {
            if EUDIf()(v.textRefresh[cp] == 1):
                # (Line 93) v.textRefresh[cp] = 0;
                _ARRW(v.textRefresh, cp) << (0)
                # (Line 94) v.d.insert(0);
                v.d.insert(0)
                # (Line 95) v.d.append("\x1c   [ 인벤토리 ]\n");
                v.d.append("\x1c   [ 인벤토리 ]\n")
                # (Line 96) v.d.append("\x1e────────────────────\n");
                v.d.append("\x1e────────────────────\n")
                # (Line 97) v.d.append("  \x1E이름 \x04: ", ptr2s(showName[cp]), "\n");
                v.d.append("  \x1E이름 \x04: ", ptr2s(showName[cp]), "\n")
                # (Line 98) v.d.append("  \x1E보유 \x04: ", showAmount[cp], "   \x1E회복량 \x04: ", showValue1[cp],"\n");
                v.d.append("  \x1E보유 \x04: ", showAmount[cp],
                           "   \x1E회복량 \x04: ", showValue1[cp], "\n")
                # (Line 99) v.d.append("  \x1E버릴 개수 \x04: \x04", showThrowAmount[cp], "\n");
                v.d.append("  \x1E버릴 개수 \x04: \x04", showThrowAmount[cp], "\n")
                # (Line 100) v.d.append("  \x15▼\x04-1   \x15▼\x04-10   \x15▲\x04+1   \x15▲\x04+10\n");
                v.d.append(
                    "  \x15▼\x04-1   \x15▼\x04-10   \x15▲\x04+1   \x15▲\x04+10\n"
                )
                # (Line 101) v.d.append("  ", ptr2s(color[0]), "단축키 등록\n");
                v.d.append("  ", ptr2s(color[0]), "단축키 등록\n")
                # (Line 102) v.d.append("  ", ptr2s(color[1]), "버리기\n");
                v.d.append("  ", ptr2s(color[1]), "버리기\n")
                # (Line 103) v.d.append("  ", ptr2s(color[2]), "뒤로 가기");
                v.d.append("  ", ptr2s(color[2]), "뒤로 가기")
                # (Line 104) }
                # (Line 105) v.d.DisplayAt(0);
            EUDEndIf()
            v.d.DisplayAt(0)
            # (Line 106) ChangeSelectColorPotion();
            ChangeSelectColorPotion()
            # (Line 107) if(v.mouseClick[cp] == 1) {
            if EUDIf()(v.mouseClick[cp] == 1):
                # (Line 108) if(v.mouseY[cp] < 190 || v.mouseY[cp] > 254) return;
                if EUDIf()(EUDSCOr()(v.mouseY[cp] >= 190,
                                     neg=True)(v.mouseY[cp] <= 254,
                                               neg=True)()):
                    EUDReturn()
                    # (Line 109) if(v.mouseX[cp] < 35) return;
                EUDEndIf()
                if EUDIf()(v.mouseX[cp] >= 35, neg=True):
                    EUDReturn()
                    # (Line 110) if(sys.clickedLine(5)) {
                EUDEndIf()
                if EUDIf()(sys.f_clickedLine(5)):
                    # (Line 111) if(v.mouseX[cp] > 187) return;
                    if EUDIf()(v.mouseX[cp] <= 187, neg=True):
                        EUDReturn()
                        # (Line 112) if(v.mouseX[cp] <= 43) ClickMinus1();
                    EUDEndIf()
                    if EUDIf()(v.mouseX[cp] <= 43):
                        ClickMinus1()
                        # (Line 113) else if(v.mouseX[cp] >= 53 && v.mouseX[cp] <= 87) ClickMinus10();
                    if EUDElseIf()(EUDSCAnd()(v.mouseX[cp] >= 53)(
                            v.mouseX[cp] <= 87)()):
                        ClickMinus10()
                        # (Line 114) else if(v.mouseX[cp] >= 96 && v.mouseX[cp] <= 123) ClickPlus1();
                    if EUDElseIf()(EUDSCAnd()(v.mouseX[cp] >= 96)(
                            v.mouseX[cp] <= 123)()):
                        ClickPlus1()
                        # (Line 115) else if(v.mouseX[cp] >= 134 && v.mouseX[cp] <= 170) ClickPlus10();
                    if EUDElseIf()(EUDSCAnd()(v.mouseX[cp] >= 134)(
                            v.mouseX[cp] <= 170)()):
                        ClickPlus10()
                        # (Line 116) }
                    EUDEndIf()
                    # (Line 117) else if(sys.clickedLine(6)) RegisterPotion();
                if EUDElseIf()(sys.f_clickedLine(6)):
                    RegisterPotion()
                    # (Line 118) else if(sys.clickedLine(7)) {
                if EUDElseIf()(sys.f_clickedLine(7)):
                    # (Line 119) if(v.mouseX[cp] <= 91) {
                    if EUDIf()(v.mouseX[cp] <= 91):
                        # (Line 120) PlayWAV("staredit\\wav\\click2.ogg");
                        # (Line 121) if(showAmount[cp] >= showThrowAmount[cp]) {
                        DoActions(PlayWAV("staredit\\wav\\click2.ogg"))
                        if EUDIf()(showAmount[cp] >= showThrowAmount[cp]):
                            # (Line 122) item.RemoveItem(showType[cp], showIndex[cp], showThrowAmount[cp]);
                            item.RemoveItem(showType[cp], showIndex[cp],
                                            showThrowAmount[cp])
                            # (Line 123) showAmount[cp] -= showThrowAmount[cp];
                            _ARRW(showAmount, cp).__isub__(showThrowAmount[cp])
                            # (Line 124) if(showThrowAmount[cp] > showAmount[cp]) showThrowAmount[cp] = showAmount[cp];
                            if EUDIf()(showThrowAmount[cp] <= showAmount[cp],
                                       neg=True):
                                _ARRW(showThrowAmount, cp) << (showAmount[cp])
                                # (Line 125) if(showIndex[cp] <= 15 && showIndex[cp] == user.useHPPtn[cp]) user.remainHPPtn[cp] = showAmount[cp];
                            EUDEndIf()
                            if EUDIf()(EUDSCAnd()(showIndex[cp] <= 15)(
                                    showIndex[cp] == user.useHPPtn[cp])()):
                                _ARRW(user.remainHPPtn, cp) << (showAmount[cp])
                                # (Line 126) else if(showIndex[cp] == user.useMPPtn[cp]) user.remainMPPtn[cp] = showAmount[cp];
                            if EUDElseIf()(showIndex[cp] == user.useMPPtn[cp]):
                                _ARRW(user.remainMPPtn, cp) << (showAmount[cp])
                                # (Line 127) if(showAmount[cp] == 0) Back();
                            EUDEndIf()
                            if EUDIf()(showAmount[cp] == 0):
                                Back()
                                # (Line 128) v.textRefresh[cp] = 1;
                            EUDEndIf()
                            _ARRW(v.textRefresh, cp) << (1)
                            # (Line 129) }
                            # (Line 130) }
                        EUDEndIf()
                        # (Line 131) }
                    EUDEndIf()
                    # (Line 132) else if(sys.clickedLine(8)) {
                if EUDElseIf()(sys.f_clickedLine(8)):
                    # (Line 133) if(v.mouseX[cp] <= 105) {
                    if EUDIf()(v.mouseX[cp] <= 105):
                        # (Line 134) PlayWAV("staredit\\wav\\click2.ogg");
                        # (Line 135) Back();
                        DoActions(PlayWAV("staredit\\wav\\click2.ogg"))
                        Back()
                        # (Line 136) }
                        # (Line 137) }
                    EUDEndIf()
                    # (Line 138) }
                EUDEndIf()
                # (Line 139) }
            EUDEndIf()
            # (Line 140) else if(type[cp] == 2 || type[cp] == 3) {
        if EUDElseIf()(EUDSCOr()(type[cp] == 2)(type[cp] == 3)()):
            # (Line 141) if(v.textRefresh[cp] == 1) {
            if EUDIf()(v.textRefresh[cp] == 1):
                # (Line 142) v.textRefresh[cp] = 0;
                _ARRW(v.textRefresh, cp) << (0)
                # (Line 143) v.d.insert(0);
                v.d.insert(0)
                # (Line 144) v.d.append("\x1c   [ 인벤토리 ]\n");
                v.d.append("\x1c   [ 인벤토리 ]\n")
                # (Line 145) v.d.append("\x1e────────────────────\n");
                v.d.append("\x1e────────────────────\n")
                # (Line 146) v.d.append("  \x1E이름 \x04: ", ptr2s(showName[cp]), "\n");
                v.d.append("  \x1E이름 \x04: ", ptr2s(showName[cp]), "\n")
                # (Line 147) v.d.append("  \x1E보유 \x04: ", showAmount[cp], "\n");
                v.d.append("  \x1E보유 \x04: ", showAmount[cp], "\n")
                # (Line 148) v.d.append("  \x1E레벨 제한 \x04: \x04", showLevel[cp], "\n");
                v.d.append("  \x1E레벨 제한 \x04: \x04", showLevel[cp], "\n")
                # (Line 149) if(showType[cp] == 2) v.d.append("  \x15공격력 \x04: ", showValue1[cp], "\n");
                if EUDIf()(showType[cp] == 2):
                    v.d.append("  \x15공격력 \x04: ", showValue1[cp], "\n")
                    # (Line 150) else if(showType[cp] == 3) v.d.append("  \x15방어력 \x04: ", showValue1[cp], "\n");
                if EUDElseIf()(showType[cp] == 3):
                    v.d.append("  \x15방어력 \x04: ", showValue1[cp], "\n")
                    # (Line 151) v.d.append("  ", ptr2s(color[0]), "장착하기\n");
                EUDEndIf()
                v.d.append("  ", ptr2s(color[0]), "장착하기\n")
                # (Line 152) v.d.append("  ", ptr2s(color[1]), "버리기\n");
                v.d.append("  ", ptr2s(color[1]), "버리기\n")
                # (Line 153) v.d.append("  ", ptr2s(color[2]), "뒤로 가기");
                v.d.append("  ", ptr2s(color[2]), "뒤로 가기")
                # (Line 154) }
                # (Line 155) v.d.DisplayAt(0);
            EUDEndIf()
            v.d.DisplayAt(0)
            # (Line 156) ChangeSelectColorEquip();
            ChangeSelectColorEquip()
            # (Line 157) if(v.mouseClick[cp] == 1) {
            if EUDIf()(v.mouseClick[cp] == 1):
                # (Line 159) if(v.mouseY[cp] < 174 || v.mouseY[cp] > 238) return;
                if EUDIf()(EUDSCOr()(v.mouseY[cp] >= 174,
                                     neg=True)(v.mouseY[cp] <= 238,
                                               neg=True)()):
                    EUDReturn()
                    # (Line 160) if(v.mouseX[cp] < 35) return;
                EUDEndIf()
                if EUDIf()(v.mouseX[cp] >= 35, neg=True):
                    EUDReturn()
                    # (Line 161) if(sys.clickedLine(5)) {
                EUDEndIf()
                if EUDIf()(sys.f_clickedLine(5)):
                    # (Line 162) if(v.mouseX[cp] <= 116) {
                    if EUDIf()(v.mouseX[cp] <= 116):
                        # (Line 163) PlayWAV("staredit\\wav\\click2.ogg");
                        # (Line 166) Back();
                        DoActions(PlayWAV("staredit\\wav\\click2.ogg"))
                        Back()
                        # (Line 167) }
                        # (Line 168) }
                    EUDEndIf()
                    # (Line 169) else if(sys.clickedLine(6)) {
                if EUDElseIf()(sys.f_clickedLine(6)):
                    # (Line 170) if(v.mouseX[cp] <= 91) {
                    if EUDIf()(v.mouseX[cp] <= 91):
                        # (Line 171) PlayWAV("staredit\\wav\\click2.ogg");
                        # (Line 172) item.RemoveItem(showType[cp], showIndex[cp], showThrowAmount[cp]);
                        DoActions(PlayWAV("staredit\\wav\\click2.ogg"))
                        item.RemoveItem(showType[cp], showIndex[cp],
                                        showThrowAmount[cp])
                        # (Line 173) showAmount[cp] -= 1;
                        _ARRW(showAmount, cp).__isub__(1)
                        # (Line 174) if(showAmount[cp] == 0) Back();
                        if EUDIf()(showAmount[cp] == 0):
                            Back()
                            # (Line 175) v.textRefresh[cp] = 1;
                        EUDEndIf()
                        _ARRW(v.textRefresh, cp) << (1)
                        # (Line 176) }
                        # (Line 177) }
                    EUDEndIf()
                    # (Line 178) else if(sys.clickedLine(7)) {
                if EUDElseIf()(sys.f_clickedLine(7)):
                    # (Line 179) if(v.mouseX[cp] <= 105) {
                    if EUDIf()(v.mouseX[cp] <= 105):
                        # (Line 180) PlayWAV("staredit\\wav\\click2.ogg");
                        # (Line 181) Back();
                        DoActions(PlayWAV("staredit\\wav\\click2.ogg"))
                        Back()
                        # (Line 182) }
                        # (Line 183) }
                    EUDEndIf()
                    # (Line 184) }
                EUDEndIf()
                # (Line 185) }
            EUDEndIf()
            # (Line 186) }
        EUDEndIf()
        # (Line 187) }
    EUDEndIf()
Ejemplo n.º 10
0
def EquipWeapon(index):
    # (Line 189) const cp = getcurpl();
    EUDTraceLog(189)
    cp = f_getcurpl()
    # (Line 190) const w1 = weapon.Weapon.cast(weapon.weaponList[index - 1]);
    EUDTraceLog(190)
    w1 = weapon.Weapon.cast(weapon.weaponList[index - 1])
    # (Line 191) if(user.level[cp] >= w1.lv) {
    _t1 = EUDIf()
    EUDTraceLog(191)
    if _t1(user.level[cp] >= w1.lv):
        # (Line 192) const w2 = Weapon.cast(equip[7 * cp + 0]);
        EUDTraceLog(192)
        w2 = Weapon.cast(equip[7 * cp + 0])
        # (Line 193) if(index == w2.index) {
        _t2 = EUDIf()
        EUDTraceLog(193)
        if _t2(index == w2.index):
            # (Line 194) v.s.print("\x05이미 장착중입니다");
            EUDTraceLog(194)
            v.s.print("\x05이미 장착중입니다")
            # (Line 195) return;
            EUDTraceLog(195)
            EUDReturn()
            # (Line 196) }
            # (Line 197) ReleaseWeapon();
        EUDEndIf()
        EUDTraceLog(197)
        ReleaseWeapon()
        # (Line 198) w2.index = w1.index;
        EUDTraceLog(198)
        _ATTW(w2, 'index') << (w1.index)
        # (Line 199) w2.phyDmg = w1.phyDmg;
        EUDTraceLog(199)
        _ATTW(w2, 'phyDmg') << (w1.phyDmg)
        # (Line 200) w2.magicDmg = w1.magicDmg;
        EUDTraceLog(200)
        _ATTW(w2, 'magicDmg') << (w1.magicDmg)
        # (Line 201) w2.name = w1.name;
        EUDTraceLog(201)
        _ATTW(w2, 'name') << (w1.name)
        # (Line 202) user.equipedWeapon[cp] = index;
        EUDTraceLog(202)
        _ARRW(user.equipedWeapon, cp) << (index)
        # (Line 204) stats.SetDamage();
        EUDTraceLog(204)
        stats.SetDamage()
        # (Line 205) settbl2(229 + cp, 0, "\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d");
        EUDTraceLog(205)
        f_settbl2(
            229 + cp, 0,
            "\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d")
        # (Line 206) settbl2(229 + cp, 0, epd2s(w1.name2));
        EUDTraceLog(206)
        f_settbl2(229 + cp, 0, epd2s(w1.name2))
        # (Line 207) v.s.printAt(10, "\x1f‡ \x04", ptr2s(w2.name), " \x05장착");
        EUDTraceLog(207)
        v.s.printAt(10, "\x1f‡ \x04", ptr2s(w2.name), " \x05장착")
        # (Line 208) item.RemoveItem(2, w1.index, 1);
        EUDTraceLog(208)
        item.RemoveItem(2, w1.index, 1)
        # (Line 211) if(index < 50) {
        _t3 = EUDIf()
        EUDTraceLog(211)
        if _t3(index >= 50, neg=True):
            # (Line 212) if(user.equipedWeaponType[cp] != 1) {
            _t4 = EUDIf()
            EUDTraceLog(212)
            if _t4(user.equipedWeaponType[cp] == 1, neg=True):
                # (Line 213) bwrite(0x65FD00 + 18424 + v.unitNum[cp], 188); // 외형 다크
                EUDTraceLog(213)
                f_bwrite(0x65FD00 + 18424 + v.unitNum[cp], 188)
                # (Line 214) bwrite(0x65FD00 + 14776 + cp, cp); // 무기
                EUDTraceLog(214)
                f_bwrite(0x65FD00 + 14776 + cp, cp)
                # (Line 215) dwwrite(0x6564E0 + 3984 + cp * 4, 32); // 무기 사거리
                EUDTraceLog(215)
                f_dwwrite(0x6564E0 + 3984 + cp * 4, 32)
                # (Line 216) bwrite(0x6564E0 + 2776 + cp, 40); // 무기 공격속도
                EUDTraceLog(216)
                f_bwrite(0x6564E0 + 2776 + cp, 40)
                # (Line 217) wwrite(0x6564E0 + 672 + cp * 2, 353); // 무기 아이콘
                EUDTraceLog(217)
                f_wwrite(0x6564E0 + 672 + cp * 2, 353)
                # (Line 218) user.equipedWeaponType[cp] = 1;
                EUDTraceLog(218)
                _ARRW(user.equipedWeaponType, cp) << (1)
                # (Line 219) }
                # (Line 220) else return;
            if EUDElse()():
                EUDTraceLog(220)
                EUDReturn()
                # (Line 221) }
            EUDEndIf()
            # (Line 222) setloc("temp", user.posX[cp], user.posY[cp]);
        EUDEndIf()
        EUDTraceLog(222)
        f_setloc("temp", user.posX[cp], user.posY[cp])
        # (Line 223) var hp = dwread_epd(user.character[cp] + 0x8 / 4);
        EUDTraceLog(223)
        hp = EUDVariable()
        hp << (f_dwread_epd(user.character[cp] + 0x8 // 4))
        # (Line 224) RemoveUnit(v.unitNum[cp], cp);
        # (Line 225) user.character[cp] = sys.SetNextUnitEPD();
        EUDTraceLog(224)
        DoActions(RemoveUnit(v.unitNum[cp], cp))
        EUDTraceLog(225)
        _ARRW(user.character, cp) << (sys.SetNextUnitEPD())
        # (Line 226) CreateUnit(1, v.unitNum[cp], "temp", cp);
        # (Line 228) SetMemoryXEPD(user.character[cp] + 0x8F / 4, SetTo, user.level[cp] << 24, 0xFF000000);
        EUDTraceLog(226)
        DoActions(CreateUnit(1, v.unitNum[cp], "temp", cp))
        # (Line 229) SetMemoryEPD(user.character[cp] + 0x8 / 4, SetTo, hp);
        EUDTraceLog(228)
        DoActions(
            SetMemoryXEPD(user.character[cp] + 0x8F // 4, SetTo,
                          _LSH(user.level[cp], 24), 0xFF000000))
        # (Line 230) }
        EUDTraceLog(229)
        DoActions(SetMemoryEPD(user.character[cp] + 0x8 // 4, SetTo, hp))
        # (Line 231) else v.s.printAt(10, "\x05장착을 위한 레벨이 부족합니다.");
    if EUDElse()():
        EUDTraceLog(231)
        v.s.printAt(10, "\x05장착을 위한 레벨이 부족합니다.")
        # (Line 232) }
    EUDEndIf()
Ejemplo n.º 11
0
def UseHPPtn(unit):
    # (Line 101) const cp = getcurpl();
    EUDTraceLog(101)
    cp = f_getcurpl()
    # (Line 102) if(v.KeyD[cp] == 1) {
    _t1 = EUDIf()
    EUDTraceLog(102)
    if _t1(v.KeyD[cp] == 1):
        # (Line 103) if(unit == v.unitNum[cp]) {
        _t2 = EUDIf()
        EUDTraceLog(103)
        if _t2(unit == v.unitNum[cp]):
            # (Line 104) if(user.useHPPtn[cp] == 0) {
            _t3 = EUDIf()
            EUDTraceLog(104)
            if _t3(user.useHPPtn[cp] == 0):
                # (Line 105) v.s.printAt(10, "\x05등록된 체력 물약이 없습니다");
                EUDTraceLog(105)
                v.s.printAt(10, "\x05등록된 체력 물약이 없습니다")
                # (Line 106) return;
                EUDTraceLog(106)
                EUDReturn()
                # (Line 107) }
                # (Line 108) else if(user.remainHPPtn[cp] == 0) {
            _t4 = EUDElseIf()
            EUDTraceLog(108)
            if _t4(user.remainHPPtn[cp] == 0):
                # (Line 109) v.s.printAt(10, "\x05체력 물약이 부족합니다");
                EUDTraceLog(109)
                v.s.printAt(10, "\x05체력 물약이 부족합니다")
                # (Line 110) return;
                EUDTraceLog(110)
                EUDReturn()
                # (Line 111) }
                # (Line 112) else if(MemoryEPD(user.character[cp] + 0x8 / 4, Exactly, user.maxHP[cp] * 256)) {
            _t5 = EUDElseIf()
            EUDTraceLog(112)
            if _t5(MemoryEPD(user.character[cp] + 0x8 // 4, Exactly, user.maxHP[cp] * 256)):
                # (Line 113) v.s.printAt(10, "\x05최대 체력입니다");
                EUDTraceLog(113)
                v.s.printAt(10, "\x05최대 체력입니다")
                # (Line 114) return;
                EUDTraceLog(114)
                EUDReturn()
                # (Line 115) }
                # (Line 116) user.remainHPPtn[cp] -= 1;
            EUDEndIf()
            EUDTraceLog(116)
            _ARRW(user.remainHPPtn, cp).__isub__(1)
            # (Line 117) sys.SetHP(user.recoveryHPPtn[cp], Add);
            EUDTraceLog(117)
            sys.SetHP(user.recoveryHPPtn[cp], Add)
            # (Line 118) v.s.printAt(10, "\x04체력을 \x08", user.recoveryHPPtn[cp], " \x04만큼 회복합니다  \x05", user.remainHPPtn[cp], " 개 남음");
            EUDTraceLog(118)
            v.s.printAt(10, "\x04체력을 \x08", user.recoveryHPPtn[cp], " \x04만큼 회복합니다  \x05", user.remainHPPtn[cp], " 개 남음")
            # (Line 119) item.RemoveItem(1, user.useHPPtn[cp], 1);
            EUDTraceLog(119)
            item.RemoveItem(1, user.useHPPtn[cp], 1)
            # (Line 120) }
            # (Line 121) }
        EUDEndIf()
        # (Line 122) }
    EUDEndIf()
Ejemplo n.º 12
0
def NewCharacter():
    # (Line 10) const cp = getcurpl();
    EUDTraceLog(10)
    cp = f_getcurpl()
    # (Line 11) setloc("temp", 322, 280);
    EUDTraceLog(11)
    f_setloc("temp", 322, 280)
    # (Line 12) bwrite(0x65FD00 + 18424 + v.unitNum[cp], 71); // 그래픽 시민
    EUDTraceLog(12)
    f_bwrite(0x65FD00 + 18424 + v.unitNum[cp], 71)
    # (Line 13) bwrite(0x65FD00 + 14776 + cp, 130); // 무기 NONE
    EUDTraceLog(13)
    f_bwrite(0x65FD00 + 14776 + cp, 130)
    # (Line 14) if(sys.single == false) CenterView("temp");
    _t1 = EUDIf()
    EUDTraceLog(14)
    if _t1(sys.single == False):
        # (Line 15) user.character[cp] = sys.SetNextUnitEPD();
        EUDTraceLog(14)
        DoActions(CenterView("temp"))
    EUDEndIf()
    EUDTraceLog(15)
    _ARRW(user.character, cp) << (sys.SetNextUnitEPD())
    # (Line 16) CreateUnit(1, v.unitNum[cp], "temp", cp);
    # (Line 18) user.inMap[cp] = 1;
    EUDTraceLog(16)
    DoActions(CreateUnit(1, v.unitNum[cp], "temp", cp))
    EUDTraceLog(18)
    _ARRW(user.inMap, cp) << (1)
    # (Line 19) user.isAlive[cp] = 1;
    EUDTraceLog(19)
    _ARRW(user.isAlive, cp) << (1)
    # (Line 20) user.level[cp] = 1;
    EUDTraceLog(20)
    _ARRW(user.level, cp) << (1)
    # (Line 21) user.maxHP[cp] = v.defaultHP;
    EUDTraceLog(21)
    _ARRW(user.maxHP, cp) << (v.defaultHP)
    # (Line 22) user.maxMP[cp] = v.defaultMP;
    EUDTraceLog(22)
    _ARRW(user.maxMP, cp) << (v.defaultMP)
    # (Line 23) user.mp[cp] = v.defaultMP;
    EUDTraceLog(23)
    _ARRW(user.mp, cp) << (v.defaultMP)
    # (Line 24) user.physDmg[cp] = v.defaultDmg;
    EUDTraceLog(24)
    _ARRW(user.physDmg, cp) << (v.defaultDmg)
    # (Line 26) stats.SetHP();
    EUDTraceLog(26)
    stats.SetHP()
    # (Line 27) sys.Heal();
    EUDTraceLog(27)
    sys.Heal()
    # (Line 29) stats.RefreshExp();
    EUDTraceLog(29)
    stats.RefreshExp()
    # (Line 30) SetMemoryXEPD(user.character[cp] + 0x08F / 4, SetTo, user.level[cp] << 24, 0xFF000000);
    # (Line 32) item.AddItem(10000, 2, 1, 1, false);
    EUDTraceLog(30)
    DoActions(SetMemoryXEPD(user.character[cp] + 0x08F // 4, SetTo, _LSH(user.level[cp],24), 0xFF000000))
    EUDTraceLog(32)
    item.AddItem(10000, 2, 1, 1, False)
    # (Line 33) item.AddItem(10000, 3, 1, 1, false);
    EUDTraceLog(33)
    item.AddItem(10000, 3, 1, 1, False)
    # (Line 34) item.AddItem(10000, 1, 1, 1, false);
    EUDTraceLog(34)
    item.AddItem(10000, 1, 1, 1, False)
    # (Line 35) item.AddItem(10000, 1, 2, 2, false);
    EUDTraceLog(35)
    item.AddItem(10000, 1, 2, 2, False)
    # (Line 36) item.AddItem(10000, 1, 16, 3, false);
    EUDTraceLog(36)
    item.AddItem(10000, 1, 16, 3, False)
    # (Line 37) item.AddItem(10000, 1, 17, 4, false);
    EUDTraceLog(37)
    item.AddItem(10000, 1, 17, 4, False)
    # (Line 38) status.stats[cp] = status.USER_STATUS;
    EUDTraceLog(38)
    _ARRW(status.stats, cp) << (status.USER_STATUS)
    # (Line 39) user.posX[cp], user.posY[cp] = dwbreak(dwread_epd(user.character[cp] + 0x28 / 4))[[0,1]];
    EUDTraceLog(39)
    _SV([_ARRW(user.posX, cp), _ARRW(user.posY, cp)], [_SRET(f_dwbreak(f_dwread_epd(user.character[cp] + 0x28 // 4)), [0, 1])])
    # (Line 40) equip.EquipWeapon(1);
    EUDTraceLog(40)
    equip.EquipWeapon(1)