Sanasol Posted August 24, 2013 Posted August 24, 2013 (edited) Source inserting shop info into database. Few source lines and a little bit of magic php + jsDecorated with new Twitter Bootstrap Remake of this http://www.eathena.ws/board/index.php?showtopic=255406 Installation /src/map/vending.c Function: vending_closevending After clif_closevendingboard(&sd->bl, 0); Add //vending to db [Sanasol] if( SQL_ERROR == Sql_Query(mmysql_handle,"delete from `vending` where `char_id`='%d'", sd->status.char_id) ) Sql_ShowDebug(mmysql_handle); //vending to db [Sanasol] Function: vending_purchasereq After // vending item pc_additem(sd, &vsd->status.cart[idx], amount, LOG_TYPE_VENDING); vsd->vending[vend_list[i]].amount -= amount; pc_cart_delitem(vsd, idx, amount, 0, LOG_TYPE_VENDING); clif_vendingreport(vsd, idx, amount); Add //vending to db [Sanasol] if(vsd->vending[vend_list[i]].amount >= 1) { if( SQL_ERROR == Sql_Query(mmysql_handle,"update `vending` set `amount`='%d' where `char_id`='%d' and `index`='%d'", vsd->vending[vend_list[i]].amount, vsd->status.char_id, vend_list[i]) ) Sql_ShowDebug(mmysql_handle); } else { if( SQL_ERROR == Sql_Query(mmysql_handle,"delete from `vending` where `char_id`='%d' and `index`='%d'", vsd->status.char_id, vend_list[i]) ) Sql_ShowDebug(mmysql_handle); } //vending to db [Sanasol] Function: vending_openvending After clif_openvending(sd,sd->bl.id,sd->vending); Add //vending to db [Sanasol] for( j = 0; j < count; j++ ) { int index = sd->vending[j].index; struct item_data* data = itemdb_search(sd->status.cart[index].nameid); int nameid = ( data->view_id > 0 ) ? data->view_id : sd->status.cart[index].nameid; int amount = sd->vending[j].amount; int price = cap_value(sd->vending[j].value, 0, (unsigned int)battle_config.vending_max_value); if( SQL_ERROR == Sql_Query(mmysql_handle,"INSERT INTO `vending` (`char_id`,`name`,`index`,`nameid`,`amount`,`price`,`refine`,`card0`,`card1`,`card2`,`card3`) VALUES (%d, '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')", sd->status.char_id, message, j, nameid, amount, price, sd->status.cart[index].refine, sd->status.cart[index].card[0], sd->status.cart[index].card[1], sd->status.cart[index].card[2], sd->status.cart[index].card[3]) ) Sql_ShowDebug(mmysql_handle); } //vending to db [Sanasol] /src/map/unit.c After case BL_PC: { struct map_session_data *sd = (struct map_session_data*)bl; if(sd->shadowform_id){ //if shadow target has leave the map struct block_list *d_bl = map_id2bl(sd->shadowform_id); if( d_bl ) status_change_end(d_bl,SC__SHADOWFORM,INVALID_TIMER); } //Leave/reject all invitations. if(sd->chatID) chat_leavechat(sd,0); if(sd->trade_partner) trade_tradecancel(sd); Add //vending to db [Sanasol] vending_closevending(sd); //vending to db [Sanasol] Create table CREATE TABLE IF NOT EXISTS `vending` ( `char_id` int(11) unsigned NOT NULL DEFAULT '0', `name` varchar(50) DEFAULT NULL, `index` tinyint(3) unsigned NOT NULL DEFAULT '0', `nameid` int(11) unsigned NOT NULL DEFAULT '0', `amount` int(11) unsigned NOT NULL DEFAULT '0', `price` bigint(20) unsigned NOT NULL DEFAULT '0', `refine` tinyint(3) unsigned NOT NULL DEFAULT '0', `card0` smallint(11) NOT NULL DEFAULT '0', `card1` smallint(11) NOT NULL DEFAULT '0', `card2` smallint(11) NOT NULL DEFAULT '0', `card3` smallint(11) NOT NULL DEFAULT '0', PRIMARY KEY (`char_id`,`index`), KEY `char_id` (`char_id`), KEY `nameid` (`nameid`) ) ENGINE=MyISAM; Screenshots Main page Map position tooltip For map showing need *.gat files Approximate position, accurate display at map could not to achieve And Search Item images very old, you need to add the new items FluxCP Screens [spoiler=Main Vending DB] [spoiler=Search] [spoiler=Map] Demo FluxCP Demo Sources Sources Sources FluxCP Addon Sources is absolutely free, but if you want you can do donation In attach web scripts with items images Edited April 17, 2014 by Sanasol 9 Quote
Elijah23 Posted August 24, 2013 Posted August 24, 2013 Thanks! Working man! Hope you release an addon or module that will be compatible with flux , thanks! Quote
Sanasol Posted August 25, 2013 Author Posted August 25, 2013 Thanks! Working man! Hope you release an addon or module that will be compatible with flux , thanks! your hopes was heard FluxCP addon ready https://github.com/S-anasol/sanasol/tree/master/merchant_db_flux Installation: move `vending` addon folder to `fluxcp-folder\addons` oh... forgot about update data in table Function: vending_purchasereq After // vending item pc_additem(sd, &vsd->status.cart[idx], amount, LOG_TYPE_VENDING); vsd->vending[vend_list[i]].amount -= amount; pc_cart_delitem(vsd, idx, amount, 0, LOG_TYPE_VENDING); clif_vendingreport(vsd, idx, amount); Add //vending to db [Sanasol] if(vsd->vending[vend_list[i]].amount >= 1) { if( SQL_ERROR == Sql_Query(mmysql_handle,"update `vending` set `amount`='%d' where `char_id`='%d' and `index`='%d'", vsd->vending[vend_list[i]].amount, vsd->status.char_id, vend_list[i]) ) Sql_ShowDebug(mmysql_handle); } else { if( SQL_ERROR == Sql_Query(mmysql_handle,"delete from `vending` where `char_id`='%d' and `index`='%d'", vsd->status.char_id, vend_list[i]) ) Sql_ShowDebug(mmysql_handle); } //vending to db [Sanasol] Quote
Brynner Posted August 25, 2013 Posted August 25, 2013 wow this is great. just like Xanatara Vending Addons but this is a free. Quote
Dramosith Posted August 25, 2013 Posted August 25, 2013 Sir how to fix this did you add sql ? CREATE TABLE IF NOT EXISTS `vending` (`char_id` int(11) unsigned NOT NULL DEFAULT '0', `name` varchar(50) DEFAULT NULL, `index` tinyint(3) unsigned NOT NULL DEFAULT '0', `nameid` int(11) unsigned NOT NULL DEFAULT '0', `amount` int(11) unsigned NOT NULL DEFAULT '0', `price` bigint(20) unsigned NOT NULL DEFAULT '0', `refine` tinyint(3) unsigned NOT NULL DEFAULT '0', `card0` smallint(11) NOT NULL DEFAULT '0', `card1` smallint(11) NOT NULL DEFAULT '0', `card2` smallint(11) NOT NULL DEFAULT '0', `card3` smallint(11) NOT NULL DEFAULT '0', PRIMARY KEY (`char_id`,`index`), KEY `char_id` (`char_id`), KEY `nameid` (`nameid`) ) ENGINE=MyISAM; Quote
Rosemount Posted August 25, 2013 Posted August 25, 2013 (edited) yep already add Edited August 25, 2013 by Rosemount Quote
ossi0110 Posted August 25, 2013 Posted August 25, 2013 (edited) Found a Bug When u Open a Shop with a Char he will display all in the Vending DB , but when you close the shop he dont remove the SQL entrys from DB , this will cause the Duplicate Error MSGs in the mapserver Edited August 25, 2013 by ossi0110 Quote
Sanasol Posted August 25, 2013 Author Posted August 25, 2013 Found a Bug When u Open a Shop with a Char he will display all in the Vending DB , but when you close the shop he dont remove the SQL entrys from DB , this will cause the Duplicate Error MSGs in the mapserver First part of code must delete after close shop. Did you add it? Function: vending_closevending After clif_closevendingboard(&sd->bl, 0); Add //vending to db [Sanasol] if( SQL_ERROR == Sql_Query(mmysql_handle,"delete from `vending` where `char_id`='%d'", sd->status.char_id) ) Sql_ShowDebug(mmysql_handle); //vending to db [Sanasol] Quote
ossi0110 Posted August 25, 2013 Posted August 25, 2013 (edited) yep i added it *========================================== * Close shop *------------------------------------------*/ void vending_closevending(struct map_session_data* sd) { nullpo_retv(sd); if( sd->state.vending ) { sd->state.vending = false; clif->closevendingboard(&sd->bl, 0); //vending to db [Sanasol ] if( SQL_ERROR == SQL->Query(mmysql_handle,"delete from `vending` where `char_id`='%d'", sd->status.char_id) ) Sql_ShowDebug(mmysql_handle); //vending to db [Sanasol] idb_remove(vending->db, sd->status.char_id); } } Edited August 25, 2013 by ossi0110 Quote
Sanasol Posted August 25, 2013 Author Posted August 25, 2013 map server something show when you close shop? Quote
ossi0110 Posted August 25, 2013 Posted August 25, 2013 (edited) yep here is error what he drops when im using a Shop, hes not clearing the SQL DB after closing a shop [SQL]: DB error - Duplicate entry '150000-0' for key 'PRIMARY' [Debug]: at vending.c:311 - INSERT INTO `vending` (`char_id`,`name`,`index`,`nameid`,`amount`,`price`,`refine`,`card0`,`card1`,`card2`,`card3`) VALUES (150000, 'sdsadasda', '0', '1101', '1', '100000', EDIT the problem only happens when using AUTOTRADE , then de dont remove the SQL entrys when u log back in How to Reproduce: 1= Open a shop and use @autotrade 2= log the char back ingamge 3= Open a shop and use @autotrade 4= you will have now a Error in map serveer Edited August 25, 2013 by ossi0110 1 Quote
Sanasol Posted August 25, 2013 Author Posted August 25, 2013 when i test it work fine with autotrade wait, i will test on last rA rev. yes on rAthena this bug My emulator delete normally. Fixed! /src/map/unit.c After case BL_PC: { struct map_session_data *sd = (struct map_session_data*)bl; if(sd->shadowform_id){ //if shadow target has leave the map struct block_list *d_bl = map_id2bl(sd->shadowform_id); if( d_bl ) status_change_end(d_bl,SC__SHADOWFORM,INVALID_TIMER); } //Leave/reject all invitations. if(sd->chatID) chat_leavechat(sd,0); if(sd->trade_partner) trade_tradecancel(sd); Add //vending to db [Sanasol] vending_closevending(sd); //vending to db [Sanasol] Quote
ossi0110 Posted August 25, 2013 Posted August 25, 2013 ok works now , is it possibel to use the GAT system with the map in with the Flux Addon too? Quote
Sanasol Posted August 25, 2013 Author Posted August 25, 2013 (edited) ok works now , is it possibel to use the GAT system with the map in with the Flux Addon too? possible https://github.com/S-anasol/sanasol/commit/d427a3eb2fbe02278cdff4804dfa7629c83e5851 Edited August 25, 2013 by Sanasol Quote
Elijah23 Posted August 26, 2013 Posted August 26, 2013 Thanks! Working man! Hope you release an addon or module that will be compatible with flux , thanks! your hopes was heard FluxCP addon ready https://github.com/S-anasol/sanasol/tree/master/merchant_db_flux Installation: move `vending` addon folder to `fluxcp-folder\addons` oh... forgot about update data in table Function: vending_purchasereq After // vending item pc_additem(sd, &vsd->status.cart[idx], amount, LOG_TYPE_VENDING); vsd->vending[vend_list[i]].amount -= amount; pc_cart_delitem(vsd, idx, amount, 0, LOG_TYPE_VENDING); clif_vendingreport(vsd, idx, amount); Add //vending to db [Sanasol] if(vsd->vending[vend_list[i]].amount >= 1) { if( SQL_ERROR == Sql_Query(mmysql_handle,"update `vending` set `amount`='%d' where `char_id`='%d' and `index`='%d'", vsd->vending[vend_list[i]].amount, vsd->status.char_id, vend_list[i]) ) Sql_ShowDebug(mmysql_handle); } else { if( SQL_ERROR == Sql_Query(mmysql_handle,"delete from `vending` where `char_id`='%d' and `index`='%d'", vsd->status.char_id, vend_list[i]) ) Sql_ShowDebug(mmysql_handle); } //vending to db [Sanasol] Thanks for this! Can't download it, error: git did not exit cleanly (exit code 128) Quote
Sanasol Posted August 26, 2013 Author Posted August 26, 2013 Thanks for this! Can't download it, error: git did not exit cleanly (exit code 128)Problem with you account and probably ssh keys. Google it Quote
HristDead Posted August 26, 2013 Posted August 26, 2013 I'm getting a blank page when I go to the www ----.com/merchbase I've followed all the steps though. Any idea? Quote
HristDead Posted August 26, 2013 Posted August 26, 2013 (edited) ah found... [26-Aug-2013 03:25:45 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:25:45 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:27:10 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:27:10 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:29:23 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:29:23 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:29:25 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:29:25 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:29:27 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:29:27 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:29:31 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:29:31 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:32:21 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:32:21 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:32:31 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:32:31 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:32:39 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:32:39 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:34:34 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:34:34 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:35:54 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:35:54 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:37:11 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/vending/config.php on line 8 [26-Aug-2013 03:37:11 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/vending/config.php on line 8 [26-Aug-2013 03:37:40 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/vending/config.php on line 8 [26-Aug-2013 03:37:40 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/vending/config.php on line 8 [26-Aug-2013 03:47:17 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/vending/config.php on line 8 [26-Aug-2013 03:47:17 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/vending/config.php on line 8 [26-Aug-2013 03:51:27 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:51:27 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:51:31 America/Los_Angeles] PHP Warning: require(/home/server/public_html/merch/class.db.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/server/public_html/merchant_db/config.php on line 8 [26-Aug-2013 03:51:31 America/Los_Angeles] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required '/home/server/public_html/merch/class.db.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/server/public_html/merchant_db/config.php on line 8 Edited August 26, 2013 by HristDead Quote
Sanasol Posted August 26, 2013 Author Posted August 26, 2013 (edited) Fix for named item Fix require pathsFix refine array Commit: https://github.com/S-anasol/sanasol/commit/d14166acda05f31e9b8460f824882523b64a91cf@HristDead, update and try Edited August 26, 2013 by Sanasol Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.