psu_npc: Make sure the NPC level doesn't go below 1 or above 200.

This commit is contained in:
Loïc Hoguin 2010-09-02 16:38:01 +02:00
parent 79d36e5313
commit d1a30ecc63

View File

@ -33,6 +33,13 @@ user_init(NPCid, BaseLevel) ->
UCS2Name = << TmpUCS2Name/binary, 0:PaddingSize >>, UCS2Name = << TmpUCS2Name/binary, 0:PaddingSize >>,
#psu_npc{race=Race, gender=Gender, class=Class, level=LevelDiff, appearance=Appearance} = Settings, #psu_npc{race=Race, gender=Gender, class=Class, level=LevelDiff, appearance=Appearance} = Settings,
Character = #characters{gid=NPCGID, slot=0, type=npc, npcid=NPCid, name=UCS2Name, race=Race, gender=Gender, class=Class, appearance=Appearance, Character = #characters{gid=NPCGID, slot=0, type=npc, npcid=NPCid, name=UCS2Name, race=Race, gender=Gender, class=Class, appearance=Appearance,
mainlevel={level, BaseLevel + LevelDiff, 0}, blastbar=0, luck=2, money=0, playtime=0, stats={stats, 0, 0, 0, 0, 0, 0, 0}, se=[], currenthp=100, maxhp=100}, mainlevel={level, calc_level(BaseLevel, LevelDiff), 0}, blastbar=0, luck=2, money=0, playtime=0, stats={stats, 0, 0, 0, 0, 0, 0, 0}, se=[], currenthp=100, maxhp=100},
#egs_user_model{id=NPCGID, state=online, character=Character, areatype=lobby, area={psu_area, 0, 0, 0}, entryid=0, #egs_user_model{id=NPCGID, state=online, character=Character, areatype=lobby, area={psu_area, 0, 0, 0}, entryid=0,
prev_area={psu_area, 0, 0, 0}, prev_entryid=0, pos={pos, 0.0, 0.0, 0.0, 0.0}}. prev_area={psu_area, 0, 0, 0}, prev_entryid=0, pos={pos, 0.0, 0.0, 0.0, 0.0}}.
calc_level(BaseLevel, LevelDiff) ->
TmpLevel = BaseLevel + LevelDiff,
if TmpLevel < 1 -> 1;
TmpLevel > 200 -> 200;
true -> TmpLevel
end.