-
Постов
250 -
Зарегистрирован
-
Посещение
-
Победитель дней
119
Сообщения, опубликованные Fox RM
-
-
-
Пробовал - как видишь 3 нипися и 3 эррора получил -)
Плохо пробовал.
P.s Почистил тему от флуда.
- 1
-
Присоединюсь к Milky Way, так же могу во всех, с моей точки зрения адекватен, со стороны не замечал каких либо психических припадков , такая вот мини анкета , ждём вердикта Agasper'a
- 3
-
Видимо он хотел написать mob_db.txt
- 2
-
Мда,Наота ты ебанутый человек окда? Объяснять ничего не буду,не поймешь из-за чего - твои проблемы.
Если ты называешь Наоту !@#$%ым , тогда скажи мне ,чем ты лучше его?, на мой взгляд ты в разы хуже чем он ,даже слово трудно подобрать характеризующее тебя.
- 1
- 1
-
Желаю успехов и процветания данному проекту
- 1
-
Где mapflag noequip просто блокирует текущий эквип
99 - раздевает чара и блокирует эквип
1-10 снимает вещь из указанных слотов блокирует весь эквип (слоты считал сверху вниз, слева направо)
Index: map/clif.c
===================================================================
--- map/clif.c (revision 13936)
+++ map/clif.c (working copy)
@@ -8088,6 +8088,35 @@
clif_mercenary_skillblock(sd);
}
+ if(map[sd->bl.m].flag.noequip) {
+ if( map[sd->bl.m].flag.noequip == 1 && sd->equip_index[EQI_HEAD_TOP] >= 0 )
+ pc_unequipitem(sd,sd->equip_index[EQI_HEAD_TOP],1);
+ if( map[sd->bl.m].flag.noequip == 2 && sd->equip_index[EQI_HEAD_MID] >= 0 )
+ pc_unequipitem(sd,sd->equip_index[EQI_HEAD_MID],1);
+ if( map[sd->bl.m].flag.noequip == 3 && sd->equip_index[EQI_HEAD_LOW] >= 0 )
+ pc_unequipitem(sd,sd->equip_index[EQI_HEAD_LOW],1);
+ if( map[sd->bl.m].flag.noequip == 4 && sd->equip_index[EQI_ARMOR] >= 0 )
+ pc_unequipitem(sd,sd->equip_index[EQI_ARMOR],1);
+ if( map[sd->bl.m].flag.noequip == 5 && sd->equip_index[EQI_HAND_R] >= 0 )
+ pc_unequipitem(sd,sd->equip_index[EQI_HAND_R],1);
+ if( map[sd->bl.m].flag.noequip == 6 && sd->equip_index[EQI_HAND_L] >= 0 )
+ pc_unequipitem(sd,sd->equip_index[EQI_HAND_L],1);
+ if( map[sd->bl.m].flag.noequip == 7 && sd->equip_index[EQI_GARMENT] >= 0 )
+ pc_unequipitem(sd,sd->equip_index[EQI_GARMENT],1);
+ if( map[sd->bl.m].flag.noequip == 8 && sd->equip_index[EQI_SHOES] >= 0 )
+ pc_unequipitem(sd,sd->equip_index[EQI_SHOES],1);
+ if( map[sd->bl.m].flag.noequip == 9 && sd->equip_index[EQI_ACC_R] >= 0 )
+ pc_unequipitem(sd,sd->equip_index[EQI_ACC_R],1);
+ if( map[sd->bl.m].flag.noequip == 10 && sd->equip_index[EQI_ACC_L] >= 0 )
+ pc_unequipitem(sd,sd->equip_index[EQI_ACC_L],1);
+ if( map[sd->bl.m].flag.noequip == 99 ) {
+ int i;
+ for(i=0;i<11;i++)
+ if(sd->equip_index[i] >= 0)
+ pc_unequipitem(sd,sd->equip_index[i],1);
+ }
+ }
+
if(sd->state.connect_new) {
int lv;
sd->state.connect_new = 0;
@@ -8970,6 +8999,10 @@
clif_clearunit_area(&sd->bl,1);
return;
}
+
+ if (map[sd->bl.m].flag.noequip)
+ return;
+
index = RFIFOW(fd,2)-2;
if (index < 0 || index >= MAX_INVENTORY)
return; //Out of bounds check.
@@ -9014,6 +9047,9 @@
return;
}
+ if (map[sd->bl.m].flag.noequip)
+ return;
+
if (sd->state.storage_flag)
; //You can equip/unequip stuff while storage is open.
else if (pc_cant_act(sd))
Index: map/map.h
===================================================================
--- map/map.h (revision 13936)
+++ map/map.h (working copy)
@@ -463,6 +463,7 @@
unsigned nochat :1;
unsigned partylock :1;
unsigned guildlock :1;
+ unsigned noequip :12;
} flag;
struct point save;
struct npc_data *npc[MAX_NPC_PER_MAP];
Index: map/npc.c
===================================================================
--- map/npc.c (revision 13936)
+++ map/npc.c (working copy)
@@ -2897,6 +2897,17 @@
map[m].flag.partylock=state;
else if (!strcmpi(w3,"guildlock"))
map[m].flag.guildlock=state;
+ else if (!strcmpi(w3,"noequip")) {
+ if( state )
+ {
+ if( sscanf(w4, "%d", &state) == 1 )
+ map[m].flag.noequip = state;
+ else
+ map[m].flag.noequip = 100;
+ }
+ else
+ map[m].flag.noequip = 0;
+ }
else
ShowError("npc_parse_mapflag: unrecognized mapflag '%s' (file '%s', line '%d').\n", w3, filepath, strline(buffer,start-buffer));- 5
-
- Популярный пост
- Популярный пост
@aura , by Zeph
Diff на эту команду :
- 100
-
- Популярный пост
- Популярный пост
Гайд по добавлению кастомных мобов в Renewal клиент с помощью Lua-файлов.
- 87
-
- Популярный пост
- Популярный пост
Краткий гайд по добавлению кастомных локаций на ваш сервер.
by nomn
- 131
-
- Популярный пост
- Популярный пост
Суть данного фикса:Sacrifice мисает по большому "Lucky Dodge" , делаем так , чтобы не "мисало".
Заходим в src/map/battle.c
Находим :
if ( (!skill_num || skill_num == PA_SACRIFICE) && tstatus->flee2 && rnd()%1000 < tstatus->flee2 ) { //Check for Lucky Dodge wd.type=0x0b; wd.dmg_lv=ATK_LUCKY; if (wd.div_ < 0) wd.div_*=-1; return wd; }
Эту строку
if ( (!skill_num || skill_num == PA_SACRIFICE) && tstatus->flee2 && rnd()%1000 < tstatus->flee2 )
Меняем на эту:
if ( (!skill_num) && tstatus->flee2 && rand()%1000 <
- 35
-
- Популярный пост
- Популярный пост
Команда @droplock
Реализация: nomn
Идея: неизвестно
Суть: запрещает выкидывать вещи из инвентаря на пол.
Защита от случайного выкидывания вещей.
Ниже исходник:
- 43
-
1)Hatred
Открываем eA/src/map/pc.c и ищем это:
//Attempts to set a mob.
int pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl)
{
int class_;
if (!sd || !bl || pos < 0 || pos > 2)
return 0;
if (sd->hate_mob[pos] != -1)
{ //Can't change hate targets.
clif_hate_info(sd, pos, sd->hate_mob[pos], 0); //Display current
return 0;
}
class_ = status_get_class(bl);
if (!pcdb_checkid(class_)) {
unsigned int max_hp = status_get_max_hp(bl);
if ((pos == 1 && max_hp < 6000) || (pos == 2 && max_hp < 20000))
return 0;
if (pos != status_get_size(bl))
return 0; //Wrong size
}
sd->hate_mob[pos] = class_;
pc_setglobalreg(sd,hate_var[pos],class_+1);
clif_hate_info(sd, pos, class_, 1);
return 1;
}Заменяем этот кусок на это:
/Attempts to set a mob.
int pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl)
{
int class_;
if (!sd || !bl || pos < 0 || pos > 2)
return 0;
sd->hate_mob[pos] = -1;
class_ = status_get_class(bl);
if (!pcdb_checkid(class_)) {
unsigned int max_hp = status_get_max_hp(bl);
if ((pos == 1 && max_hp < 6000) || (pos == 2 && max_hp < 20000))
return 0;
if (pos != status_get_size(bl))
return 0; //Wrong size
}
sd->hate_mob[pos] = class_;
pc_setglobalreg(sd,sg_info[pos].hate_var,class_+1);
clif_hate_info(sd, pos, class_, 1);
return 1;
}2)Feeling
Открываем eA/src/map/skill.c и находим это:
case SG_FEEL:
//AuronX reported you CAN memorize the same map as all three. [Skotlex]
if (sd) {
if(!sd->feel_map[skilllv-1].index)
clif_parse_ReqFeel(sd->fd,sd, skilllv);
else
clif_feel_info(sd, skilllv-1, 1);
}
break;Заменяем этот кусок на это:
case SG_FEEL:
//AuronX reported you CAN memorize the same map as all three. [Skotlex]
if (sd) {
clif_parse_ReqFeel(sd->fd,sd, skilllv);
}
break;- 1
Помогите
в Скрипты
Опубликовано
Элементарные скрипты, писать минуту от силы =\
А на счет выбивания карт, помоему можно в Conf включить это.