ArcZoneEvent_BuildFrom (sb.exe 0xC8ED20) builds ArcZoneEvent, ArcZoneResourceEvent (0xC904F0) or ArcZoneStateEvent (0xC952E0); Python read the base fields only for all three and had no save or JSON code. Field names come from each class's ParseKeyword; trigger types and state actions use the client name tables (0x176AF20, 0x176A40C). Base event unknowns are the event-name hash, parent-name hash and has-parent flag; the trigger action's third bool is has_items. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
77 lines
2.7 KiB
Python
77 lines
2.7 KiB
Python
# • ▌ ▄ ·. ▄▄▄▄· ▄▄▄ .·▄▄▄▄ ▪ ▄▄▄▄▄ ▄▄▄ ▄▄▄·▄▄▄
|
|
# ·██ ▐███▪▐█ ▀█▪ ▀▄.▀·██▪ ██ ██ •██ ▪ ▀▄ █· ▐█ ▄█▀▄ █·▪
|
|
# ▐█ ▌▐▌▐█·▐█▀▀█▄ ▐▀▀▪▄▐█· ▐█▌▐█· ▐█.▪ ▄█▀▄ ▐▀▀▄ ██▀·▐▀▀▄ ▄█▀▄
|
|
# ██ ██▌▐█▌██▄▪▐█ ▐█▄▄▌██. ██ ▐█▌ ▐█▌·▐█▌.▐▌▐█•█▌ ▐█▪·•▐█•█▌▐█▌.▐▌
|
|
# ▀▀ █▪▀▀▀·▀▀▀▀ ▀▀▀ ▀▀▀▀▀• ▀▀▀ ▀▀▀ ▀█▄▀▪.▀ ▀ .▀ .▀ ▀ ▀█▄▀▪
|
|
# Magicbane Emulator Project © 2013 - 2022
|
|
# www.magicbane.com
|
|
|
|
EVENT = 1
|
|
RESOURCE = 2
|
|
STATE = 3
|
|
|
|
ZONE_EVENT_TO_STRING = {
|
|
EVENT: 'EVENT',
|
|
RESOURCE: 'RESOURCE',
|
|
STATE: 'STATE',
|
|
}
|
|
|
|
STRING_TO_ZONE_EVENT = {
|
|
'EVENT': EVENT,
|
|
'RESOURCE': RESOURCE,
|
|
'STATE': STATE,
|
|
}
|
|
|
|
TRIGGER_NONE = 0
|
|
TRIGGER_ITEM_ACTION = 1
|
|
TRIGGER_POWER_ACTION = 2
|
|
TRIGGER_STANDARD_TRIGGER = 3
|
|
TRIGGER_TIME_CHANGE = 4
|
|
TRIGGER_SEASON_CHANGE = 5
|
|
|
|
TRIGGER_TYPE_TO_STRING = {
|
|
TRIGGER_NONE: 'NONE',
|
|
TRIGGER_ITEM_ACTION: 'ITEM_ACTION',
|
|
TRIGGER_POWER_ACTION: 'POWER_ACTION',
|
|
TRIGGER_STANDARD_TRIGGER: 'STANDARD_TRIGGER',
|
|
TRIGGER_TIME_CHANGE: 'TIME_CHANGE',
|
|
TRIGGER_SEASON_CHANGE: 'SEASON_CHANGE',
|
|
}
|
|
|
|
STRING_TO_TRIGGER_TYPE = {
|
|
'NONE': TRIGGER_NONE,
|
|
'ITEM_ACTION': TRIGGER_ITEM_ACTION,
|
|
'POWER_ACTION': TRIGGER_POWER_ACTION,
|
|
'STANDARD_TRIGGER': TRIGGER_STANDARD_TRIGGER,
|
|
'TIME_CHANGE': TRIGGER_TIME_CHANGE,
|
|
'SEASON_CHANGE': TRIGGER_SEASON_CHANGE,
|
|
}
|
|
|
|
STATE_ACTION_NONE = 0
|
|
STATE_ACTION_ASSET_RANK = 1
|
|
STATE_ACTION_MONSTER_SPAWN = 2
|
|
STATE_ACTION_MONSTER_DESPAWN = 3
|
|
STATE_ACTION_MONSTER_NOSPAWN = 4
|
|
STATE_ACTION_CHANGE_GOAL = 5
|
|
STATE_ACTION_CHANGE_DEATH_TRIGGER = 6
|
|
|
|
STATE_ACTION_TO_STRING = {
|
|
STATE_ACTION_NONE: 'NONE',
|
|
STATE_ACTION_ASSET_RANK: 'ASSET_RANK',
|
|
STATE_ACTION_MONSTER_SPAWN: 'MONSTER_SPAWN',
|
|
STATE_ACTION_MONSTER_DESPAWN: 'MONSTER_DESPAWN',
|
|
STATE_ACTION_MONSTER_NOSPAWN: 'MONSTER_NOSPAWN',
|
|
STATE_ACTION_CHANGE_GOAL: 'CHANGE_GOAL',
|
|
STATE_ACTION_CHANGE_DEATH_TRIGGER: 'CHANGE_DEATH_TRIGGER',
|
|
}
|
|
|
|
STRING_TO_STATE_ACTION = {
|
|
'NONE': STATE_ACTION_NONE,
|
|
'ASSET_RANK': STATE_ACTION_ASSET_RANK,
|
|
'MONSTER_SPAWN': STATE_ACTION_MONSTER_SPAWN,
|
|
'MONSTER_DESPAWN': STATE_ACTION_MONSTER_DESPAWN,
|
|
'MONSTER_NOSPAWN': STATE_ACTION_MONSTER_NOSPAWN,
|
|
'CHANGE_GOAL': STATE_ACTION_CHANGE_GOAL,
|
|
'CHANGE_DEATH_TRIGGER': STATE_ACTION_CHANGE_DEATH_TRIGGER,
|
|
}
|