-
Постов
178 -
Зарегистрирован
-
Посещение
-
Победитель дней
24
Сообщения, опубликованные Nurkz
-
-
-
Да, ошибся немного. 1 Месяц работаю с eA. Сейчас сам немного полазил в src
нашёл в map/pc.c в самой функции pc_setpos проверку на инициализацию персонажа.
Попробуй вставить туда. После проверки на открытие магазина, в "Misc map-changing settings"
if( map[m].flag.noafk )
{
if(DIFF_TICK(last_tick, sd->idletime) > 60)
{
clif_displaymessage(sd->fd, "You have been kicked from Emperium Arena because of your AFK status.");
return pc_setpos(sd,sd->status.save_point.map,sd->status.save_point.x,sd->status.save_point.y,3);
}
} -
Поэксперементируй с
*setoption <option number>{,<flag>};
-
Суть эвента всем известна.
Решил выложить в просторы интернета для критики,
ну и просто что-б было (ибо всё что видел, жалкие попытки).
- Предметы(Лут) может быть разный. !Берётся из массива.
- Кол-во лута(сколько всего) может быть разным.
- Кол-во приносимого лута(сколько такого-то) тоже может быть разным.
Всё удобно настраивать.
- 20
- 1
- Предметы(Лут) может быть разный. !Берётся из массива.
-
-
http://www.eathena.w...howtopic=183942
с мобильника трудно что-то найти, завтра сяду за комп - напишу
-
map/map.c
найди
/// Initializes map flags and adjusts them depending on configuration.
void map_flags_init(void)и в конец впиши свою проверку
тема была в сентябре создана, хз надо или нет уже
но пусть будет, вдруг кому-то понадобиться
- 1
-
prontera,158,177,0%TAB%script%TAB%123,{
setarray .@items[0], "1234", "4321", "2134", "1243";
mes "prinesi ololo i poluchish trololo";
if(countitem(ololo)) getitem .@items[rand(getarraysize(.@items))],1;
else mes "ololo u tebja netu, trololo ti ne polu4ish";
close;
} -
А разве не можно будет тогда получать свой бонус бесконечно? (в ресете)
переменную Bonus нельзя использовать
Ресет должен работать нормально без вмешательств, поскольку он только возвращает розданные стат поинты, то есть например у нас 30.000 stpoint + бонув в размере 5.000, раздали 27.000 осталось 7.000, если использовать ресет он просто вернет 27.000 stpoint которые были розданы
ну это я так понимаю.
Ты прав
*resetstatus;
This is a character reset command, which will reset the stats on the invoking
character and give back all the stat points used to raise them previously.
Nothing will happen to any other numbers about the character.
Used in reset NPC's (duh!)Однако люди выше писали, мол при ресете, статы не возвращаются.
Сам не проверял.
Ну в таком случае, ресетера не трогаем.
-
лол что?
if (battle_config.use_statpoint_table)зайди в conf/battle/exp.conf
самая последняя строчка
// Use the contents of db/statpoint.txt when doing a stats reset and leveling up? (Note 1)
// If no, an equation will be used which preserves statpoints earned/lost
// through external means (ie: stat point buyers/sellers)
use_statpoint_table: yesпоставь use_statpoint_table: no
и тогда
// Calculates the number of status points PC gets when leveling up (from level to level+1)
int pc_gets_status_point(int level)
{
if (battle_config.use_statpoint_table) //Use values from "db/statpoint.txt"
return (statp[level+1] - statp[level]);
else //Default increase
return (10);
}- 1
-
Не проще давать бонус сразу при получении 260 уровня?
Что-то типа.
-%TAB%script%TAB%bonus%TAB%-1,{
OnPcBaseLvUpEvent:
if(BaseLevel == 260) {
set StatusPoint, StatusPoint + 5000;
set Bonus, 1;
dispbottom "Ты получил +5000 статов";
} end;
}И в Ресетере.
prontera,150,193,4%TAB%script%TAB%Reset Girl%TAB%124,{
mes "[Reset Girl]";
mes "Если у вас был бонус он не пропадёт!";
next;
menu "^FF3355Reset Skills",L0,"Reset Stats",L1,"Reset Both^000000",L2,"Quit",LEnd;
L0:
mes "[Reset Girl]";
if (Zeny < 5000) goto NeedZenys;
mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
set Zeny,zeny-5000;
ResetSkill;
close;
L1:
mes "[Reset Girl]";
if (Zeny < 5000) goto NeedZenys;
mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
set Zeny,zeny-5000;
ResetStatus;
if(Bonus) set StatusPoint, StatusPoint + 5000;
close;
L2:
mes "[Reset Girl]";
if (Zeny < 9000) goto NeedZenys;
mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
set Zeny,zeny-9000;
ResetSkill;
ResetStatus;
if(Bonus) set StatusPoint, StatusPoint + 5000;
close;
NeedZenys:
mes "Sorry, you don't have enough Zeny.";
close;
LEnd:
close;
} -
О, всё, всем спасибо, разобрался сам.
for(set .@i, 1; .@i <= $items_n; set .@i, .@i +1) {
loop:
set .@item, $items[rand(getarraysize($items))];
if(.@i > 1)
for(set .@j, 1; .@j <= .@i; set .@j, .@j+1)
jump_zero(getd("$item_" +.@j)!=.@item), loop;
}
setd "$item_" + .@i, .@item;}- 1
-
Есть кусок кода.
setarray $items[0],909,1202,938,512,713,914,949,511,705,507,515,622;
set $items_n, rand(2,n);
for(set .@i, 1; .@i <= $items_n; set .@i, .@i +1) {
setd "$item_" + .@i, $items[rand(getarraysize($items))];
}Получаются переменные $item_1, $item_2, ..., $item_n
Со значениями из массива $items
Вопрос.
1) Как сделать что-бы значения не повторялись.
Ибо рандом такой рандом что иногда может быть и так:
$item_1 = 909
$item_2 = 909
$item_n = 909
Заранее спасибо.
-
set .@rooms, 5;
for( set .@i, 1; .@i <= .@rooms; set .@i, .@i + 1 )
set .@m$, .@m$ + ( .@i > 1 ? ":" : "" ) + "Room " + .@i;
set .@m, select(.@m$)-1;- 1
Арена
в Помощь в src
Опубликовано
Должно работать.
Вот так попробуй.
Если не получиться, сделай do{}while()
PS!
А вообще можно реализовать с помощью скрипта.
Если у тебя rA то есть команда checkidle, которая выдает idle time в секундах.
Если нет, то можно выдрать ее отсюда: http://trac.rathena....t/17126/rathena