PWADðlocal lastSkin PSO.info.SSinfo = { ["fallback"] = { [TYPE_HUNTER] = { hp = 0, pp = 0, satk = 0, ratk = 0, tatk = 0, def = 0, ppr = 0 }, [TYPE_RANGER] = { hp = 0, pp = 0, satk = 0, ratk = 0, tatk = 0, def = 0, ppr = 0 }, [TYPE_FORCE] = { hp = 0, pp = 0, satk = 0, ratk = 0, tatk = 0, def = 0, ppr = 0 } }, ["sonic"] = { [TYPE_HUNTER] = { hp = -25, pp = 15, satk = 3, ratk = 2, tatk = 1, def = -4, ppr = -3 }, [TYPE_RANGER] = { hp = -20, pp = 15, satk = 1, ratk = 3, tatk = 2, def = -4, ppr = -2 }, [TYPE_FORCE] = { hp = -30, pp = 15, satk = 1, ratk = 2, tatk = 3, def = -4, ppr = -1 } }, ["tails"] = { [TYPE_HUNTER] = { hp = -5, pp = 5, satk = -3, ratk = 1, tatk = 2, def = 0, ppr = -2 }, [TYPE_RANGER] = { hp = 0, pp = 0, satk = 2, ratk = -3, tatk = 1, def = 0, ppr = -1 }, [TYPE_FORCE] = { hp = 5, pp = -5, satk = 2, ratk = 1, tatk = -3, def = 0, ppr = 0 } }, ["knuckles"] = { [TYPE_HUNTER] = { hp = 0, pp = -15, satk = 4, ratk = -2, tatk = -2, def = 1, ppr = -2 }, [TYPE_RANGER] = { hp = 0, pp = -15, satk = 3, ratk = 4, tatk = -7, def = 1, ppr = -4 }, [TYPE_FORCE] = { hp = 0, pp = -15, satk = -2, ratk = -2, tatk = 4, def = 1, ppr = -2 } }, ["amy"] = { [TYPE_HUNTER] = { hp = -25, pp = 25, satk = 0, ratk = -3, tatk = 5, def = -1, ppr = -6 }, [TYPE_RANGER] = { hp = -25, pp = 25, satk = 5, ratk = -8, tatk = 5, def = -1, ppr = -3 }, [TYPE_FORCE] = { hp = -25, pp = 25, satk = 5, ratk = -5, tatk = 5, def = -1, ppr = 2 } }, ["fang"] = { [TYPE_HUNTER] = { hp = -25, pp = 15, satk = 3, ratk = 2, tatk = 1, def = -4, ppr = -3 }, [TYPE_RANGER] = { hp = -20, pp = 15, satk = 1, ratk = 3, tatk = 2, def = -4, ppr = -2 }, [TYPE_FORCE] = { hp = -30, pp = 15, satk = 1, ratk = 2, tatk = 3, def = -4, ppr = -1 } }, ["metalsonic"] = { [TYPE_HUNTER] = { hp = 50, pp = -25, satk = 0, ratk = 0, tatk = -10, def = 3, ppr = 0 }, [TYPE_RANGER] = { hp = 25, pp = -25, satk = 5, ratk = 0, tatk = -10, def = 3, ppr = 0 }, [TYPE_FORCE] = { hp = -25, pp = -25, satk = 2, ratk = 0, tatk = 0, def = 3, ppr = 0 } } } PSO.lib.playerPreviewStats = function(p, type, level, units) lastSkin = p.mo.skin -- initialize player's last skin here local stats = {} local typinfo = PSO.info.typestats[type] local ssinfo = PSO.info.SSinfo[p.mo.skin][p.pso.type] stats.maxhp = (typinfo.hp + ssinfo.hp) + ((typinfo.hp + ssinfo.hp)/50)*(level-1) stats.maxpp = (typinfo.pp + ssinfo.pp) + (level-1) stats.satk = (typinfo.satk + ssinfo.satk) + ((typinfo.satk + ssinfo.satk)/4)*(level-1) stats.ratk = (typinfo.ratk + ssinfo.ratk) + ((typinfo.ratk + ssinfo.ratk)/4)*(level-1) stats.tatk = (typinfo.tatk + ssinfo.tatk) + ((typinfo.tatk + ssinfo.tatk)/4)*(level-1) stats.def = (typinfo.def + ssinfo.def) + ((typinfo.def + ssinfo.def)/4)*(level-1) stats.ppregen = (typinfo.ppregen + ssinfo.ppr) if units local armour = PSO.lib.getPlayerActiveArmour(p) if armour local def = PSO.info.items[armour.ref] if def.slots for i = 1, def.slots if armour.slots[i] local unit = armour.slots[i] stats.maxhp = $ + (unit.hp or 0) stats.maxpp = $ + (unit.pp or 0) stats.satk = $ + (unit.satk or 0) stats.ratk = $ + (unit.ratk or 0) stats.tatk = $ + (unit.tatk or 0) stats.ppregen = max(1, $ - (unit.ppregen or 0)) end end end end end return stats end /*PSO.lib.SSdetectSkinChange = function() if p.mo.skin ~= curSkin then -- check if player changes skin, used to force stat recalculation print("Player changed skin!") end end addHook("ThinkFrame", PSO.lib.SSdetectSkinChange)*/ äLUA_SS