Назад

callfunc в вещах

Автор: ??????: Дата: 04.22.2011

Создавал тему уже, удалили))).Объясню все заново.
Как сделать в вещах callfunc?
Делал так -

2383,Brynhild,Brynhildr,5,0,,400,,,,1,0xFFFFFFFF,7,2,16,,94,0,0,{ callfunc "111","2@cata"; bonus2 bSubRace,RC_NonBoss,100; bonus2 bSubRace,RC_Boss,100; bonus bMaxHPrate,20; },{},{}

скрипт -
 function	script	111	{
getmapxy .@mapfunk$,.@xfunk,.@yfunk,0;
if(.@map$ != getarg(0))
end;
return;
}

Не работает.Может быть что-то не так сделал.

Автор: imba: Дата: 04.22.2011

Вот пример с Mirror Shield:

2107,Mirror_Shield,Mirror Shield,5,60000,,1000,,4,,0,0x00404082,7,2,32,,0,1,4,{ bonus bMdef,5; },{},{}


Меняем на
2107,Mirror_Shield,Mirror Shield,5,60000,,1000,,4,,0,0x00404082,7,2,32,,0,1,4,{getmapxy @usermap$,@usermapx,@usermapy,0; if(@usermap$=="prontera")bonus bMdef,5; },{},{}


Бонус от щита будет даваться при условии, что игрок в Пронтере.

P.S. Рожай дальше сам.

Автор: Пикник: Дата: 04.22.2011

На ЛГ подсказали сделать так-

2107,Mirror_Shield,Mirror Shield,5,60000,,1000,,4,,0,0x00404082,7,2,32,,0,1,4,{getmapxy @usermap$,@usermapx,@usermapy,0; if(@usermap$=="prontera")bonus bMdef,5; },{},{}

Так работает. но если я бегу в геффен, у меня все равно +5 мдеф.нужно переодеть шмотку чтоб все работало. можно как-то сделать чтоб оно автоматом?

Автор: imba: Дата: 04.22.2011

В сорцах правь, сделай обновление статуса, если игрок телепортируется.

Автор: Пикник: Дата: 04.22.2011

В сорцах я не силен.

Автор: imba: Дата: 04.22.2011

*** тут был бредовый совет, удалите пост, пожалуйста.

Автор: Пикник: Дата: 04.22.2011

Не помогло.Вставил в самом конце перед return,0;

Автор: imba: Дата: 04.22.2011

1. Пикник, узнай у чудодейственной силе рекомпиляции.
2.
Найди такие строки в src/map/pc.c:

	if(sd->bl.prev != NULL){
unit_remove_map_pc(sd,clrtype);
clif_changemap(sd,map[m].index,x,y); // [MouseJstr]

И ниже вставь:

sd->mapindex = mapindex;
sd->bl.m = m;
sd->bl.x = sd->ud.to_x = x;
sd->bl.y = sd->ud.to_y = y;
status_calc_pc(sd,0);


P.S. Т.к. помогаю на почве обострения альтруизма, то реализация, мягко говоря, неочень. Но все работает.
P.S.S. Не забудь удалить то, что я до этого советовал попробовать.