Доброго времени суток! решил сделать нпц, который за определенный предмет поднимет уровень.
Как сделать, что бы он нормально выдавал экспу? сборка ванги 1.2.9.8
вижу, что идет преполнение, но как править?
Написал аи, сделал хтм файл, при разговоре нпц с чаром ничего не происходит в игре сервер пишет такую штуку.
а сервер начинает писать
NASC код:
Компил:
Как сделать, что бы он нормально выдавал экспу? сборка ванги 1.2.9.8
вижу, что идет преполнение, но как править?
Написал аи, сделал хтм файл, при разговоре нпц с чаром ничего не происходит в игре сервер пишет такую штуку.
в игре пишет:exp overflow user[123] [-2147483648] chagned to [0]
если убить любого моба, то начинает давать по несколько %you have earned 2147483647 experience
а сервер начинает писать
exp overflow user[123] [-2147483648] chagned to [2] ( где 2 увеличивающееся число)
NASC код:
Код:
class 1 lvl_up_manager : citizen{
parameter:
string fnHi = "lvluphi.htm";
string fnOk = "lvlupgive.htm";
string fnCancel = "lvpupcancel.htm";
int ItemId = 57;
int AmountItem = 1;
handler:
EventHandler MENU_SELECTED( talker, ask, reply )
{
if( ask == -3 && reply == 2 )
{
if( myself::OwnItemCount( talker, ItemId ) >= AmountItem )
{
myself::DeleteItem1( talker, ItemId, AmountItem );
myself::IncrementParam( talker, 0, 2147483647 );
myself::ShowPage( talker, fnOk );
}
else
{
myself::ShowPage( talker, fnCancel );
}
}
}
}
Компил:
Код:
class 1 lvl_up_manager : citizen
parameter_define_begin
string fnHi "lvluphi.htm"
string fnOk "lvlupgive.htm"
string fnCancel "lvpupcancel.htm"
int ItemId 57
int AmountItem 1
parameter_define_end
handler 32 89 // MENU_SELECTED
variable_begin
"talker"
"ask"
"reply"
"myself"
"_choiceN"
"_code"
"_from_choice"
variable_end
push_event // ask
push_const 160
add
fetch_i4
push_const 3
negate
equal
push_reg_sp
fetch_i
branch_false L3
push_event // reply
push_const 164
add
fetch_i4
push_const 2
equal
and
L3
branch_false L2
L1
push_event // myself
push_const 704
add
fetch_i
push_event // talker
push_const 40
add
fetch_i
push_parameter ItemId
func_call 184680579 // func[OwnItemCount]
shift_sp -2
push_parameter AmountItem
greater_equal
branch_false L5
L4
push_event // myself
push_const 704
add
fetch_i
push_event // talker
push_const 40
add
fetch_i
push_parameter ItemId
push_parameter AmountItem
func_call 184746114 // func[DeleteItem1]
shift_sp -3
shift_sp -1
push_event // myself
push_const 704
add
fetch_i
push_event // talker
push_const 40
add
fetch_i
push_const 0
push_const 2147483647
func_call 184746219 // func[IncrementParam]
shift_sp -3
shift_sp -1
push_event // myself
push_const 704
add
fetch_i
push_event // talker
push_const 40
add
fetch_i
push_parameter fnOk
func_call 184680516 // func[ShowPage]
shift_sp -2
shift_sp -1
jump L6
L5
push_event // myself
push_const 704
add
fetch_i
push_event // talker
push_const 40
add
fetch_i
push_parameter fnCancel
func_call 184680516 // func[ShowPage]
shift_sp -2
shift_sp -1
L6
L2
handler_end
class_end
Последнее редактирование: