• 0
dolphincute

Request [ No Vending On Selected Map ]

Question

Hello guys, im not sure if these question falls either source modification or here, if your a mod please move it to proper section, thanks

Back to topic as title i want to disable vending to the whole entire map, and only 1 map are able for player to vend, i did some search, but somehow it claim that all i need is to edit,

rathena/conf/mapflag/novending.txt ?? but it seems that my rathena folder dont even have that file, 

 

Please and thank you for your time 

98tt0iw.jpg.d44475146708e31a26e116fc37030f40.jpg

Share this post


Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Hello Dolphin!

You need to apply the novending mapflag on the maps you don't wanna vending.

To do that, you need to make a Script like this:

mapname<tab>mapflag<tab>novending

For example:

prontera<tab>mapflag<tab>novending

And people will not be able to use Vending Skill on Prontera anymore.

There's no default novending.txt by default on rAthena repositories, but you can create a novending.txt to manage easily the mapflags. You can see other mapflags examples on yourmainfolder/npc/mapflag/, and you'll undestand how you can manage it.

If you want to block Vending on all maps except one, that's probably better make a Source Code Modification on src/map/skill.cpp. I can't help you on that way, but you can use the Source Support Area on forums and people will Hopefully help you, rAthena support rocks 😉 

Edited by Tanlor

Share this post


Link to post
Share on other sites
  • 0
1 hour ago, Tanlor said:

If you want to block Vending on all maps except one, that's probably better make a Source Code Modification on src/map/skill.cpp. I can't help you on that way, but you can use the Source Support Area on forums and people will Hopefully help you, rAthena support rocks 😉 

just do a macro with notepad++ on the map_index.txt
https://annieruru.blogspot.com/2019/01/run-macro-in-notepad.html

 

-	script	novending	FAKE_NPC,{
OnInit:
	freeloop true;
	setarray [email protected]$, "alb_ship","alb2trea","alberta","alberta_in","alde_dun01","alde_dun02","alde_dun03","alde_dun04","aldeba_in","aldebaran","anthell01","anthell02","arena_room","c_tower1","c_tower2","c_tower3","c_tower4","force_1-1","force_1-2","force_1-3","force_2-1","force_2-2","force_2-3","force_3-1","force_3-2","force_3-3","gef_dun00","gef_dun01","gef_dun02","gef_dun03","gef_fild00","gef_fild01","gef_fild02","gef_fild03","gef_fild04","gef_fild05","gef_fild06","gef_fild07","gef_fild08","gef_fild09","gef_fild10","gef_fild11","gef_fild12","gef_fild13","gef_fild14","gef_tower","geffen","geffen_in","gl_cas01","gl_cas02","gl_church","gl_chyard","gl_dun01","gl_dun02","gl_in01","gl_knt01","gl_knt02","gl_prison","gl_prison1","gl_sew01","gl_sew02","gl_sew03","gl_sew04","gl_step","glast_01","hunter_1-1","hunter_2-1","hunter_3-1","in_hunter","in_moc_16","in_orcs01","in_sphinx1","in_sphinx2","in_sphinx3","in_sphinx4","in_sphinx5","iz_dun00","iz_dun01","iz_dun02","iz_dun03","iz_dun04","job_sword1","izlu2dun","izlude","izlude_in","job_thief1","knight_1-1","knight_2-1","knight_3-1","mjo_dun01","mjo_dun02","mjo_dun03","mjolnir_01","mjolnir_02","mjolnir_03","mjolnir_04","mjolnir_05","mjolnir_06","mjolnir_07","mjolnir_08","mjolnir_09","mjolnir_10","mjolnir_11","mjolnir_12","moc_castle","moc_fild01","moc_fild02","moc_fild03","moc_fild04","moc_fild05","moc_fild06","moc_fild07","moc_fild08","moc_fild09","moc_fild10","moc_fild11","moc_fild12","moc_fild13","moc_fild14","moc_fild15","moc_fild16","moc_fild17","moc_fild18","moc_fild19","moc_pryd01","moc_pryd02","moc_pryd03","moc_pryd04","moc_pryd05","moc_pryd06","moc_prydb1","moc_ruins","monk_in","morocc","morocc_in","new_1-1","new_1-2","new_1-3","new_1-4","new_2-1","new_2-2","new_2-3","new_2-4","new_3-1","new_3-2","new_3-3","new_3-4","new_4-1","new_4-2","new_4-3","new_4-4","new_5-1","new_5-2","new_5-3","new_5-4","orcsdun01","orcsdun02","ordeal_1-1","ordeal_1-2","ordeal_2-1","ordeal_2-2","ordeal_3-1","ordeal_3-2","pay_arche","pay_dun00","pay_dun01","pay_dun02","pay_dun03","pay_dun04","pay_fild01","pay_fild02","pay_fild03","pay_fild04","pay_fild05","pay_fild06","pay_fild07","pay_fild08","pay_fild09","pay_fild10","pay_fild11","payon","payon_in01","payon_in02","priest_1-1","priest_2-1","priest_3-1","prontera","prt_are_in","prt_are01","pvp_room","prt_castle","prt_church","prt_fild00","prt_fild01","prt_fild02","prt_fild03","prt_fild04","prt_fild05","prt_fild06","prt_fild07","prt_fild08","prt_fild09","prt_fild10","prt_fild11","prt_in","prt_maze01","prt_maze02","prt_maze03","prt_monk","prt_sewb1","prt_sewb2","prt_sewb3","prt_sewb4","pvp_2vs2","pvp_c_room","pvp_n_1-1","pvp_n_1-2","pvp_n_1-3","pvp_n_1-4","pvp_n_1-5","pvp_n_2-1","pvp_n_2-2","pvp_n_2-3","pvp_n_2-4","pvp_n_2-5","pvp_n_3-1","pvp_n_3-2","pvp_n_3-3","pvp_n_3-4","pvp_n_3-5","pvp_n_4-1","pvp_n_4-2","pvp_n_4-3","pvp_n_4-4","pvp_n_4-5","pvp_n_5-1","pvp_n_5-2","pvp_n_5-3","pvp_n_5-4","pvp_n_5-5","pvp_n_6-1","pvp_n_6-2","pvp_n_6-3","pvp_n_6-4","pvp_n_6-5","pvp_n_7-1","pvp_n_7-2","pvp_n_7-3","pvp_n_7-4","pvp_n_7-5","pvp_n_8-1","pvp_n_8-2","pvp_n_8-3","pvp_n_8-4","pvp_n_8-5","pvp_n_room","pvp_y_1-1","pvp_y_1-2","pvp_y_1-3","pvp_y_1-4","pvp_y_1-5","pvp_y_2-1","pvp_y_2-2","pvp_y_2-3","pvp_y_2-4","pvp_y_2-5","pvp_y_3-1","pvp_y_3-2","pvp_y_3-3","pvp_y_3-4","pvp_y_3-5","pvp_y_4-1","pvp_y_4-2","pvp_y_4-3","pvp_y_4-4","pvp_y_4-5","pvp_y_5-1","pvp_y_5-2","pvp_y_5-3","pvp_y_5-4","pvp_y_5-5","pvp_y_6-1","pvp_y_6-2","pvp_y_6-3","pvp_y_6-4","pvp_y_6-5","pvp_y_7-1","pvp_y_7-2","pvp_y_7-3","pvp_y_7-4","pvp_y_7-5","pvp_y_8-1","pvp_y_8-2","pvp_y_8-3","pvp_y_8-4","pvp_y_8-5","pvp_y_room","sword_1-1","sword_2-1","sword_3-1","treasure01","treasure02","wizard_1-1","wizard_2-1","wizard_3-1","xmas","xmas_dun01","xmas_dun02","xmas_fild01","xmas_in","beach_dun","beach_dun2","beach_dun3","cmd_fild01","cmd_fild02","cmd_fild03","cmd_fild04","cmd_fild05","cmd_fild06","cmd_fild07","cmd_fild08","cmd_fild09","cmd_in01","cmd_in02","comodo","quiz_00","quiz_01","g_room1-1","g_room1-2","g_room1-3","g_room2","tur_dun01","tur_dun02","tur_dun03","tur_dun04","tur_dun05","tur_dun06","alde_gld","aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05","gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05","gld_dun01","gld_dun02","gld_dun03","gld_dun04","guild_room","guild_vs1","guild_vs2","guild_vs3","guild_vs4","guild_vs5","guild_vs1-1","guild_vs1-2","guild_vs1-3","guild_vs1-4","guild_vs2-1","guild_vs2-2","job_hunte","job_knt","job_prist","job_wiz","pay_gld","payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05","prt_gld","prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05","alde_alche","in_rogue","job_cru","job_duncer","job_monk","job_sage","mag_dun01","mag_dun02","monk_test","quiz_test","yuno","yuno_fild01","yuno_fild02","yuno_fild03","yuno_fild04","yuno_in01","yuno_in02","yuno_in03","yuno_in04","yuno_in05","ama_dun01","ama_dun02","ama_dun03","ama_fild01","ama_in01","ama_in02","ama_test","amatsu","gon_dun01","gon_dun02","gon_dun03","gon_fild01","gon_in","gon_test","gonryun","sec_in01","sec_in02","sec_pri","umbala","um_dun01","um_dun02","um_fild01","um_fild02","um_fild03","um_fild04","um_in","niflheim","nif_fild01","nif_fild02","nif_in","yggdrasil01","valkyrie","himinn","lou_in01","lou_in02","lou_dun03","lou_dun02","lou_dun01","lou_fild01","louyang","siege_test","n_castle","nguild_gef","nguild_prt","nguild_pay","nguild_alde","jawaii","jawaii_in","gefenia01","gefenia02","gefenia03","gefenia04","new_zone01","new_zone02","new_zone03","new_zone04","payon_in03","ayothaya","ayo_in01","ayo_in02","ayo_fild01","ayo_fild02","ayo_dun01","ayo_dun02","que_god01","que_god02","yuno_fild05","yuno_fild07","yuno_fild08","yuno_fild09","yuno_fild11","yuno_fild12","alde_tt02","turbo_n_1","turbo_n_4","turbo_n_8","turbo_n_16","turbo_e_4","turbo_e_8","turbo_e_16","turbo_room","airplane","airport","einbech","einbroch","ein_dun01","ein_dun02","ein_fild06","ein_fild07","ein_fild08","ein_fild09","ein_fild10","ein_in01","que_sign01","que_sign02","ein_fild03","ein_fild04","lhz_fild02","lhz_fild03","yuno_pre","lhz_fild01","lighthalzen","lhz_in01","lhz_in02","lhz_in03","lhz_que01","lhz_dun01","lhz_dun02","lhz_dun03","lhz_cube","juperos_01","juperos_02","jupe_area1","jupe_area2","jupe_core","jupe_ele","jupe_ele_r","jupe_gate","y_airport","lhz_airport","airplane_01","jupe_cave","quiz_02","hu_fild07","hu_fild05","hu_fild04","hu_fild01","yuno_fild06","job_soul","job_star","que_job01","que_job02","que_job03","abyss_01","abyss_02","abyss_03","thana_step","thana_boss","tha_scene01","tha_t01","tha_t02","tha_t03","tha_t04","tha_t07","tha_t05","tha_t06","tha_t08","tha_t09","tha_t10","tha_t11","tha_t12","auction_01","auction_02","hugel","hu_in01","que_bingo","que_hugel","p_track01","p_track02","odin_tem01","odin_tem02","odin_tem03","hu_fild02","hu_fild03","hu_fild06","ein_fild01","ein_fild02","ein_fild05","yuno_fild10","kh_kiehl02","kh_kiehl01","kh_dun02","kh_dun01","kh_mansion","kh_rossi","kh_school","kh_vila","force_map1","force_map2","force_map3","job_hunter","job_knight","job_priest","job_wizard","ve_in02","rachel","ra_in01","ra_fild01","ra_fild02","ra_fild03","ra_fild04","ra_fild05","ra_fild06","ra_fild07","ra_fild08","ra_fild09","ra_fild10","ra_fild11","ra_fild12","ra_fild13","ra_san01","ra_san02","ra_san03","ra_san04","ra_san05","ra_temin","ra_temple","ra_temsky","que_rachel","ice_dun01","ice_dun02","ice_dun03","ice_dun04","que_thor","thor_camp","thor_v01","thor_v02","thor_v03","veins","ve_in","ve_fild01","ve_fild02","ve_fild03","ve_fild04","ve_fild05","ve_fild06","ve_fild07","poring_c01","poring_c02","que_ng","nameless_i","nameless_n","nameless_in","abbey01","abbey02","abbey03","poring_w01","poring_w02","que_san04","moscovia","mosk_in","mosk_ship","mosk_fild01","mosk_fild02","mosk_dun01","mosk_dun02","mosk_dun03","mosk_que","force_4-1","force_5-1","06guild_r","06guild_01","06guild_02","06guild_03","06guild_04","06guild_05","06guild_06","06guild_07","06guild_08","z_agit","que_temsky","itemmall","bossnia_01","bossnia_02","bossnia_03","bossnia_04","schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05","sch_gld","cave","moc_fild20","moc_fild21","moc_fild22","que_ba","que_moc_16","que_moon","arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05","aru_gld","bat_room","bat_a01","bat_a02","bat_b01","bat_b02","que_qsch01","que_qsch02","que_qsch03","que_qsch04","que_qsch05","que_qaru01","que_qaru02","que_qaru03","que_qaru04","que_qaru05","[email protected]","[email protected]","e_tower","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","mid_camp","mid_campin","man_fild01","man_fild03","spl_fild02","spl_fild03","moc_fild22b","que_dan01","que_dan02","schg_que01","schg_dun01","arug_que01","arug_dun01","[email protected]","[email protected]","[email protected]","[email protected]","nyd_dun01","nyd_dun02","manuk","man_fild02","man_in01","splendide","spl_fild01","spl_in01","spl_in02","bat_c01","bat_c02","bat_c03","moc_para01","job3_arch01","job3_arch02","job3_arch03","job3_guil01","job3_guil02","job3_guil03","job3_rang01","job3_rang02","job3_rune01","job3_rune02","job3_rune03","job3_war01","job3_war02","jupe_core2","brasilis","bra_in01","bra_fild01","bra_dun01","bra_dun02","dicastes01","dicastes02","dic_in01","dic_fild01","dic_fild02","dic_dun01","dic_dun02","job3_gen01","s_atelier","job3_sha01","mora","bif_fild01","bif_fild02","[email protected]","dewata","dew_in01","dew_fild01","dew_dun01","dew_dun02","que_house_s","malangdo","mal_in01","mal_in02","mal_dun01","[email protected]","[email protected]","[email protected]","iz_dun05","evt_mobroom","alde_tt03","dic_dun03","[email protected]","lhz_dun04","que_lhz","evt_swar_b","evt_swar_r","evt_swar_s","evt_swar_t","gld2_ald","gld2_gef","gld2_pay","gld2_prt","gld_dun01_2","gld_dun02_2","gld_dun03_2","gld_dun04_2","malaya","job_ko","ma_scene01","[email protected]_b","[email protected]_c","[email protected]_h","ma_in01","ma_dun01","ma_fild01","ma_fild02","ma_zif01","ma_zif02","ma_zif03","ma_zif04","ma_zif05","ma_zif06","ma_zif07","ma_zif08","ma_zif09","new_event","eclage","ecl_fild01","ecl_tdun01","ecl_tdun02","ecl_tdun03","ecl_tdun04","que_avan01","[email protected]","ecl_in01","ecl_in02","ecl_in03","ecl_in04","ecl_hub01","moc_prydn1","moc_prydn2","iz_ac01","iz_ac02","treasure_n1","treasure_n2","iz_int","iz_ng01","iz_int01","iz_int02","iz_int03","iz_int04","iz_ac01_a","iz_ac02_a","iz_ac01_b","iz_ac02_b","iz_ac01_c","iz_ac02_c","iz_ac01_d","iz_ac02_d","te_prtcas01","te_prtcas02","te_prtcas03","te_prtcas04","te_prtcas05","te_aldecas1","te_aldecas2","te_aldecas3","te_aldecas4","te_aldecas5","prt_fild08a","prt_fild08b","prt_fild08c","prt_fild08d","izlude_a","izlude_b","izlude_c","izlude_d","te_prt_gld","te_alde_gld","teg_dun01","teg_dun02","[email protected]_k","[email protected]_k","gl_chyard_","gl_cas02_","evt_bomb","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]_in","dali","dali02","[email protected]_st","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]_d","moro_cav","moro_vol","silk_lair","c_tower2_","c_tower3_","[email protected]","ver_eju","ver_tunn","verus03","verus04","job_gun","[email protected]","[email protected]","[email protected]","lhz_dun_n","lhz_d_n2","[email protected]_kh","[email protected]_kh","[email protected]","[email protected]","un_bk_q","un_bunker","un_myst","verus01","verus02","paramk","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","prt_cas","prt_cas_q","prt_prison","prt_lib","prt_lib_q","prt_q","prt_pri00","int_land","int_land01","int_land02","int_land03","int_land04","lasagna","lasa_fild01","lasa_fild02","lasa_dun01","lasa_dun02","lasa_dun03","conch_in","lasa_in01","lasa_dun_q","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","que_swat","slabw01","rebel_in","[email protected]_gef","[email protected]_pay","har_in01","harboro1","harboro2","rockmi1","rockmi2","rockrdg1","rockrdg2","[email protected]_k2","[email protected]_k2","[email protected]_d2","pay_d03_i","gef_d01_i","ice_d03_i","[email protected]","[email protected]","tur_d03_i","tur_d04_i","[email protected]","ordeal_a00","ordeal_a02","pprontera","niflxmas","sch_lab","nakhyang","lasa_sea","[email protected]","x_lhz","x_prt","x_ra","prt_evt_in","vis_h01","vis_h02","vis_h03","vis_h04","ein_d02_i","com_d02_i","[email protected]","star_frst","star_in","2009rwc_01","2009rwc_02","2009rwc_03","2009rwc_04","2009rwc_05","2009rwc_06","2009rwc_07","2009rwc_08","2009rwc_f01","2012rwc_01","2012rwc_02","2012rwc_03","2012rwc_04","2012rwc_05","2012rwc_06","2012rwc_07","2012rwc_08";
	[email protected] = getarraysize(.map$);
	for ( [email protected] = 0; [email protected] < [email protected]; [email protected] )
		setmapflag [email protected]$[[email protected]], mf_novending;
	end;
}

take me less than 10 minutes

 

EDIT: no idea why change .map$ into [email protected]$ fix the error ... hmm ... something wrong with rathena

Edited by AnnieRuru
  • Love 1

Share this post


Link to post
Share on other sites
  • 0

@AnnieRuru always with the best answer lol 🤩

Share this post


Link to post
Share on other sites
  • 0
if( map_getmapflag(sd->bl.m, MF_NOVENDING) ) 
if( map_getcell(sd->bl.m,sd->bl.x,sd->bl.y,CELL_CHKNOVENDING) )

to

if( !map_getmapflag(sd->bl.m, MF_NOVENDING) ) 
if( !map_getcell(sd->bl.m,sd->bl.x,sd->bl.y,CELL_CHKNOVENDING) )


Line 754 Skill.cpp.. just a reverse. Any map that has NOVENDING mapflag will allow players to vend there. lol

  • Love 1

Share this post


Link to post
Share on other sites
  • 0

Thank you guys, i will try both options and see which is better.

again thank you, i will post later after done several testing

Share this post


Link to post
Share on other sites
  • 0
On 1/29/2019 at 5:43 AM, Haruka Mayumi said:
if( map_getmapflag(sd->bl.m, MF_NOVENDING) ) 
if( map_getcell(sd->bl.m,sd->bl.x,sd->bl.y,CELL_CHKNOVENDING) )

to

if( !map_getmapflag(sd->bl.m, MF_NOVENDING) ) 
if( !map_getcell(sd->bl.m,sd->bl.x,sd->bl.y,CELL_CHKNOVENDING) )


Line 754 Skill.cpp.. just a reverse. Any map that has NOVENDING mapflag will allow players to vend there. lol

LMAO !! I love people think outside the box

 src/map/clif.cpp  | 4 ++--
 src/map/skill.cpp | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/map/clif.cpp b/src/map/clif.cpp
index e1cc9b555..fae1e15da 100644
--- a/src/map/clif.cpp
+++ b/src/map/clif.cpp
@@ -13398,11 +13398,11 @@ void clif_parse_OpenVending(int fd, struct map_session_data* sd){
 
 	if( sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOROOM )
 		return;
-	if( map_getmapflag(sd->bl.m, MF_NOVENDING) ) {
+	if( !map_getmapflag(sd->bl.m, MF_NOVENDING) ) {
 		clif_displaymessage (sd->fd, msg_txt(sd,276)); // "You can't open a shop on this map"
 		return;
 	}
-	if( map_getcell(sd->bl.m,sd->bl.x,sd->bl.y,CELL_CHKNOVENDING) ) {
+	if( !map_getcell(sd->bl.m,sd->bl.x,sd->bl.y,CELL_CHKNOVENDING) ) {
 		clif_displaymessage (sd->fd, msg_txt(sd,204)); // "You can't open a shop on this cell."
 		return;
 	}
diff --git a/src/map/skill.cpp b/src/map/skill.cpp
index e5cd8c61d..77ae11e5e 100755
--- a/src/map/skill.cpp
+++ b/src/map/skill.cpp
@@ -746,12 +746,12 @@ bool skill_isNotOk(uint16 skill_id, struct map_session_data *sd)
 			break;
 		case MC_VENDING:
 		case ALL_BUYING_STORE:
-			if( map_getmapflag(sd->bl.m, MF_NOVENDING) ) {
+			if( !map_getmapflag(sd->bl.m, MF_NOVENDING) ) {
 				clif_displaymessage (sd->fd, msg_txt(sd,276)); // "You can't open a shop on this map"
 				clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
 				return true;
 			}
-			if( map_getcell(sd->bl.m,sd->bl.x,sd->bl.y,CELL_CHKNOVENDING) ) {
+			if( !map_getcell(sd->bl.m,sd->bl.x,sd->bl.y,CELL_CHKNOVENDING) ) {
 				clif_displaymessage (sd->fd, msg_txt(sd,204)); // "You can't open a shop on this cell."
 				clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
 				return true;
-	script	fdsdf	FAKE_NPC,{
OnInit:
	setmapflag "prontera", mf_novending, true;
	setcell "prontera",0,0,500,500, cell_novending, true;
	end;
}

yeah this actually works !

Edited by AnnieRuru

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...