* Applied map flag update patch provided by Daegaladh. Will mess with custom restricted items.
- Adds a reset mapflag which is checked when using the Neuralizer. - Syncronizes the item_noequip_db bitmasks with with skill_nocast_db. - Updates mapflags, and both skills and items which are restricted. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14961 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
558b08bfe7
commit
d25e1c287b
@ -1,5 +1,10 @@
|
||||
Date Added
|
||||
|
||||
2011/09/18
|
||||
* 14961 Applied map flag update patch provided by Daegaladh. Will mess with custom restricted items.
|
||||
- Adds a reset mapflag which is checked when using the Neuralizer.
|
||||
- Syncronizes the item_noequip_db bitmasks with with skill_nocast_db.
|
||||
- Updates mapflags, and both skills and items which are restricted.
|
||||
2011/09/18
|
||||
* Fixed CR_SLIMPITCHER passing item requirement index to itemdb_search when used by a monster (bugreport:5021, since r6791). [Ai4rei]
|
||||
2011/09/17
|
||||
|
42
conf/mapflag/reset.txt
Normal file
42
conf/mapflag/reset.txt
Normal file
@ -0,0 +1,42 @@
|
||||
//===== eAthena Script =======================================
|
||||
//= Map flags that enable the use of Neuralizer
|
||||
//===== By: ==================================================
|
||||
//= Daegaladh
|
||||
//===== Current Version: =====================================
|
||||
//= 1.0 [Daegaladh]
|
||||
//===== Compatible With: =====================================
|
||||
//=
|
||||
//===== Description: =========================================
|
||||
//=
|
||||
//============================================================
|
||||
|
||||
alberta mapflag reset
|
||||
aldebaran mapflag reset
|
||||
amatsu mapflag reset
|
||||
ayothaya mapflag reset
|
||||
brasilis mapflag reset
|
||||
comodo mapflag reset
|
||||
einbroch mapflag reset
|
||||
einbech mapflag reset
|
||||
geffen mapflag reset
|
||||
gonryun mapflag reset
|
||||
izlude mapflag reset
|
||||
jawaii mapflag reset
|
||||
hugel mapflag reset
|
||||
lighthalzen mapflag reset
|
||||
louyang mapflag reset
|
||||
manuk mapflag reset
|
||||
mid_camp mapflag reset
|
||||
moc_ruins mapflag reset
|
||||
morocc mapflag reset
|
||||
moscovia mapflag reset
|
||||
niflheim mapflag reset
|
||||
prontera mapflag reset
|
||||
payon mapflag reset
|
||||
pay_arche mapflag reset
|
||||
rachel mapflag reset
|
||||
splendide mapflag reset
|
||||
umbala mapflag reset
|
||||
veins mapflag reset
|
||||
xmas mapflag reset
|
||||
yuno mapflag reset
|
@ -6,6 +6,7 @@
|
||||
//= 1.0 [Komurka]
|
||||
//= 1.1 Added WoE:SE Map restrictions. [L0ne_W0lf]
|
||||
//= 1.2 Added Endless Tower Restrictions. (bugreport:4707) [L0ne_W0lf]
|
||||
//= 1.3 Added Orc's Memory, Nidhoggur's Nest and towns restrictions [Daegaladh]
|
||||
//===== Current Version: =====================================
|
||||
|
||||
//Aldebaran Turbo Track
|
||||
@ -54,3 +55,43 @@ arug_cas05 mapflag restricted 4
|
||||
4@tower mapflag restricted 6
|
||||
5@tower mapflag restricted 6
|
||||
6@tower mapflag restricted 6
|
||||
|
||||
//Orc's Memory ===================
|
||||
1@orcs mapflag restricted 6
|
||||
2@orcs mapflag restricted 6
|
||||
|
||||
// Nidhoggr's Instance ===========
|
||||
1@nyd mapflag restricted 6
|
||||
2@nyd mapflag restricted 6
|
||||
|
||||
//Towns
|
||||
alberta mapflag restricted 7
|
||||
aldebaran mapflag restricted 7
|
||||
amatsu mapflag restricted 7
|
||||
ayothaya mapflag restricted 7
|
||||
brasilis mapflag restricted 7
|
||||
comodo mapflag restricted 7
|
||||
einbroch mapflag restricted 7
|
||||
einbech mapflag restricted 7
|
||||
geffen mapflag restricted 7
|
||||
gonryun mapflag restricted 7
|
||||
izlude mapflag restricted 7
|
||||
jawaii mapflag restricted 7
|
||||
hugel mapflag restricted 7
|
||||
lighthalzen mapflag restricted 7
|
||||
louyang mapflag restricted 7
|
||||
manuk mapflag restricted 7
|
||||
mid_camp mapflag restricted 7
|
||||
moc_ruins mapflag restricted 7
|
||||
morocc mapflag restricted 7
|
||||
moscovia mapflag restricted 7
|
||||
niflheim mapflag restricted 7
|
||||
prontera mapflag restricted 7
|
||||
payon mapflag restricted 7
|
||||
pay_arche mapflag restricted 7
|
||||
rachel mapflag restricted 7
|
||||
splendide mapflag restricted 7
|
||||
umbala mapflag restricted 7
|
||||
veins mapflag restricted 7
|
||||
xmas mapflag restricted 7
|
||||
yuno mapflag restricted 7
|
||||
|
@ -5037,7 +5037,7 @@
|
||||
12330,Recall_FemaleGM,Summon Female GameMaster Scroll,2,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ mercenary_create 2001,1800000; },{},{}
|
||||
12331,Ginseng,Ginseng,0,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ percentheal 6,0; },{},{}
|
||||
12332,Fruit_Juice,Fruit Juice,0,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ percentheal 0,6; },{},{}
|
||||
12333,Ansila,Ancilla,2,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
12333,Ansila,Ancilla,2,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ percentheal 0,15; },{},{}
|
||||
12334,Cherish_Box,Treasure Edition Helm Box,2,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem groupranditem(IG_Cherish_Box),1; },{},{}
|
||||
12335,Yummy_Skewered_Dish,Grilled Delicious Skewer,0,1000,,350,,,,,0xFFFFFFFF,7,2,,,,,,{ percentheal 60,60; },{},{}
|
||||
12336,Baked_Mushroom,Grilled Mushroom,0,500,,300,,,,,0xFFFFFFFF,7,2,,,,,,{ percentheal 30,30; },{},{}
|
||||
@ -5099,13 +5099,13 @@
|
||||
12392,RepairA,Repair A,2,220,,100,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
12393,RepairB,Repair B,2,500,,140,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
12394,RepairC,Repair C,2,1100,,180,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
12395,Tantanmen,Tantan Noodle,2,20,,50,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
12395,Tantanmen,Tantan Noodle,2,20,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ pet 1519; },{},{}
|
||||
12396,Fools_Day_Box,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ if(rand(1,10)==1) itemskill "AL_TELEPORT",1; else if(rand(1,10)==2) itemskill "AL_TELEPORT",3; else if(rand(1,10)==3) percentheal 50,0; else if(rand(1,10)==4) percentheal 0,50; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 512,1; else if(rand(1,10)==7) itemskill "ALL_REVERSEORCISH",1; else if(rand(1,10)==8) specialeffect2 247; else if(rand(1,10)==9) specialeffect2 338; else specialeffect2 10; },{},{}
|
||||
12397,Fools_Day_Box2,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ if(rand(1,10)==1) itemskill "TF_DETOXIFY",1; else if(rand(1,10)==2) itemskill "TF_PICKSTONE",1; else if(rand(1,10)==3) itemskill "BA_FROSTJOKER",1; else if(rand(1,10)==4) itemskill "DC_SCREAM",1; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 909,1; else if(rand(1,10)==7) itemskill "AL_RUWACH",1; else if(rand(1,10)==8) specialeffect2 328; else if(rand(1,10)==9) specialeffect2 68; else specialeffect2 196; },{},{}
|
||||
12398,PCBang_Gift_Box,PCBang Gift Box,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
12399,Castle_Treasure_Box,Castle Treasure Box,2,20,,1000,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
12400,Water_Of_Blessing_,Water Of Blessing ,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
12401,Rune_Kn_Test_Int,Rune Kn Test Int,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
12401,Rune_Kn_Test_Int,Rune Kn Test Int,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_INCINT,300000,40; },{},{}
|
||||
12402,29Fruit,29Fruit,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
12403,Lucky_Egg2,Lucky Egg2,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
12404,Acti_Potion,Acti Potion,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
|
@ -2,17 +2,18 @@
|
||||
// here you define which items may not be used at PvP / GvG
|
||||
// format: <item id>,<mode>
|
||||
// mode
|
||||
// 1- restricted in PVP
|
||||
// 2- restricted in GVG
|
||||
// 3- restricted in both PvP and GvG
|
||||
// 1- restricted in normal maps
|
||||
// 2- restricted in PVP
|
||||
// 4- restricted in GVG
|
||||
// 8- restricted in Battlegrounds
|
||||
// Restricted zones - they're configured by 'restricted <number>' mapflag
|
||||
// 4 - restricted in zone 1
|
||||
// 8 - restricted in zone 2
|
||||
// 16 - restricted in zone 3
|
||||
// 32 - restricted in zone 4
|
||||
// 64 - restricted in zone 5
|
||||
// 128 - restricted in zone 6
|
||||
// 256 - restricted in zone 7
|
||||
// 32 - restricted in zone 1
|
||||
// 64 - restricted in zone 2
|
||||
// 128 - restricted in zone 3
|
||||
// 256 - restricted in zone 4
|
||||
// 512 - restricted in zone 5
|
||||
// 1024 - restricted in zone 6
|
||||
// 2048 - restricted in zone 7
|
||||
|
||||
//Examples:
|
||||
//1201,1 you can't use KNIFE(ID 1201) on PvP and GvG
|
||||
@ -24,20 +25,36 @@
|
||||
// you can even mix modes
|
||||
//519,41 (32+8+1) you can't use Milk on PVP, and maps marked as 'restricted zone 2' and 'restricted zone 4'
|
||||
|
||||
//PVP
|
||||
14529,2 //Greed Scroll
|
||||
|
||||
//GVG
|
||||
12218,4 //LV5 Assumptio Scroll
|
||||
14529,4 //Greed Scroll
|
||||
14590,4 //Party Assumptio 5 Scroll
|
||||
|
||||
//BATTLEGROUND
|
||||
12218,8 //LV5 Assumptio Scroll
|
||||
14590,8 //Party Assumptio 5 Scroll
|
||||
|
||||
|
||||
//Zone 1 - Aldebaran Turbo Track
|
||||
601,4 //Fly Wing
|
||||
506,4 //Green Potion
|
||||
525,4 //Panacea
|
||||
601,32 //Fly Wing
|
||||
605,32 //Anodyne
|
||||
506,32 //Green Potion
|
||||
525,32 //Panacea
|
||||
|
||||
//Zone 2 - Jail
|
||||
601,8 //Fly Wing - not really needed here but ...
|
||||
602,8 //Butterfly Wing - also not needed
|
||||
12212,8 //Giant Fly Wing
|
||||
14582,8
|
||||
14583,8
|
||||
14584,8
|
||||
14585,8
|
||||
601,64 //Fly Wing - not really needed here but ...
|
||||
602,64 //Butterfly Wing - also not needed
|
||||
12212,64 //Giant Fly Wing
|
||||
14582,64
|
||||
14583,64
|
||||
14584,64
|
||||
14585,64
|
||||
|
||||
//Zone 3 - Izlude Battle Arena
|
||||
601,16 //Fly Wing
|
||||
601,128 //Fly Wing
|
||||
|
||||
//Zone 7 - Towns
|
||||
14529,2048 //Greed Scroll
|
||||
|
@ -21,29 +21,39 @@
|
||||
// Example:
|
||||
// 8,6 = Endure cannot be used in PvP and GvG maps (2+4)
|
||||
|
||||
//PVP
|
||||
1013,2048 //BS_GREED
|
||||
|
||||
//GVG
|
||||
26,4 //AL_TELEPORT
|
||||
27,4 //AL_WARP
|
||||
87,4 //WZ_ICEWALL
|
||||
150,4 //TF_BACKSLIDING
|
||||
290,4 //SA_ABRACADABRA
|
||||
219,4 //RG_INTIMIDATE
|
||||
336,4 //WE_CALLPARTNER
|
||||
361,4 //HP_ASSUMPTIO
|
||||
362,4 //HP_BASILICA
|
||||
395,4 //CG_MOONLIT
|
||||
409,4 //WE_CALLPARENT
|
||||
410,4 //WE_CALLBABY
|
||||
491,4 //CR_CULTIVATION
|
||||
530,4 //NJ_KIRIKAGE
|
||||
691,4 //CASH_ASSUMPTIO
|
||||
1013,2048 //BS_GREED
|
||||
|
||||
//BATTLEGROUND
|
||||
26,8 //AL_TELEPORT
|
||||
27,8 //AL_WARP
|
||||
87,8 //WZ_ICEWALL
|
||||
150,8 //TF_BACKSLIDING
|
||||
219,8 //RG_INTIMIDATE
|
||||
264,8 //MO_BODYRELOCATION
|
||||
336,8 //WE_CALLPARTNER
|
||||
361,8 //HP_ASSUMPTIO
|
||||
362,8 //HP_BASILICA
|
||||
395,8 //CG_MOONLIT
|
||||
396,8 //CG_MARIONETTE
|
||||
409,8 //WE_CALLPARENT
|
||||
410,8 //WE_CALLBABY
|
||||
491,8 //CR_CULTIVATION
|
||||
411,8 //TK_RUN
|
||||
426,8 //TK_HIGHJUMP
|
||||
@ -72,19 +82,20 @@
|
||||
79,16 //PR_MAGNUS
|
||||
|
||||
//Zone 1 - Aldebaran Turbo Track
|
||||
219,32 //RG_INTIMIDATE
|
||||
8,32 //SM_ENDURE
|
||||
26,32 //AL_TELEPORT
|
||||
27,32 //AL_WARP
|
||||
51,32 //TF_HIDING
|
||||
135,32 //AS_CLOAKING
|
||||
389,32 //ST_CHASEWALK
|
||||
35,32 //AL_CURE
|
||||
51,32 //TF_HIDING
|
||||
87,32 //WZ_ICEWALL
|
||||
135,32 //AS_CLOAKING
|
||||
219,32 //RG_INTIMIDATE
|
||||
264,32 //MO_BODYRELOCATION
|
||||
357,32 //LK_CONCENTRATION
|
||||
359,32 //LK_BERSERK
|
||||
362,32 //HP_BASILICA
|
||||
389,32 //ST_CHASEWALK
|
||||
395,32 //CG_MOONLIT
|
||||
357,32 //LK_CONCENTRATION
|
||||
264,32 //MO_BODYRELOCATION
|
||||
|
||||
//Zone 2 - Jail
|
||||
421,64 //TK_JUMPKICK
|
||||
@ -96,6 +107,7 @@
|
||||
|
||||
//Zone 4 - WoE:SE
|
||||
426,256 //TK_HIGHJUMP
|
||||
290,256 //SA_ABRACADABRA
|
||||
|
||||
//Zone 5 - Sealed Shrine
|
||||
12,512 //MG_SAFETYWALL
|
||||
@ -104,9 +116,15 @@
|
||||
361,512 //HP_ASSUMPTIO
|
||||
691,512 //CASH_ASSUMPTIO
|
||||
|
||||
//Zone 6 -Endless Tower
|
||||
//Zone 6 - Endless Tower, Orc's Memory, Nidhoggur's Nest
|
||||
26,1024 //AL_TELEPORT
|
||||
87,1024 //WZ_ICEWALL
|
||||
219,1024 //RG_INTIMIDATE
|
||||
405,1024 //PF_SPIDERWEB
|
||||
674,1024 //NPC_EXPULSION
|
||||
|
||||
//Zone 7 - Towns
|
||||
232,2048 //AM_CANNIBALIZE
|
||||
233,2048 //AM_SPHEREMINE
|
||||
491,2048 //CR_CULTIVATION
|
||||
1013,2048 //BS_GREED
|
||||
|
@ -27,4 +27,5 @@ npc: conf/mapflag/battleground.txt
|
||||
npc: conf/mapflag/fireworks.txt
|
||||
npc: conf/mapflag/novending.txt
|
||||
npc: conf/mapflag/town.txt
|
||||
npc: conf/mapflag/reset.txt
|
||||
// --------------------------------------------------------------
|
||||
|
@ -4416,6 +4416,8 @@ ACMD_FUNC(mapinfo)
|
||||
strcat(atcmd_output, "NoIcewall | ");
|
||||
if (map[m_id].flag.allowks)
|
||||
strcat(atcmd_output, "AllowKS | ");
|
||||
if (map[m_id].flag.reset)
|
||||
strcat(atcmd_output, "Reset | ");
|
||||
clif_displaymessage(fd, atcmd_output);
|
||||
|
||||
strcpy(atcmd_output,"Other Flags: ");
|
||||
|
@ -491,6 +491,7 @@ struct map_data {
|
||||
unsigned partylock :1;
|
||||
unsigned guildlock :1;
|
||||
unsigned src4instance : 1; // To flag this map when it's used as a src map for instances
|
||||
unsigned reset :1; // [Daegaladh]
|
||||
} flag;
|
||||
struct point save;
|
||||
struct npc_data *npc[MAX_NPC_PER_MAP];
|
||||
|
@ -3117,6 +3117,8 @@ static const char* npc_parse_mapflag(char* w1, char* w2, char* w3, char* w4, con
|
||||
map[m].flag.partylock=state;
|
||||
else if (!strcmpi(w3,"guildlock"))
|
||||
map[m].flag.guildlock=state;
|
||||
else if (!strcmpi(w3,"reset"))
|
||||
map[m].flag.reset=state;
|
||||
else
|
||||
ShowError("npc_parse_mapflag: unrecognized mapflag '%s' (file '%s', line '%d').\n", w3, filepath, strline(buffer,start-buffer));
|
||||
|
||||
|
33
src/map/pc.c
33
src/map/pc.c
@ -720,13 +720,17 @@ int pc_isequip(struct map_session_data *sd,int n)
|
||||
return 0;
|
||||
if(item->sex != 2 && sd->status.sex != item->sex)
|
||||
return 0;
|
||||
if(map[sd->bl.m].flag.pvp && ((item->flag.no_equip&1) || !pc_isAllowedCardOn(sd,item->slot,n,1)))
|
||||
if(!map_flag_vs(sd->bl.m) && ((item->flag.no_equip&1) || !pc_isAllowedCardOn(sd,item->slot,n,1)))
|
||||
return 0;
|
||||
if(map[sd->bl.m].flag.pvp && ((item->flag.no_equip&2) || !pc_isAllowedCardOn(sd,item->slot,n,2)))
|
||||
return 0;
|
||||
if(map_flag_gvg(sd->bl.m) && ((item->flag.no_equip&4) || !pc_isAllowedCardOn(sd,item->slot,n,4)))
|
||||
return 0;
|
||||
if(map[sd->bl.m].flag.battleground && ((item->flag.no_equip&8) || !pc_isAllowedCardOn(sd,item->slot,n,8)))
|
||||
return 0;
|
||||
if(map_flag_gvg(sd->bl.m) && ((item->flag.no_equip&2) || !pc_isAllowedCardOn(sd,item->slot,n,2)))
|
||||
return 0;
|
||||
if(map[sd->bl.m].flag.restricted)
|
||||
{
|
||||
int flag =map[sd->bl.m].zone;
|
||||
int flag =8*map[sd->bl.m].zone;
|
||||
if (item->flag.no_equip&flag || !pc_isAllowedCardOn(sd,item->slot,n,flag))
|
||||
return 0;
|
||||
}
|
||||
@ -3648,6 +3652,11 @@ int pc_isUseitem(struct map_session_data *sd,int n)
|
||||
if( nameid == 12243 && sd->md->db->lv < 80 )
|
||||
return 0;
|
||||
break;
|
||||
|
||||
case 12213: //Neuralizer
|
||||
if( !map[sd->bl.m].flag.reset )
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
|
||||
if( nameid >= 12153 && nameid <= 12182 && sd->md != NULL )
|
||||
@ -3655,9 +3664,11 @@ int pc_isUseitem(struct map_session_data *sd,int n)
|
||||
|
||||
//added item_noequip.txt items check by Maya&[Lupus]
|
||||
if (
|
||||
(map[sd->bl.m].flag.pvp && item->flag.no_equip&1) || // PVP
|
||||
(map_flag_gvg(sd->bl.m) && item->flag.no_equip&2) || // GVG
|
||||
(map[sd->bl.m].flag.restricted && item->flag.no_equip&map[sd->bl.m].zone) // Zone restriction
|
||||
(!map_flag_vs(sd->bl.m) && item->flag.no_equip&1) || // Normal
|
||||
(map[sd->bl.m].flag.pvp && item->flag.no_equip&2) || // PVP
|
||||
(map_flag_gvg(sd->bl.m) && item->flag.no_equip&4) || // GVG
|
||||
(map[sd->bl.m].flag.battleground && item->flag.no_equip&8) || // Battleground
|
||||
(map[sd->bl.m].flag.restricted && item->flag.no_equip&(8*map[sd->bl.m].zone)) // Zone restriction
|
||||
)
|
||||
return 0;
|
||||
|
||||
@ -7435,9 +7446,11 @@ int pc_checkitem(struct map_session_data *sd)
|
||||
if( it )
|
||||
{ // check for forbiden items.
|
||||
int flag =
|
||||
(map[sd->bl.m].flag.restricted?map[sd->bl.m].zone:0)
|
||||
| (map[sd->bl.m].flag.pvp?1:0)
|
||||
| (map_flag_gvg(sd->bl.m)?2:0);
|
||||
(map[sd->bl.m].flag.restricted?(8*map[sd->bl.m].zone):0)
|
||||
| (!map_flag_vs(sd->bl.m)?1:0)
|
||||
| (map[sd->bl.m].flag.pvp?2:0)
|
||||
| (map_flag_gvg(sd->bl.m)?4:0)
|
||||
| (map[sd->bl.m].flag.battleground?8:0);
|
||||
if( flag && (it->flag.no_equip&flag || !pc_isAllowedCardOn(sd,it->slot,i,flag)) )
|
||||
{
|
||||
pc_unequipitem(sd, i, 2);
|
||||
|
@ -348,7 +348,8 @@ enum {
|
||||
MF_ALLOWKS,
|
||||
MF_MONSTER_NOTELEPORT,
|
||||
MF_PVP_NOCALCRANK, //50
|
||||
MF_BATTLEGROUND
|
||||
MF_BATTLEGROUND,
|
||||
MF_RESET
|
||||
};
|
||||
|
||||
const char* script_op2name(int op)
|
||||
@ -9632,6 +9633,7 @@ BUILDIN_FUNC(getmapflag)
|
||||
case MF_MONSTER_NOTELEPORT: script_pushint(st,map[m].flag.monster_noteleport); break;
|
||||
case MF_PVP_NOCALCRANK: script_pushint(st,map[m].flag.pvp_nocalcrank); break;
|
||||
case MF_BATTLEGROUND: script_pushint(st,map[m].flag.battleground); break;
|
||||
case MF_RESET: script_pushint(st,map[m].flag.reset); break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -9701,6 +9703,7 @@ BUILDIN_FUNC(setmapflag)
|
||||
case MF_MONSTER_NOTELEPORT: map[m].flag.monster_noteleport=1; break;
|
||||
case MF_PVP_NOCALCRANK: map[m].flag.pvp_nocalcrank=1; break;
|
||||
case MF_BATTLEGROUND: map[m].flag.battleground = (!val || atoi(val) < 0 || atoi(val) > 2) ? 1 : atoi(val); break;
|
||||
case MF_RESET: map[m].flag.reset=1; break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -9767,6 +9770,7 @@ BUILDIN_FUNC(removemapflag)
|
||||
case MF_MONSTER_NOTELEPORT: map[m].flag.monster_noteleport=0; break;
|
||||
case MF_PVP_NOCALCRANK: map[m].flag.pvp_nocalcrank=0; break;
|
||||
case MF_BATTLEGROUND: map[m].flag.battleground=0; break;
|
||||
case MF_RESET: map[m].flag.reset=0; break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1992,11 +1992,15 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
|
||||
if(!data->script)
|
||||
continue;
|
||||
if(data->flag.no_equip) { //Card restriction checks.
|
||||
if(map[sd->bl.m].flag.restricted && data->flag.no_equip&map[sd->bl.m].zone)
|
||||
if(map[sd->bl.m].flag.restricted && data->flag.no_equip&(8*map[sd->bl.m].zone))
|
||||
continue;
|
||||
if(map[sd->bl.m].flag.pvp && data->flag.no_equip&1)
|
||||
if(!map_flag_vs(sd->bl.m) && data->flag.no_equip&1)
|
||||
continue;
|
||||
if(map_flag_gvg(sd->bl.m) && data->flag.no_equip&2)
|
||||
if(map[sd->bl.m].flag.pvp && data->flag.no_equip&2)
|
||||
continue;
|
||||
if(map_flag_gvg(sd->bl.m) && data->flag.no_equip&4)
|
||||
continue;
|
||||
if(map[sd->bl.m].flag.battleground && data->flag.no_equip&8)
|
||||
continue;
|
||||
}
|
||||
if(i == EQI_HAND_L && sd->status.inventory[index].equip == EQP_HAND_L)
|
||||
|
Loading…
x
Reference in New Issue
Block a user