* Added documentation for mapflags - thanks to Lighta for the idea and assistance.

* Reformatted permissions documentation.
* Corrected some mistakes in script_commands.txt - a huge thanks to JaBote for finding them! (Hercules d0c5018)
* Re-added mob_boss entries deleted in r17330.
* Code by Lighta:
-- Added hook for 0x44A and 0x447 (unfinished).
-- Added timestr for DumpUnknow packet and moved to proper function for visibility.
-- Fixed VCC compile error with r17333.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17334 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
euphyy 2013-05-26 05:21:44 +00:00
parent 02ddefb9d5
commit 99de377882
16 changed files with 626 additions and 97 deletions

View File

@ -1,4 +1,4 @@
/* Channel system configuration file */
// Channel System Configuration File
chsys: (
{

View File

@ -9,8 +9,9 @@
//===== Description: =========================================
//= Players can attack other guilds, and will have their guild
//= icons shown. WoE damage reductions will also take place.
//= gvg: Turns on GvG mode
//= gvg: Turns on GvG mode.
//= gvg_castle: Describes castle maps for WoE.
//= gvg_dungeon: Describes dungeon maps for WoE.
//===== Additional Comments: =================================
//= 1.1 - Added Novice Guild Castles.
//= 1.2 - Updated with new meanings of gvg and gvg_castle.

View File

@ -7,7 +7,12 @@
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Disables use of @go to a map.
//= Disables warping from a map.
//= Script commands 'warpparty' and 'warpguild' will not warp
//= players.
//= Atcommands @warp, @go, @load, @jump, @partyrecall,
//= @guildrecall, and @recallall will not warp players.
//= GD_EMERGENCYCALL and UNT_CALLFAMILY will not warp players.
//===== Additional Comments: =================================
//= 1.3 - Added WoE SE maps.
//============================================================

View File

@ -7,7 +7,10 @@
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Disables use of @warp to a map.
//= Disables warping to a map.
//= Atcommands @warp, @go, @load, @jump, @partyrecall,
//= @guildrecall, and @recallall are disabled.
//= Command /memo is disabled.
//===== Additional Comments: =================================
//= 1.0 - Initial script.
//============================================================

View File

@ -368,7 +368,7 @@ mf_monster_noteleport 49
mf_pvp_nocalcrank 50
mf_battleground 51
mf_reset 52
mf_channoautojoin 53
mf_nomapchannelautojoin 53
mf_nousecart 54
mf_noitemconsumption 55
mf_sumstartmiracle 56

View File

@ -1802,17 +1802,18 @@ packet_ver: 33
//2013-03-20Ragexe (Judas)
packet_ver: 34
0x014f,6,guildrequestinfo,2
0x01fd,15,repairitem,2
//0x0281,-1,itemlistwindowselected,2:4:8
0x035f,6,reqclickbuyingstore,2
0x0363,6,ticksend,2
0x0365,12,searchstoreinfolistitemclick,2:6:10
0x0438,6,dropitem,2:4
0x0447,2
0x0447,2,booking_playcancel,0
0x044A,6,clientversion,2
0x0844,2,cashshopopen,0
0x0848,-1,cashshopbuy,0
0x084a,2,cashshopclose,0
0x084b,19 //fallitem4
0x084a,2,cashshopclose,00x084b,19 //fallitem4
0x085a,90,useskilltoposinfo,2:4:6:8:10
0x085d,18,bookingregreq,2:4
0x0868,-1,itemlistwindowselected,2:4:8

View File

@ -47,3 +47,4 @@
1871,Falling Bishop,500000
1873,Beelzebub,500000
1885,Gopinich,500000
2022,Nidhoggur's Shadow,500000

View File

@ -47,3 +47,6 @@
1871,Falling Bishop,500000
1873,Beelzebub,500000
1885,Gopinich,500000
2022,Nidhoggur's Shadow,500000
2068,Boitata,500000
2087,Scaraba Queen,500000

356
doc/mapflags.txt Normal file
View File

@ -0,0 +1,356 @@
//===== rAthena Documentation ================================
//= Mapflag List
//===== By: ==================================================
//= rAthena Dev Team
//===== Current Version: =====================================
//= 20130526
//===== Description: =========================================
//= List of available mapflags and their functions.
//============================================================
This file describes the functions of mapflags, which determine the behavior of a
map in various situations. For instructions on setting a mapflag, refer to the
documentation in '/doc/script_commands.txt'.
To search for a mapflag, write "*" before its name.
The format of this file is as follows:
1. Restrictions
2. Battle-related
3. Map Effects
4. Miscellaneous
===================
| 1. Restrictions |
===================
---------------------------------------
*noreturn
Disables usage of map-warping items on a map:
- Butterfly Wing (ID 602)
- Yellow/Green/Red/Blue Butterfly Wing (IDs 14582-14585)
- Siege Teleport Scroll (ID 14591)
- Dungeon Teleport Scroll 1/2/3 (IDs 14527, 14581, 12352)
The 'warpparty' and 'warpguild' script commands are also blocked for destinations outside the
player's current map.
---------------------------------------
*noteleport
Disables all means of teleportation within a map:
- Items Fly Wing (ID 601) and Giant Fly Wing (ID 12212) are disabled.
- Skills AL_TELEPORT, TK_HIGHJUMP, and SC_DIMENSIONDOOR are disabled.
- Skills RG_INTIMIDATE, NPC_EXPULSION, and CG_TAROTCARD will not teleport their intended targets.
- Script commands using "Random" as the destination will fail.
- Script command 'warpwaitingpc' will fail with "SavePoint" as the destination.
- Script command 'unitwarp' will fail for players.
- Atcommand @jump is disabled.
---------------------------------------
*nowarp
Disables warping from a map:
- Script commands 'warpparty' and 'warpguild' will not warp players on 'nowarp' maps.
- Atcommands @warp, @go, @load, and @jump are disabled.
- Atcommands @partyrecall, @guildrecall, and @recallall will not warp players on 'nowarp' maps.
- Skill GD_EMERGENCYCALL will not warp players on 'nowarp' maps.
- Unit UNT_CALLFAMILY will not warp players on 'nowarp' maps.
---------------------------------------
*nowarpto
Disables warping to a map:
- Atcommands @warp, @go, @load, and @jump are disabled to the 'nowarpto' map.
- Atcommands @partyrecall, @guildrecall, and @recallall are disabled.
- Command /memo is disabled.
- Skill GD_EMERGENCYCALL is disabled if flag 16 of 'emergency_call' is set in
'/conf/battle/skill.conf'. This will not work for 'gvg_castle' maps.
---------------------------------------
*nogo
Disables usage of command @go on a map.
---------------------------------------
*nosave <map name>
Disables auto-saving on a map. Players who log off on the map will be warped to <map name> when
they next log in. "SavePoint", without quotes, is also valid for this field.
---------------------------------------
*nomemo
Disables the /memo command to save a warp point on a map, and also disables usage of marriage
skills WE_CALLPARTNER, WE_CALLPARENT, and WE_CALLBABY.
---------------------------------------
*noitemconsumption
Disables usage of items on a map.
---------------------------------------
*notrade
Disables trading on a map.
---------------------------------------
*nodrop
Disables dropping items on a map.
Note that items may still be dropped if a player's inventory is full and 'item_flooritem_check'
is disabled in '/conf/battle/items.conf'.
---------------------------------------
*noloot
*nomobloot
*nomvploot
Disables normal monsters and MVPs from dropping items on a map. Looted items will always drop.
'noloot' is the same as 'nomobloot' and 'nomvploot' combined.
---------------------------------------
*noexp
*nobaseexp
*nojobexp
Disables gaining base and job experience from monsters, including MVP bonuses, on a map.
'noexp' is the same as 'nobaseexp' and 'nojobexp' combined.
---------------------------------------
*nopenalty
*noexppenalty
*nozenypenalty
Disables the loss of experience and Zeny upon death on a map.
'nopenalty' is the same as 'noexppenalty' and 'nozenypenalty' combined.
Notes:
'noexppenalty' also affects pets, and skills PR_REDEMPTIO and LG_INSPIRATION will not deduct EXP.
'nozenypenalty' only applies if 'zeny_penalty' is enabled in '/conf/battle/exp.conf'.
---------------------------------------
*nochat
*novending
Disables chatroom and shop creation on a map.
---------------------------------------
*nousecart
Disables cart usage on a map.
---------------------------------------
*noskill
Disables skill usage on a map.
---------------------------------------
*restricted <zone>
Disables certain items and skills on a map through a specified zone number. The zone databases are
located in 'db/(pre-)re/item_noequip.txt' and 'db/(pre-)re/skill_nocast_db.txt', both of which
contain explanations and examples of how this mapflag is used.
---------------------------------------
*monster_noteleport
Prevents monsters from teleporting on a map, including through the skill RG_INTIMIDATE.
---------------------------------------
*nobranch
Disables usage of monster-spawning items on a map:
- Dead Branch (ID 604)
- Bloody Branch (ID 12103)
- Poring Box (ID 12109)
- Red Pouch (ID 12024)
Note that when 'mob_warp' is enabled in '/conf/battle/monster.conf' and flag 4 is set, this will
also prevent mobs from being warped onto the map.
---------------------------------------
*noicewall
Disables skill WZ_ICEWALL on a map.
---------------------------------------
*nosumstarmiracle
Disables Star Gladiator's "Solar, Lunar, and Stellar Miracle" from occurring on a map.
---------------------------------------
*nomineeffect
Disables mine effects on a map.
[More information needed.]
---------------------------------------
*nolockon
Disables locking on a map.
[More information needed.]
---------------------------------------
=====================
| 2. Battle-related |
=====================
---------------------------------------
*pvp
*pvp_noparty
*pvp_noguild
*pvp_nocalcrank
Enables Player vs. Player mode on a map and applies the corresponding damage adjustments.
'pvp_noparty' will ignore party alliances.
'pvp_noguild' will ignore guild alliances.
'pvp_nocalcrank' will disable calculation of PvP rankings.
---------------------------------------
*pvp_nightmaredrop <id>,<type>,<rate>
Causes players to drop items upon death. This is not grouped with the other PvP mapflags
because it does not necessarily require PvP mode to be set.
<id> determines what will drop. It can be either a specific item ID or "random".
<type> specifies where items are dropped from. It can be "inventory", "equip", or "all".
<rate> is the chance that an item will drop (10000 = 100%).
---------------------------------------
*gvg
*gvg_noparty
*gvg_castle
*gvg_dungeon
Enables Guild vs. Guild mode on a map and applies the corresponding damage adjustments.
'gvg_noparty' will ignore party alliances.
'gvg_castle' marks a guild castle. GvG mode will be active only during the War of Emperium.
'gvg_dungeon' marks a guild dungeon. Players will be warped out after two deaths.
---------------------------------------
*battleground {<type>}
Enables Battlegrounds on a map and applies the corresponding damage adjustments.
If <type> is 2, a scoreboard will be shown. The default is 1 (nothing).
---------------------------------------
*partylock
*guildlock
Prevents alteration of parties and guilds on a map. This includes creating, leaving,
inviting, expelling, breaking, and changing leaders.
Notes:
'partylock' will still allow party options to be changed.
'guildlock' will also block changes to guild alliances.
---------------------------------------
==================
| 3. Map Effects |
==================
---------------------------------------
*clouds
*clouds2
*fireworks
*fog
*leaves
*sakura
*snow
Displays a weather effect on a map.
---------------------------------------
*nightenabled
Displays night mode effects on a map. This is used on most outdoor maps.
---------------------------------------
====================
| 4. Miscellaneous |
====================
---------------------------------------
*town
Marks a map as a town. This allows players to access their mail and disables kill stealing.
---------------------------------------
*reset
Allows usage of item Neuralizer (ID 12213).
---------------------------------------
*bexp <rate>
*jexp <rate>
Changes the base and job experience rates on a map.
<rate> is given as a percentage (i.e. 100 = 1x EXP). This takes into account the modifiers
'base_exp_rate' and 'job_exp_rate' in '/conf/battle/exp.conf'.
---------------------------------------
*loadevent
Triggers the label "OnPCLoadMapEvent" when players enter a map (this also includes
teleporting within the map). More details can be found in '/doc/script_commands.txt'.
---------------------------------------
*allowks
Allows kill stealing on a map (rendering the @noks command useless).
---------------------------------------
*autotrade
Allows the @autotrade command on a map.
This only applies if 'at_mapflag' is enabled in '/conf/battle/misc.conf'. Otherwise, the
atcommand is enabled on all maps by default.
---------------------------------------
*nomapchannelautojoin
Stops players from automatically joining the #map channel on a map.
This only applies if map channels are enabled and 'map_local_channel_autojoin' is true
in '/conf/channels.conf'.
---------------------------------------

View File

@ -1,35 +1,174 @@
//===== rAthena Documentation ================================
//= Permission List
//= Permissions List
//===== By: ==================================================
//= rAthena Dev Team
//===== Current Version: =====================================
//= 20130402
//= 20130526
//===== Description: =========================================
//= Player group permissions, configured in /conf/groups.conf.
//= List of available permissions and their functions.
//============================================================
can_trade : Ability to trade or otherwise distribute items (drop, storage, vending etc...).
can_party : Ability to join parties.
all_skill : Ability to use all skills.
all_equipment : Ability to equip anything (can cause client errors).
skill_unconditional : Ability to use skills without meeting the required conditions (SP, items, etc...).
join_chat : Ability to join a password protected chatrooms.
kick_chat : Protection from being kicked from a chat.
hide_session : Hides player session from being displayed by @commands.
who_display_aid : Ability to see GMs and Account/Char IDs in the @who command.
hack_info : Ability to receive all informations about any player that try to hack, spoof a name, etc.
any_warp : Ability to bypass nowarp, nowarpto, noteleport and nomemo mapflags.
This option is mainly used in commands which modify a character's
map/coordinates (like @memo, @mapmove, @go, @jump, etc...).
view_hpmeter : Ability to see HP bar of every player.
view_equipment : Ability to view players equipment regardless of their setting.
use_check : Ability to use client command /check (display character status).
use_changemaptype : Ability to use client command /changemaptype.
all_commands : Ability to use all atcommands and charcommands.
receive_requests : Ability to receive @requests.
show_bossmobs : Ability to see boss mobs with @showmobs.
disable_pvm : Ability to disable Player vs. Monster.
disable_pvp : Ability to disable Player vs. Player.
disable_commands_when_dead : Ability to disable @command usage when dead.
channel_admin : Ability to modify channel settings regardless of ownership and join password-protected
channels without a password.
This file describes the functions of player group permissions,
configured in '/conf/groups.conf' under the "permissions" bracket.
To search for a permission, write "*" before its name.
The format of this file is as follows:
1. Basic Permissions
2. Extended Permissions
3. Command-related
========================
| 1. Basic Permissions |
========================
---------------------------------------
*can_trade
Allows player to distribute items, such as through trades, dropping,
vending, storage, mail, etc.
---------------------------------------
*can_party
Allows player to create and join parties.
---------------------------------------
===========================
| 2. Extended Permissions |
===========================
---------------------------------------
*all_skill
Grants player all available skills in the player's skill tree.
---------------------------------------
*all_equipment
Allows player to equip any item, regardless of requirements (class, level,
etc.). Note that this can cause client errors if a sprite does not exist.
---------------------------------------
*skill_unconditional
Allows player to use any skill, regardless of required conditions (SP,
items, etc.).
---------------------------------------
*join_chat
Allows player to join password-protected chatrooms.
---------------------------------------
*kick_chat
Prevents player from being kicked from a chatroom.
---------------------------------------
*view_hpmeter
Allows player to see the HP bar of every player.
---------------------------------------
*view_equipment
Allows player to view the equipment of every player, regardless of that
player's setting.
---------------------------------------
*hack_info
Allows player to receive all information about players who try to hack,
spoof a name, etc.
---------------------------------------
*disable_pvm
Prevents player from attacking monsters.
---------------------------------------
*disable_pvp
Prevents player from attacking other players.
---------------------------------------
======================
| 3. Command-related |
======================
---------------------------------------
*all_commands
Allows usage of all atcommands and charcommands.
---------------------------------------
*disable_commands_when_dead
Disables usage of atcommands when player is dead.
---------------------------------------
*hide_session
Hides player session from being displayed by atcommands (@who, @whomap,
etc.).
---------------------------------------
*who_display_aid
Displays all GMs and character/account IDs in the @who command.
---------------------------------------
*any_warp
Allows player to bypass 'nowarp', 'nowarpto', 'noteleport', and 'nomemo'
mapflags in commands which modify a character's map or coordinates (@memo,
@mapmove, @go, @jump, etc.).
---------------------------------------
*receive_requests
Allows player to receive requests through the @requests command.
---------------------------------------
*show_bossmobs
Displays boss mobs in the @showmobs command.
---------------------------------------
*channel_admin
Allows player to modify #channel settings regardless of ownership and to
join password-protected channels without a password.
---------------------------------------
*use_check
Allows player to use the client command /check (displays character status).
---------------------------------------
*use_changemaptype
Allows player to use the client command /changemaptype.
---------------------------------------

View File

@ -136,8 +136,8 @@ Here is a list of valid top-level commands:
This will, upon loading, set a specified map flag on a map you like. These are
normally in files inside 'conf/mapflag' and are loaded first, so by the time the
server's up, all the maps have the flags they should have. Map flags determine
the behavior of the map regarding various common problems, for a better
explanation, see 'setmapflag'.
the behavior of the map in various situations. For more details, see 'setmapflag'
and 'doc/mapflags.txt'.
** Create a permanent monster spawn:
@ -997,9 +997,9 @@ From here on, we will have the commands sorted as follow:
=====================
---------------------------------------
*mes "<string>";
*mes "<string>"{,"<string>"{,...}};
This command will displays a box on the screen for the invoking character, if no
This command will display a box on the screen for the invoking character, if no
such box is displayed already, and will print the string specified into that
box. There is normally no 'close' or 'next' button on this box, unless you
create one with 'close' or 'next', and while it's open the player can't do much
@ -1025,7 +1025,7 @@ English characters, the color codes might get screwed if they stick to letters
with no intervening space. Separating them with spaces from the letters on
either side solves the problem.
To display multiple lines of message while only using a single mes; command,
To display multiple lines of message while only using a single 'mes' command,
use the script command in the following format:
mes "Line 1", "Line 2", "Line 3";
@ -1049,7 +1049,7 @@ will terminate.
mes "[Woman]";
mes "This would appear on the page";
next;
// This is needed cause it is a new page and the top will now be blank
// This is needed since it is a new page and the top will now be blank
mes "[Woman]";
mes "This would appear on the 2nd page";
@ -1124,7 +1124,8 @@ of 'end' stops this, and ends the script.
*set(<variable>,<expression>)
This command will set a variable to the value that the expression results in.
This is the only way to set a variable directly.
Variables may either be set through this command or directly, much like any
other programming language (refer to the "Assigning variables" section).
This is the most basic script command and is used a lot whenever you try to do
anything more advanced than just printing text into a message box.
@ -4780,10 +4781,6 @@ about the guild skill trying to exceed the possible maximum. The full list of
guild skills is available in 'db/(pre-)re/skill_db.txt', these are all the GD_ skills at
the end.
The flag parameter is currently not functional and it's a mystery of what it
would actually do. (Though probably, like for character skills, it would allow
temporary bumping.) Using this command will bump the guild skill up permanently.
// This would give your character's guild one level of Approval (GD_APPROVAL ID
// 10000). Notice that if you try to add two levels of Approval, or add
// Approval when the guild already has it, it will only have one level of
@ -5045,7 +5042,7 @@ expected, refer only to an invoking character.
What these commands do is 'attach' a script to the player which will get
executed on attack (or when attacked in the case of autobonus2).
Rate is the trigger rate of the script (1000 = 100%).
Rate is the trigger rate of the script (10000 = 100%).
Duration is the time that the bonus will last for since the script has triggered.
@ -6096,9 +6093,9 @@ specified.
*setmapflag "<map name>",<flag>{,<zone>};
This command marks a specified map with a map flag given. Map flags alter the
behavior of the map, you can see the list of the available ones in
'db/const.txt' under 'mf_'.
This command marks a specified map with the given map flag, which will alter the
behavior of the map. A full list of mapflags is located in 'db/const.txt' with
the 'mf_' prefix, and documentation can be found in 'doc/mapflags.txt'.
The map flags alter the behavior of the map regarding teleporting (mf_nomemo,
mf_noteleport, mf_nowarp, mf_nogo), storing location when disconnected

View File

@ -16403,7 +16403,56 @@ void clif_parse_reqworldinfo(int fd,struct map_session_data *sd){
if(sd) clif_ackworldinfo(sd);
}
/// unknown usage (CZ_BLOCKING_PLAY_CANCEL)
/// 0447
void clif_parse_blocking_playcancel(int fd,struct map_session_data *sd){
//if(sd)
;
}
/// req world info (CZ_CLIENT_VERSION)
/// 044A <version>.L
void clif_parse_client_version(int fd,struct map_session_data *sd){
//if(sd)
;
}
#ifdef DUMP_UNKNOWN_PACKET
void DumpUnknow(int fd,TBL_PC *sd,int cmd,int packet_len){
const char* packet_txt = "save/packet.txt";
FILE* fp;
time_t time_server;
struct tm *datetime;
char datestr[512];
time(&time_server); // get time in seconds since 1/1/1970
datetime = localtime(&time_server); // convert seconds in structure
// like sprintf, but only for date/time (Sunday, November 02 2003 15:12:52)
strftime(datestr, sizeof(datestr)-1, "%A, %B %d %Y %X.", datetime); // Server time (normal time): %A, %B %d %Y %X.
if( ( fp = fopen( packet_txt , "a" ) ) != NULL ) {
if( sd ) {
fprintf(fp, "Unknown packet 0x%04X (length %d), %s session #%d, %d/%d (AID/CID) at %s \n", cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id,datestr);
} else {
fprintf(fp, "Unknown packet 0x%04X (length %d), session #%d at %s\n", cmd, packet_len, fd,datestr);
}
WriteDump(fp, RFIFOP(fd,0), packet_len);
fprintf(fp, "\n");
fclose(fp);
} else {
ShowError("Failed to write '%s'.\n", packet_txt);
// Dump on console instead
if( sd ) {
ShowDebug("Unknown packet 0x%04X (length %d), %s session #%d, %d/%d (AID/CID) at %s\n", cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id,datestr);
} else {
ShowDebug("Unknown packet 0x%04X (length %d), session #%d at %s\n", cmd, packet_len, fd,datestr);
}
ShowDump(RFIFOP(fd,0), packet_len);
}
}
#endif
/*==========================================
* Main client packet processing function
@ -16523,37 +16572,9 @@ static int clif_parse(int fd)
packet_db[packet_ver][cmd].func(fd, sd);
}
#ifdef DUMP_UNKNOWN_PACKET
else {
const char* packet_txt = "save/packet.txt";
FILE* fp;
if( ( fp = fopen( packet_txt , "a" ) ) != NULL ) {
if( sd ) {
fprintf(fp, "Unknown packet 0x%04X (length %d), %s session #%d, %d/%d (AID/CID)\n", cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id);
} else {
fprintf(fp, "Unknown packet 0x%04X (length %d), session #%d\n", cmd, packet_len, fd);
}
WriteDump(fp, RFIFOP(fd,0), packet_len);
fprintf(fp, "\n");
fclose(fp);
} else {
ShowError("Failed to write '%s'.\n", packet_txt);
// Dump on console instead
if( sd ) {
ShowDebug("Unknown packet 0x%04X (length %d), %s session #%d, %d/%d (AID/CID)\n", cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id);
} else {
ShowDebug("Unknown packet 0x%04X (length %d), session #%d\n", cmd, packet_len, fd);
}
ShowDump(RFIFOP(fd,0), packet_len);
}
}
else DumpUnknow(fd,sd,cmd,packet_len);
#endif
RFIFOSKIP(fd, packet_len);
}; // main loop end
return 0;
@ -17021,6 +17042,8 @@ void packetdb_readdb(void)
{ clif_parse_MoveItem , "moveitem" },
{ clif_parse_GuildInvite2 , "guildinvite2" },
{ clif_parse_reqworldinfo, "reqworldinfo"},
{ clif_parse_client_version, "clientversion"},
{ clif_parse_blocking_playcancel, "booking_playcancel"},
{NULL,NULL}
};

View File

@ -76,27 +76,27 @@ int elemental_create(struct map_session_data *sd, int class_, unsigned int lifet
ele.mode = EL_MODE_PASSIVE; // Initial mode
i = db->status.size+1; // summon level
//[(Caster<EFBFBD>s Max HP/ 3 ) + (Caster<65>s INT x 10 )+ (Caster<65>s Job Level x 20 )] x [(Elemental Summon Level + 2) / 3]
//[(Caster's Max HP/ 3 ) + (Caster's INT x 10 )+ (Caster's Job Level x 20 )] x [(Elemental Summon Level + 2) / 3]
ele.hp = ele.max_hp = (sd->battle_status.max_hp/3 + sd->battle_status.int_*10 + sd->status.job_level) * ((i + 2) / 3);
//Caster<EFBFBD>s Max SP /4
//Caster's Max SP /4
ele.sp = ele.max_sp = sd->battle_status.max_sp/4;
//Caster<EFBFBD>s [ Max SP / (18 / Elemental Summon Skill Level) 1- 100 ]
//Caster's [ Max SP / (18 / Elemental Summon Skill Level) 1- 100 ]
ele.atk = (sd->battle_status.max_sp / (18 / i) * 1 - 100);
//Caster<EFBFBD>s [ Max SP / (18 / Elemental Summon Skill Level) ]
//Caster's [ Max SP / (18 / Elemental Summon Skill Level) ]
ele.atk2 = sd->battle_status.max_sp / 18;
//Caster<EFBFBD>s HIT + (Caster<65>s Base Level )
//Caster's HIT + (Caster's Base Level)
ele.hit = sd->battle_status.hit + sd->status.base_level;
//[Elemental Summon Skill Level x (Caster<EFBFBD>s INT / 2 + Caster<65>s DEX / 4)]
//[Elemental Summon Skill Level x (Caster's INT / 2 + Caster's DEX / 4)]
ele.matk = i * (sd->battle_status.int_ / 2 + sd->battle_status.dex / 4);
//150 + [Caster<EFBFBD>s DEX / 10] + [Elemental Summon Skill Level x 3 ]
//150 + [Caster's DEX / 10] + [Elemental Summon Skill Level x 3 ]
ele.amotion = 150 + sd->battle_status.dex / 10 + i * 3;
//Caster<EFBFBD>s DEF + (Caster<65>s Base Level / (5 <20> Elemental Summon Skill Level)
//Caster's DEF + (Caster's Base Level / (5 - Elemental Summon Skill Level)
ele.def = sd->battle_status.def + sd->status.base_level / (5-i);
//Caster<EFBFBD>s MDEF + (Caster<65>s INT / (5 - Elemental Summon Skill Level)
//Caster's MDEF + (Caster's INT / (5 - Elemental Summon Skill Level)
ele.mdef = sd->battle_status.mdef + sd->battle_status.int_ / (5-i);
//Caster<EFBFBD>s FLEE + (Caster<65>s Base Level / (5 <20> Elemental Summon Skill Level)
//Caster's FLEE + (Caster's Base Level / (5 - Elemental Summon Skill Level)
ele.flee = sd->status.base_level / (5-i);
//Caster<EFBFBD>s HIT + (Caster<65>s Base Level )
//Caster's HIT + (Caster's Base Level)
ele.hit = sd->battle_status.hit + sd->status.base_level;
//per individual bonuses

View File

@ -1287,7 +1287,7 @@ int map_clearflooritem_timer(int tid, unsigned int tick, int id, intptr_t data)
}
/*
* clears a single bl item out of the bazooonga.
* clears a single bl item out of the map.
*/
void map_clearflooritem(struct block_list *bl) {
struct flooritem_data* fitem = (struct flooritem_data*)bl;

View File

@ -584,8 +584,7 @@ int pc_setnewpc(struct map_session_data *sd, int account_id, int char_id, int lo
return 0;
}
int pc_equippoint(struct map_session_data *sd,int n)
{
int pc_equippoint(struct map_session_data *sd,int n){
int ep = 0;
nullpo_ret(sd);
@ -4112,7 +4111,7 @@ int pc_isUseitem(struct map_session_data *sd,int n)
return 0; // You cannot use this item while sitting.
}
switch( nameid ) //@TODO, lot oh harcoded nameid here
switch( nameid ) //@TODO, lot of hardcoded nameid here
{
case 605: // Anodyne
if( map_flag_gvg(sd->bl.m) )
@ -4130,7 +4129,8 @@ int pc_isUseitem(struct map_session_data *sd,int n)
}
case 602: // ButterFly Wing
case 14527: // Dungeon Teleport Scroll
case 14581: // Dungeon Teleport Scroll
case 14581: // Dungeon Teleport Scroll 2
case 12352: // Dungeon Teleport Scroll 3
case 14582: // Yellow Butterfly Wing
case 14583: // Green Butterfly Wing
case 14584: // Red Butterfly Wing

View File

@ -114,6 +114,7 @@ void searchstore_query(struct map_session_data* sd, unsigned char type, unsigned
struct s_search_store_search s;
searchstore_searchall_t store_searchall;
time_t querytime;
DBMap *vending_db = vending_getdb();
if( !battle_config.feature_search_stores ) {
return;
@ -178,7 +179,6 @@ void searchstore_query(struct map_session_data* sd, unsigned char type, unsigned
s.card_count = card_count;
s.min_price = min_price;
s.max_price = max_price;
DBMap *vending_db = vending_getdb();
iter = db_iterator(vending_db);
for( pl_sd = dbi_first(iter); dbi_exists(iter); pl_sd = dbi_next(iter) ) {