def f_clickedUnit(): # (Line 13) foreach(cp: EUDLoopPlayer()) { for cp in EUDLoopPlayer(): # (Line 14) var ptr; ptr = EUDVariable() # (Line 15) var epd; epd = EUDVariable() # (Line 16) var unitType; unitType = EUDVariable() # (Line 18) const prevPtrs, prevEPDs = PVariable(), PVariable(); EUDTraceLog(18) prevPtrs, prevEPDs = List2Assignable([PVariable(), PVariable()]) # (Line 19) const clickedUnitEPD = EPD(0x6284E8) + 12 * cp; EUDTraceLog(19) clickedUnitEPD = EPD(0x6284E8) + 12 * cp # (Line 20) EUDContinueIf(MemoryEPD(clickedUnitEPD, AtMost, 0x59CCA7)); EUDTraceLog(20) EUDContinueIf(MemoryEPD(clickedUnitEPD, AtMost, 0x59CCA7)) # (Line 21) const prevPtr = prevPtrs[cp]; EUDTraceLog(21) prevPtr = prevPtrs[cp] # (Line 22) setcurpl(cp); EUDTraceLog(22) f_setcurpl(cp) # (Line 23) if(MemoryEPD(clickedUnitEPD, (10), prevPtr)) { _t1 = EUDIf() EUDTraceLog(23) if _t1(MemoryEPD(clickedUnitEPD, (10), prevPtr)): # (Line 25) const prevEPD = prevEPDs[cp]; EUDTraceLog(25) prevEPD = prevEPDs[cp] # (Line 26) SetVariables(list(ptr, epd), list(prevPtr, prevEPD)); EUDTraceLog(26) SetVariables(FlattenList([ptr, epd]), FlattenList([prevPtr, prevEPD])) # (Line 27) } # (Line 28) else { if EUDElse()(): # (Line 30) SetVariables(list(ptr, epd), cunitepdread_epd(clickedUnitEPD)); EUDTraceLog(30) SetVariables(FlattenList([ptr, epd]), f_cunitepdread_epd(clickedUnitEPD)) # (Line 31) prevPtrs[cp] = ptr; EUDTraceLog(31) _ARRW(prevPtrs, cp) << (ptr) # (Line 32) prevEPDs[cp] = epd; EUDTraceLog(32) _ARRW(prevEPDs, cp) << (epd) # (Line 34) unitType = wread_epd(epd + 0x64 / 4, 0x64 % 4); EUDTraceLog(34) unitType << (f_wread_epd(epd + 0x64 // 4, 0x64 % 4)) # (Line 36) var temp = maskread_epd(epd + 0x026 / 4, 0xFF0000) / 65536; EUDTraceLog(36) temp = EUDVariable() temp << (f_maskread_epd(epd + 0x026 // 4, 0xFF0000) // 65536) # (Line 37) v.s.print("\x07[clickedUnit.eps] \x1f유닛 타입 \x04: ", unitType, " \x1f0x026 \x04: ", temp); EUDTraceLog(37) v.s.print("\x07[clickedUnit.eps] \x1f유닛 타입 \x04: ", unitType, " \x1f0x026 \x04: ", temp) # (Line 38) if(IsUserCP()) { _t2 = EUDIf() EUDTraceLog(38) if _t2(IsUserCP()): # (Line 39) settbl2(16, 0, "\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D"); EUDTraceLog(39) f_settbl2(16, 0, "\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D") # (Line 40) if(temp == 0) settbl2(16, 0, "\x05시민"); _t3 = EUDIf() EUDTraceLog(40) if _t3(temp == 0): EUDTraceLog(40) f_settbl2(16, 0, "\x05시민") # (Line 41) else if(temp == 1) settbl2(16, 0, "\x04리아"); _t4 = EUDElseIf() EUDTraceLog(41) if _t4(temp == 1): EUDTraceLog(41) f_settbl2(16, 0, "\x04리아") # (Line 42) else if(temp == 2) settbl2(16, 0, "\x04경비병"); _t5 = EUDElseIf() EUDTraceLog(42) if _t5(temp == 2): EUDTraceLog(42) f_settbl2(16, 0, "\x04경비병") # (Line 43) else if(temp == 3) settbl2(16, 0, "\x04전사"); _t6 = EUDElseIf() EUDTraceLog(43) if _t6(temp == 3): EUDTraceLog(43) f_settbl2(16, 0, "\x04전사") # (Line 44) else if(temp == 4) settbl2(16, 0, "\x04궁수"); _t7 = EUDElseIf() EUDTraceLog(44) if _t7(temp == 4): EUDTraceLog(44) f_settbl2(16, 0, "\x04궁수") # (Line 45) } EUDEndIf() # (Line 46) sys.ButtonRefresh(); EUDEndIf() EUDTraceLog(46) sys.ButtonRefresh() # (Line 47) } # (Line 49) UseHPPtn(unitType); EUDEndIf() EUDTraceLog(49) UseHPPtn(unitType) # (Line 50) UseMPPtn(unitType); EUDTraceLog(50) UseMPPtn(unitType) # (Line 52) if(MemoryEPD(epd + 0x98/4, Exactly, 0xE400E4) && MemoryEPD(epd + 0x9C/4, Exactly, 0xE400E4) && MemoryXEPD(epd + 0xA0/4, Exactly, 0xE4, 0xFFFF)) { _t8 = EUDIf() EUDTraceLog(52) if _t8(EUDSCAnd()(MemoryEPD(epd + 0x98 // 4, Exactly, 0xE400E4))(MemoryEPD(epd + 0x9C // 4, Exactly, 0xE400E4))(MemoryXEPD(epd + 0xA0 // 4, Exactly, 0xE4, 0xFFFF))()): # (Line 53) continue; EUDTraceLog(53) EUDContinue() # (Line 54) }; EUDEndIf()