summaryrefslogtreecommitdiff
path: root/src/map/trade.c
AgeCommit message (Collapse)AuthorFilesLines
2011-03-27* Added separate character state for vending (like for buyingstore), instead ↵ai4rei1-2/+2
of vender_id != 0 (follow up to r14682, related r14713). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14762 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-02-19* Implemented buying store system (aka. reverse vending, purchase shop) ↵ai4rei1-2/+2
together with related skill and items, without NPCs. - For SQL apply upgrade_svn14713_log.sql to upgrade tables `picklog` and `zenylog`; for TXT no action is necessary. - Requires 2010-04-20aRagexeRE or later and can be disabled in 'conf/battle/feature.conf'. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14713 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-01-01* Pending trade requests no longer prevent a character from trading someone ↵ai4rei1-1/+2
else instead (official). - This fixes trade window displaying wrong name when attempting to deal multiple characters (bugreport:344). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14645 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-12-07* Reverted r14563, due to multiple issues which render the source ↵ai4rei1-3/+3
malfunctioning or uncompilable. To be redone later (bugreport:4627). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14567 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-12-07Changed almost all instances of sprintf() to snprintf().Paradox924X1-3/+3
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14563 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-11-08Notify players involved in a trade that it has been canceled when one player ↵Paradox924X1-1/+5
changes maps/logs out or otherwise becomes unable to participate in the trade. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14452 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-08-19- Implemented usage of packets 0x7fa and 0x7f7, 0x7f8, 0x7f9. These are used ↵Skotlex1-2/+2
for proper deletion of items as well as movement/spawn packets for Renewal clients. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14383 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-06-13Changed a few sprintf's that had no format arguments to strcpy's.Paradox924X1-2/+2
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13887 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-11-16- Item Rental System.zephyrus1-0/+7
Script Usage: - rentitem <itemid>,<seconds>; - rentitem <itemname>,<seconds>; git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13370 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-26Merged the /loginmerge branch (topic:192754)ultramage1-2/+2
* the login server storage, ipban and logging systems have been abstracted and now provide a common interface; the rest has been merged into a single login server core (no more login/login_sql duplicity) * storage systems are now added via compiler options (WITH_SQL / WITH_TXT) * multiple storage engines can be compiled in at the same time, and the config option account.engine defines which one will be used. * due to MySQL autoincrement limitations, accounts with id '0' will not be supported; account IDs from this point on should start from '1'. * login_log() functions now again record IP addresses in dotted format, not as 4-byte integers (undo from r6868). * removed config options that defined column names in the login table * removed `memo` and `error message` columns from login db/savefile * moved `loginlog` table to the logs database * added sql files upgrade_svn12975.sql and upgrade_svn12975_log.sql * due to changes to the login table layout, I added an !optional! sql file (upgrade_svn12975_view.sql) that will provide a certain degree of backwards compatibility with existing software; read the instructions inside carefully! * moved third-party includes/libs to a separate directory * updated project files / makefiles Changed the way GM levels are handled * removed conf/gm_account.txt * added the gm level column to the txt savefile (after 'email' column) * gm level information is now transferred along with account data For open problems see bugreport:1889. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13000 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-07* Made script command 'flagemblem' and guild_emblem_change send an update of ↵FlavioJS1-0/+1
the emblem_id to the players in the area. - known bug: ui components that are displaying the emblem at the time (emblem in flag npc and emblem over head in gvg maps) are not updated, but putting the mouse over the target shows the new emblem * Modified script command 'guardian': - returns the id of the guardian - if guardian index isn't supplied, it generates a temporary guardian * Implemented support for temporary guardians (not saved with castle). * Added missing includes from r12520. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12525 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-07Removed the 'wait close' timer that closed a session's socket after 5 seconds.ultramage1-2/+2
This was causing random disconnects when logging in. (bugreport:1330) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12520 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-24Fixed a problem in the new trade window implementation (from r11830) where ↵ultramage1-6/+6
no trade acknowledgement messages would get sent (bugreport:1217). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12427 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-19- The last bug in Adoption system.zephyrus1-1/+6
- Fixed a bug on trade, if you received a trade without accept it do logout... the other player cannot trade anymore 'til restart. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12396 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-18- Added the official adoption method.zephyrus1-1/+1
( Parents need to create a party, invite a novice/first class, both equip the wedding rings and someone just right click the future baby ). - Fixed a bug sometimes client don't show job's bonus stats. - Removed the problematic adoption script. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12389 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-21- Fixed new guilds displaying online-connect member count at 0 rather than ↵skotlex1-3/+0
1, and the guild master not knowing it is one (eg: it cannot edit the guild notice of a newly created guild until relogging). - Fixed acc_reg2 parsing screwing up the char_id and subtracting 2 from it rather than passing it as it is. - Extended the auth_node/auth_db system in chrif.c to handle log in/out and mapserver-change procedures. This way players are not in the main dbs when they are not "active", which blocks potential invalid accesses to them. - Replaced states auth, waiting_disconnect and finalsave with active. - Cleaned some the party/guild login and creation procedures, removed the party_sent/guild_sent states. - Removed a redundant guild_check_member call which is beyond not-needed and into the realm of wasting resources. - clif_parse will no longer process packets from !sd->state.active players, this also makes checking for finalsave uneccessary (since players re already removed from the maps and dbs by this point, so you can't access them in any other way) - Separated the roles of unit_free and map_quit, the former will handle cleaning structures from the player so it can be free'd safely, while the latter performs additional routines which are unique to characters logging out normally (map-server changes will invoke unit_free and bypass map_quit). - Removed pc_isplaying, quit_db, map_knowsaccount, MAPIT_PCISPLAYING among other functions/defines which are no longer needed due to the new login scheme. - Cleand up a bit some code in the clif_send(_sub) functions. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12223 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-20Changed pc_can_give_items() to use standard boolean logic instead of the ↵ultramage1-1/+1
inverted 1/0 one (bugreport:396) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12220 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-26Moved distance-related functions to path.c/hultramage1-0/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11981 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-28* Reconstructed a list of all PACKETVER types, by reverse-engineering it ↵ultramage1-2/+2
from places in the code where the define is used - recovered PACKETVER 6 which was added in r51, but overwritten by r141, one of the dumbest commits that I have seen so far - since 6 was the 'new trade window' update, it and its corresponding reply packet will now be used from now on instead the old version git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11830 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-18Fixed numerous /W4 warnings (and created more :)ultramage1-2/+3
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11514 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-01* Fixed various trading/vending glitchesultramage1-59/+80
- fixed vending_tax not working at all (integer division in r10182) - undid change from r8273 where pc_getzeny() treated zeny overflow as an error condition; officially, the value is just bounded to MAX_ZENY - fixed stupid code that, instead of properly checking and filtering invalid items during shop setup, opted to 'hide' these items from the vending list instead... - removed some custom error message packets related to vending - fixed a glitch where the server would open a shop with no items when all entered items were tagged as invalid - split zeny handling from trade_tradeadditem() into a separate func (trade_tradeaddzeny()) - removed loads of redundant code from vending.c git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11344 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-08-19* Cleaned/clarified some #include relationships between headersultramage1-3/+4
* Changed clif_sitting() to use 'bl' instead of 'sd' (for non-player objects) * Removed way messed-up script function 'unitdeadsit' * Tagged 'FIXME' lines written by myself git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11040 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-05-19Reformatting @_@ultramage1-24/+24
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10581 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-05-05- imported the latest working grfio code from stableultramage1-1/+1
- re-added usage of managed allocation routines in grfio - eol-styled some new files - some cosmetic fixes here and there git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10468 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-24- NPC_MAGICALATTACK now starts a state similar to Sacrificial Ritual, in the ↵skotlex1-2/+2
sense that every normal attack afterwards becomes a Magical Attack. The skill duration is 15 secs. - Corrected some trade-cancel calls in trade_traderequest. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10346 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-11- Trade-requests now fail if the target is in a NPC.skotlex1-1/+7
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10214 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-03- SC_ENCHANTARMS will no longer fail to start if it's already running with a ↵skotlex1-0/+1
"higher elemental level". - When trying to trade an untradeable item, the add-item-fail packet will be sent so the client does not gets stuck. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10142 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-28- Added a check to prevent trades from being commited if either character is ↵skotlex1-1/+4
in final-save state. - Checked and cleaned up the online_check code in the char-server. Further connections to the char-server are rejected when the account already has a connection (previously this would happen only if there was already another character IN game, not just waiting on the char-select screen). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9934 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-23- Moved the homunculus setting from pet.conf to homunc.confskotlex1-1/+0
- Fixed homuncs not triggering land spells if they are spawned on top of them and hom_setting&0x2 is not set to make them bypass them. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9696 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-18- Fixed overflow on the mob delay adjustment setting.skotlex1-0/+4
- Fixed characters being unable to trade again if you attempt a trade on someone who is on storage/npc when you accept the trade. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9669 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-07Undid the memset->malloc_set replacementultramage1-3/+3
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9626 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-08- Now you can request a trade regardless of the state of the target trader.skotlex1-26/+45
- The trade will now fail when you accept it and either character is speaking with an npc, vending or has the storage open. - Cleaned up some the trade ack function, added proper replies to some fail cases. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9438 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-05- Massive EOL normalization & 'svn:eol-style native' flag setting for all ↵FlavioJS1-553/+553
txt/conf/h/c files. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9410 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-27- Some cleanups on the trade_additem function. When specifying a qty of 0, ↵skotlex1-5/+14
an ack will be returned to the client so it doesn't gets stuck. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9331 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-19- Cleaned up the log.c file.skotlex1-4/+4
- Splitted log_pick into log_pick_pc and log_pick_mob to avoid ugly type-casting. - Fixed log_chat not recording anything if the server is compiled in SQL mode and sql_logs is turned off (it should then record to a plain txt file) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9017 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-11- Cleaned up unitattack, unittalk and unitdeadsitskotlex1-9/+0
- Updated status_get_name to take into account fakename, also cleaned it up. - Cleaned up the char-server code when the last point of a player is not found. First it'll check if there's any mapserver online, and then, if there is, it'll look for the major cities. If this fails, then the player will be told server is closed instead of trying to send him to a "random map". git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8967 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-05- skill_blown will now trigger on-touch npcs on the landing tile.skotlex1-5/+6
- Max trade distance has been reduced from 5 to 2. - Undisguising will now resend the cart-contents. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8940 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-30- Rewrote the txt->sql converter. It now links directly to the char server ↵skotlex1-2/+4
files so that it should get auto-updated with any code changes in the later. - The converter will now also convert: account-wide variables, parties, guilds, guild storage and guild castles. At this point the only two things not converted are login-server-wide account variables (##, they belong to the login converter) and homunculus (the SQL save function is messy and doesn't lends itself to be integrated with the converter the way all the other functions are). - Modified the char servers so they are compatible with the converter, the define TXT_SQL_CONVERT identifies sections unique to each char-server mode (this would had been a hella lot easier if both char servers where the same code-base instead of duplicated code <.<) - Updated the Makefiles as per the new compiling requirements for the converter. - misceffect2 will no longer cause the effect on top of the source object when it is the fake npc. - Added check so that Frost Nova doesn't hides hitting animation on targets. - Added the missing brackets around the trade logs condition check, thanks to Coltaro. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8908 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-19- Made the report_Src function also report name of non-bl objects.skotlex1-2/+2
- The double continuation error will now display both scripts that triggered it. - Loading the storage from the char-server will fail if player is already tagged in final save state. - Removed setting ban_spoof_namer, sending invalid global-talk packets will now just kick the player out of the server. - Added BL_NPC support to status_get_name git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8812 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-27* Optional macro MEMSET_TURBO for faster low-level memory initializations.Lance1-7/+8
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8499 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-10- Should have fixed the login-sql crash when passed user-name's length is ↵skotlex1-1/+1
beyond the limit. - Removed setting mob_ghostring_fix - Changed setting attack_attr_none to affect all neutral-element attacks. Basicly, this setting is now used to determine who can hit for full damage always when using neutral-attacks (defaults to non-players) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8237 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-10- Fixed two instances in the login-sql server where the ip in the log-login ↵skotlex1-18/+14
table was being stored backwards. - Now when a skill's range is 0 and the skill is NOT casted on self, it will take the basic weapon's range (without Vulture/Snake Eye bonus). - Now when a duration is not specified, sc_start/sc_start2/sc_start4 will try to guess the duration by extracting it from the skill_db (it uses skill_get_time on whatever skill is associated to the status-change using val1 as skill-level) - Corrected that extra comma at the end of the Kaensin layout setup. - Some cleanups on trade_tradeaccept to prevent packets being resent when they shouldn't. - Corrected that ALLOW NULL thingie on main.sql git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8229 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-04- Enabled Mastery damage on Soul Breaker again, moved adv katar mastery out ↵skotlex1-2/+2
of the mastery function so that it may apply to all skills except Soul Breaker. - Changed name of the setting log_pick to log_filter since that's what it does now. - Modified enable_logs so that instead of a 0/1 setting, you can specify which kind of events to log (so you can use a combination), see log_athena for the bitmask configuration. - Cleaned a bit the contents of log_athena.conf git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8129 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-11- Coded @reset.skotlex1-2/+2
- Reenabled @changesex - Added function pet_create_egg which handles creating pet eggs correctly (when passed item id is indeed a valid petegg). Applied this on @createitem and getitem. - Cleaned up code of @item - Added define UNKNOWN_ITEM_ID (512 = apple) - Added IT_* enumation item_Types to identify said data from items. - Cleaned up the itemdb_isequip functions. itemdb_isequip will now return if the item is equipable by players, itemdb_isstackable returns if the item can be stacked, and itemdb_isidentified returns if the item should drop identified. - Added defines CARD0_PET/CARD0_FORGE/CARD0_CREATED to identify if a given item has "invalid" cards, added define function itemdb_isspecial to simplify this check. - Removed itemdb.c considering item ids above 20000 as invalid. - Cleaned up script commands getitem and card-counting related ones. - Cleaned up a bit more pc_isequip git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7613 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-06- Rewrote all the item restriction functions so that they will take into ↵skotlex1-5/+8
account slotted card restrictions as well. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7552 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-30- Removed the check to prevent equipped items from being traded as ↵skotlex1-3/+0
pc_delitem will take care of unequipping it on trade. - Added a missing abort when the arrow's script re-calls status_calc_pc git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7436 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-30- Added a check to prevent equipped items from being traded.skotlex1-0/+3
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7433 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-29- Made the map server send list of characters online to the char-server on ↵skotlex1-1/+1
reconnection regardless of "kick_on_disconnect" setting, as otherwise, a temporary disconnection would make the char-server tag all characters offline and refuse to save them afterwards. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7399 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-28- Added trade-range check on trade reply.skotlex1-1/+12
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7377 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-28- Cleaned up a bit the code for @itemskotlex1-2/+5
- Fixed character/storage being sent to be saved TWICE when you logged out while the storage is opened. - Added save_settings map config. Specifies after which events do characters get saved (defaults to all): 1 - Trade successful, 2 - Vending transaction, 4 - Closing storage/guild storage, 8 - hatching a pet. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7375 54d463be-8e91-2dee-dedb-b68131a5f0ec