Jump to content

Sanasol

Members
  • Content Count

    43
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Sanasol


  1.  

     

     

    if someone can reach him and see if he still got interest on this project, would be awesome! try:

     

     

    rathena implemented their own src vending db(also web part they should do or already did dont know), my mod is not actual anymore :)

     

    we also implemented vending db for autotrade consistency, that is why we wanted you :P also we like yours better xD

     

    link to commit


  2. Compiling plugin wihtout errors/warnings

    but when server start it can't load plugin (failed to load skipping)

     

    /* run when server is ready (online) */HPExport void server_online (void) {	vending = GET_SYMBOL("vending");	vending->purchase = myplugin_purchasereq;	do_init_myplugin();}

     

    Without overloading plugin load normally

     

    try to put overloading into plugin_init, and again "failed to load skipping"

     

     

    HPExport void plugin_init (void) {	StrBuf = GET_SYMBOL("StrBuf");	SQL = GET_SYMBOL("SQL");	map = GET_SYMBOL("map");	iMap = GET_SYMBOL("iMap");	mapit = GET_SYMBOL("mapit");	iTimer = GET_SYMBOL("iTimer");        vending = GET_SYMBOL("vending");	    vending->purchase = myplugin_purchasereq;}

     

    Server under Ubuntu Server 13.04


  3. Oops typo ;)

     

     

    Notice: Undefined offset: 0 in C:Xampphtdocshervendorconfig.php on line 21Notice: Trying to get property of non-object in C:Xampphtdocshervendorconfig.php on line 21Notice: Undefined offset: 0 in C:Xampphtdocshervendorconfig.php on line 22Notice: Trying to get property of non-object in C:Xampphtdocshervendorconfig.php on line 22 

     

     

    That means "item"(card id from slot) not found, need add some check


  4. Source inserting shop info into database.
    Few source lines and a little bit of magic php + js
    Decorated with new Twitter Bootstrap
     
    Remake of this http://www.eathena.ws/board/index.php?showtopic=255406  /oops 
     
    Installation


     

    diff --git a/src/map/unit.c b/src/map/unit.cindex 22c7165..9b0aa6a 100644--- a/src/map/unit.c+++ b/src/map/unit.c@@ -2135,6 +2135,9 @@ int unit_remove_map_(struct block_list *bl, clr_type clrtype, const char* file, 				chat->leavechat(sd,0); 			if(sd->trade_partner) 				trade->cancel(sd);+			//vending to db [Sanasol]+            vending->close(sd);+            //vending to db [Sanasol] 			buyingstore->close(sd); 			searchstore->close(sd); 			if(sd->state.storage_flag == 1)diff --git a/src/map/vending.c b/src/map/vending.cindex 2784d46..0f213a2 100644--- a/src/map/vending.c+++ b/src/map/vending.c@@ -37,6 +37,10 @@ void vending_closevending(struct map_session_data* 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); 	} }@@ -174,7 +178,18 @@ void vending_purchasereq(struct map_session_data* sd, int aid, unsigned int uid, 		vsd->vending[vend_list[i]].amount -= amount; 		pc->cart_delitem(vsd, idx, amount, 0, LOG_TYPE_VENDING); 		clif->vendingreport(vsd, idx, amount);-+		//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] 		//print buyer's name 		if( battle_config.buyer_name ) { 			char temp[256];@@ -281,6 +296,19 @@ void vending_openvending(struct map_session_data* sd, const char* message, const 	safestrncpy(sd->message, message, MESSAGE_SIZE);  	clif->openvending(sd,sd->bl.id,sd->vending);+	 //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] 	clif->showvendingboard(&sd->bl,message,0); 	 	idb_put(vending->db, sd->vender_id, sd);

     


    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

    69e9a99f1f02c192e3e2cef9562b.png

     

     

    Map position tooltip

    84c4ecf6c00cc0f01c182bdff472.png

    For map showing need *.gat files

    Approximate position, accurate display at map could not to achieve :(

     

    And Search

    1fb870736fd032484e2452df9f50.png

     

     

    Item images very old, you need to add the new items

     

     

    FluxCP Screens

    e56669e30bf1f420c9484f948e1d.pngd21beacb490bc2f4415285fee024.png399cb907803a06ce3e009b5f97d5.png


     
    Demo
    FluxCP Demo
     
    Sources

    github.png

     

     

    My src versions: Hercules SRC Patch + web Standalone or FluxCP

     

    Yommy src versions: Standalone or FluxCP

     

    [NEW 04.20.14Hercules src version: FluxCP

     

    Sources is absolutely free, but if you want you can do donation

    ba074bc683178eb863ef108f820a.png

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.