Public feed
#531970
begin
declare curexperience int(4) unsigned;
declare curlevel int(4) unsigned;
declare nextlevel int(4) unsigned;
select character_level into curlevel, character_experience into curexperience
from characters
where character_id = CID
select CalculateExperienceForLevel(curlevel + 1) into nextlevel;
if (nextlevel < (curexperience + ExperienceDelta) then
update characters set character_level = curlevel+1, character_experience = curexperience+ExperienceDelta where character_id = CID;
return 1;
end if;
select CalculateExperienceForLevel(curlevel ) into nextlevel;
if ((curexperience + ExperienceDelta) < nextlevel) then
update characters set character_level = curlevel-1, character_experience = curexperience+ExperienceDelta where character_id = CID;
return -1;
end if
update characters set character_experience = curexperience+ExperienceDelta where character_id = CID;
return 0;
end