Jump to content

Bringer

Members
  • Posts

    746
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Bringer

  1. 4 hours ago, Jade said:

    I've tried this script but it always says "Nobody is selling it now."

    https://rathena.org/board/topic/65605-whosell/

     

    then now i have this script running..

    
    ACMD_FUNC(whosell)
    {
    	struct map_session_data *pl_sd, *b_sd[MAX_SEARCH];
    	struct s_mapiterator* iter;
    
    	struct item_data *item_array[MAX_SEARCH];
    	int total[MAX_SEARCH], amount[MAX_SEARCH];
    	unsigned int MinPrice[MAX_SEARCH], MaxPrice[MAX_SEARCH];
    	char output[256];
    	int i, j, count = 1;
    
    	if( !message || !*message )
    	{
    		clif_displaymessage(fd, "Please, enter Item name or its ID (usage: @whosell <item name or ID>).");
    		return -1;
    	}
    
    	if( (item_array[0] = itemdb_exists(atoi(message))) == NULL )
    		count = itemdb_searchname_array(item_array, MAX_SEARCH, message);
    
    	if( count < 1 )
    	{ // No items found
    		clif_displaymessage(fd, msg_txt(sd,19));
    		return -1;
    	}
    
    	if( count > MAX_SEARCH ) count = MAX_SEARCH;
    
    	// Preparing Search Recorders
    	for( i = 0; i < MAX_SEARCH; i++ )
    	{
    		total[i] = amount[i] = MaxPrice[i] = 0;
    		MinPrice[i] = battle_config.vending_max_value + 1;
    		b_sd[i] = NULL;
    	}
    
    	iter = mapit_getallusers();
    	for( pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter) )
    	{
    		if( !pl_sd->vender_id ) continue;
    		for( i = 0; i < pl_sd->vend_num; i++ )
    		{ // Searching in the Vending List
    			for( j = 0; j < count; j++ )
    			{ // Compares with each search result
    				if (pl_sd->cart.u.items_cart[pl_sd->vending[i].index].nameid != item_array[j]->nameid)
    					continue;
    
    				amount[j] += pl_sd->vending[i].amount;
    				total[j]++;
    
    				if( pl_sd->vending[i].value < MinPrice[j] )
    				{ // Best Price
    					MinPrice[j] = pl_sd->vending[i].value;
    					b_sd[j] = pl_sd;
    				}
    				if( pl_sd->vending[i].value > MaxPrice[j] )
    					MaxPrice[j] = pl_sd->vending[i].value;
    			}
    		}
    	}
    	mapit_free(iter);
    
    	for( i = 0; i < count; i++ )
    	{
    		if( total[i] > 0 && b_sd[i] != NULL )
    		{
    			sprintf(output, "[%d] The best price found for '%s' is %u sold by '%s' at %s <%d,%d>. Max Price %u. Item found in %d shops, %d pieces for sale.", item_array[i]->nameid, item_array[i]->jname, MinPrice[i], b_sd[i]->status.name, map[b_sd[i]->bl.m].name, b_sd[i]->bl.x, b_sd[i]->bl.y, MaxPrice[i], total[i], amount[i]);
    			if( sd->bl.m == b_sd[i]->bl.m )
    				clif_viewpoint(sd, 1, 1, b_sd[i]->bl.x, b_sd[i]->bl.y, i, 0xFFFFFF);
    		}
    		else
    			sprintf(output, "[%d] '%s' is not being sold at the moment...", item_array[i]->nameid, item_array[i]->jname);
    		clif_displaymessage(sd->fd, output);
    	}
    
    	return 0;
    }

    this is the output:

    11.jpg.e8029fa27634b516b265ccf2237f70c6.jpg

     


    CAN ANYONE HELP ME FOR THIS SCRIPT TO BE LIKE THIS? or may I request whosell script the same as the picture below, thanks.

    22.jpg.bfff457c61004806c660aac901fb42f0.jpg

     

    here 

     

     

    screenaeRO000.jpg

  2. Turn-in Follow-up Quests

    You will not be able to get any more if you have 5 in your inventory!

    Script Line Link
    https://github.com/rathena/rathena/blob/master/npc/quests/quests_13_1.txt#L6002
    https://github.com/rathena/rathena/blob/master/npc/quests/quests_13_1.txt#L6397
    https://github.com/rathena/rathena/blob/master/npc/quests/quests_13_1.txt#L6863

  3. @AnnieRuru i try on ramod i got error this

    https://imgur.com/a/jabaBAw

    so i try on latest Rathena

    First Problem

    i won the Gym Pass Box
     

    setarray .p2, 70, 13710,1;

    https://imgur.com/a/qsMjlDs

    the point should be Only 1 because on chance code

    	setarray .chance, 10,	9,	8,	7,	6,	5,	4,	3,	2,	1;
    	setarray .points, 10,	20,	30,	40,	50,	60,	70,	80,	90,	100;


    Lotti Shop
    if have 0 zeny even i have lotti points i cant buy items on shop 

    https://imgur.com/a/kjp6uHr

     

  4. 1 hour ago, AnnieRuru said:

    this topic kinda slip past my radar until a PM came in ...

     

    okies ... I even forgotten I made this script before ...

    by reading back my own script, and tested it, all I did back then was just adding announcement with the lowest chance

    just doing some clean up -> http://upaste.me/411049624930ea2ac

     

    what I don't understand is this ... isn't this feels contradict each other ? you said every play gain 1 point, then ... that total chance also doesn't add up ...

     

    no the  chance will not accumulate but will the points will

  5. 14 minutes ago, AOCzxc said:

    I'm looking for stop the clock . Count into 1-1100 not 1000 to 1,  

    quiz_00,25,120,3	script	Stop The Clock#02	925,{
    	mes "[ Stop The Clock ]";
    	mes "Hello "+strcharinfo(0)+",";
    	mes "Would you like to warp to the Stop the Clock?";
    	menu "Yes",warp_stc,"No",cancel_stc;
    
    warp_stc:
    	close2;
    	warp "prontera",162,170;
    	end;
    
    cancel_stc:
    	mes "[ Stop The Clock ]";
    	mes "Ok, have a nice day";
    	close;
    }
    
    prontera,146,192,5	script	Stop The Clock	902,{
    
    if(.game == 1 && getgmlevel() > 0)	{
    	message strcharinfo(0), "GM's are not allowed to join this event.";
    	end;
    	}
    if(.game == 1)	{
    set .@size,getarraysize($@stoppedstc$);
    for (set .@i,0;.@i<.@size;set .@i,.@i+1) {
    	if ($@stoppedstc$[.@i] == strcharinfo(0)) {
    		message strcharinfo(0), "You already stopped the clock.";
    		end;
    		}
    	}
    	set @stopped, .i;
    	mapannounce "prontera",""+strcharinfo(0)+" stopped the clock at "+@stopped+".",0;
    	set $@stoppedstc$[.cstc],strcharinfo(0);
    	set .cstc,.cstc+1;
    	if (@stopped >= 1001) {
    		set @stopped,0;
    		end;
    		}
    	if(@stopped == .nearest2) {
    		set .j,.j+1;
    		set .winner$[.j],strcharinfo(0);
    		end;
    		}
    	if (@stopped == 1000) {
     		deletearray .winner2$[.j],getarraysize(.winner$);
    		set .j,0;
    		set .lowest,@stopped;
    		set .winner$[.j], strcharinfo(0);
    		set .nearest2,@stopped;
    		end;
    		}
    	if(@stopped == .nearest) {
    		set .wins,.wins+1;
    		set .winner2$[.wins],strcharinfo(0);
    		end;
    		}
    	if(@stopped >= .lowest) {
        		deletearray .winner2$[.wins],getarraysize(.winner2$);
    		set .nearest,@stopped;
    		set .lowest,@stopped;
    		set .wins,0;
    		set .winner2$[.wins],strcharinfo(0);
    		end;
    		}
    	end;
    	}
    
    set .@name$, "[ Stop The Clock ]";
    set .@menu$, "Information:Prize:Leave";
    
    if(getgmlevel() >= 40) set .@menu$, .@menu$ + ":Start STC event";
    
    mes .@name$;
    mes "Hello "+strcharinfo(0)+", how can I help you?";
    switch(select(.@menu$))	{
    	case 1:
    	next;
    	mes .@name$;
    	mes "Stop the clock is a game where by players need to try to stop the clock as close to 1000 as possible.";
    	mes "The person that stops the clock closest and not more than 1000 wins!";
    	close;
    
    	case 2:
    	mes " ";
    	mes "Prize:";
    	mes "^0000FF5 Event Token^000000.";
    	mes "Jackpot:";
    	mes "^0000FF15 Event Token^000000.";
    	close;
    
    	case 3:
    	close;
    
    	case 4:
    	if (.stc_ongoing == 1) {
    	next;
    	mes .@name$;
    	mes "The event is still running!";
    	close;
    	}
    	set .GMName$,strcharinfo(0);
    	mes "Stop the Clock started!";
    	close2;
    	set .stc_ongoing,1;
    	goto L_Start;
    	}
    
    //OnMinute00:
    
    L_Start:
    deletearray $@stoppedstc$[0],getarraysize($@stoppedstc$);
    set .cstc,0;
    set .nearest2,2000;
    set .nearest,2000;
    deletearray .winner$[0],getarraysize(.winner$);
    deletearray .winner2$[0],getarraysize(.winner2$);
    set .winner2$[0], "";
    set .lowest, 0;
    set .j,0;
    set .wins,0;
    announce "Stop the Clock at Prontera City ! Starting in 5 seconds!",0;
    initnpctimer;
    end;
    
    OnTimer3000:
    mapannounce "prontera","Stop the clock as close to 1000 as possible! Players who stopped the clock higher than 1000 automatically lose, then those who stopped the clock at exactly 1000 will receive a item! To stop the clock, just click the npc.",0;
    end;
    
    OnTimer10000:
    announce "Stop the Clock starts now!",0;
    stopnpctimer;
    set .game, 1;
    
    for(set .i, 0; .i < 300;set .i, .i + 100)	{
    		mapannounce "prontera"," "+.i+" ",0;
    		misceffect 18;
    		sleep2 700;
    		}
    
    
    for(set .i, 300; .i < 600;set .i, .i + 100)	{
    		mapannounce "prontera"," "+.i+" ",0;
    		misceffect 18;
    		sleep2 500;
    		}
    
    for(set .i, 600; .i < 950;set .i, .i + 10)	{
    		mapannounce "prontera"," "+.i+" ",0;
    		misceffect 18;
    		sleep2 100;
    		}
    
    for(set .i, 950; .i < 1000;set .i, .i + 1)	{
    		mapannounce "prontera"," "+.i+" ",0;
    		misceffect 18;
    		sleep2 20;
    		}
    
    for(set .i, 1000; .i < 1050;set .i, .i + 1)	{
    		mapannounce "prontera"," "+.i+" ",0;
    		misceffect 18;
    		sleep2 15;
    		}
    
    set .game, 0;
    
    if (.lowest == 1000) {
    	set .@size,getarraysize(.winner$);
    	for(set .@i,0;.@i<.@size;set .@i,.@i+1) {
    	getitem 8040,200,getcharid(3,.winner$[.@i]);
    	announce "Jackpot! "+.winner$[.@i]+" stopped the clock at exactly "+.lowest+"!",0;	
    	sleep2 1;
    	}
    	set .stc_ongoing,0;
    	end;
    } else {
    if(.winner2$[.wins] == "") {
    	announce "Nobody hit the clock at the right moment. There's no winner.",bc_blue;
    	set .stc_ongoing,0;
    	end;
    	}
    	set .@size,getarraysize(.winner2$);	
    	for (set .@i,0;.@i<.@size;set .@i,.@i+1) {
    			getitem 8040,50,getcharid(3,.winner2$[.@i]);
    			announce ""+.winner2$[.@i]+" wins! He stopped the clock at "+.nearest+", Congratulations!.",0;
    			sleep2 1;
    			}
    		set .stc_ongoing,0;
    	end;
    	}
    
    }

     

  6. @AnnieRuru can you Add more ideas and Option Menu?

    switch(select("Play","Lotti Ranking","Lotti Shop"))
    
    • Play Option 

    Every Play of Lotti Girl you gain 1 Lotti Ladder Point and Lotti Shop Point 

    • Points System
    10% = 10Points Lotti Ladder Points & Lotti Shop Points
    9% = 20Points Lotti Ladder Points & Lotti Shop Points
    8% = 30Points Lotti Ladder Points & Lotti Shop Points
    7% = 40Points Lotti Ladder Points & Lotti Shop Points
    6% = 50Points Lotti Ladder Points & Lotti Shop Points
    5% = 60Points Lotti Ladder Points & Lotti Shop Points
    4% = 70Points Lotti Ladder Points & Lotti Shop Points
    3% = 80Points Lotti Ladder Points & Lotti Shop Points
    2% = 90Points Lotti Ladder Points & Lotti Shop Points
    1% = 100Points Lotti Ladder Points & Lotti Shop Points
    
    • Lotti Ladder System

    1 > Name > Lotti Ladder Points

    2 > Name > Lotti Ladder Points

    3 > Name > Lotti Ladder Points

    4 > Name > Lotti Ladder Points

    5  > Name > Lotti Ladder Points

    • Lotti Shop

    Players can  use there Lotti Shop Points to buy any items on Lotti Shop

  7. Hello Guys

    Lotti Girl NPC kindly Useful @ 255 Server Using This Script :  and i want to add some ideas

    @AnnieRuru can you Add more ideas and Option Menu?

    switch(select("Play","Lotti Ranking","Lotti Shop"))
    
    • Play Option 

    Every Play of Lotti Girl you gain 1 Lotti Ladder Point and Lotti Shop Point 

    • Points System
    10% = 10Points Lotti Ladder Points & Lotti Shop Points
    9% = 20Points Lotti Ladder Points & Lotti Shop Points
    8% = 30Points Lotti Ladder Points & Lotti Shop Points
    7% = 40Points Lotti Ladder Points & Lotti Shop Points
    6% = 50Points Lotti Ladder Points & Lotti Shop Points
    5% = 60Points Lotti Ladder Points & Lotti Shop Points
    4% = 70Points Lotti Ladder Points & Lotti Shop Points
    3% = 80Points Lotti Ladder Points & Lotti Shop Points
    2% = 90Points Lotti Ladder Points & Lotti Shop Points
    1% = 100Points Lotti Ladder Points & Lotti Shop Points
    
    • Lotti Ladder System

    1 > Name > Lotti Ladder Points

    2 > Name > Lotti Ladder Points

    3 > Name > Lotti Ladder Points

    4 > Name > Lotti Ladder Points

    5  > Name > Lotti Ladder Points

    • Lotti Shop

    Players can  use there Lotti Shop Points to buy any items on Lotti Shop

  8. hello rathena i have a little problem about clif_specialeffect i made a custom skill buffs 

    when i rebuffs my skill the clif_specialeffect is stacking THE more rebuffs more clif_specialeffect 

    question is 
    how to disable when the Buffs Tick to 0 remove the clif_specialeffect and Refresh the clif_specialeffect  when rebuffs  and not Stacking it?

  9. On 2/23/2018 at 11:56 AM, NightJar said:

    Hi,

     

    I use custom cards on my server. 
    SinxCard gives auto cast EDP. 

    I want to disable the effect on champs coz it was over powered. 

    Please help!

     

    TIA! 

     

    Find This on Battle.c or battle.cpp
    
    	if (sc->data[SC_EDP]) {
    			switch(skill_id) {
    				case AS_SPLASHER:
    				// Pre-Renewal only: Soul Breaker and Meteor Assault ignores EDP
    				// Renewal only: Grimtooth and Venom Knife ignore EDP
    				// Both: Venom Splasher ignores EDP [helvetica]
    #ifndef RENEWAL
    				case ASC_BREAKER:
    				case ASC_METEORASSAULT:
    #else
    				case AS_GRIMTOOTH:
    				case AS_VENOMKNIFE:
    #endif
    					break; // skills above have no effect with edp

     

  10. On 2/20/2018 at 5:53 PM, Alayne said:

    Just released a bunch of new scripts. Allthought, those scripts were initially developped for hercules, and may contains issue. Feel free to report / fix them directly on github!

    Release contains:

    • System/Crafting - Allow players to register to a guild, which can craft some specific items (pastry, magic scrolls, tailoring...)
    • System/DungeonHall - Advanced Guild Housing. Allow guilds to buy a town and use them as base. They'll then have to manage food stocks (which will change the food available in restaurant, bar...), dungeon (one per town) and it's content (by catching mobs and poping it on the dungeon), access to fields...
    • System/Fisherman - Fishing system
    • System/Miner - Mining system
    • System/Mercenary - Allow players to register as mercenaries, and then be hired by other players (through a contract) to fullfill a specific task
    • System/Prime Hunter - Allow players to put a reward on someone's head, and Prime hunters (registered players) to hunt those target for the reward
    • System/Steel Soul - Allow players to bind their soul to a given weapon, evolving through mob killing, and possibly able to gain bonuses (through random option)

    Feel free to report any issues, and i'll try to fix it as soon as possible

    your git link?

  11. @skymia @Elysium

     

    #ifndef RENEWAL
    	case NJ_ISSEN:
    		status_change_end(src, SC_NEN, INVALID_TIMER);
    		status_change_end(src, SC_HIDING, INVALID_TIMER);
    #endif
    		// fall through
    	case MO_EXTREMITYFIST:
    		{
    			//short x, y, i = 2; // Move 2 cells for Issen(from target)
    			struct block_list *mbl = bl;
    			short dir = 0;
    			
    			skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
    			
    			if( skill_id == MO_EXTREMITYFIST )
    			{
    				mbl = src;
    				status_set_sp(src, 0, 0);
    				status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER);
    				status_change_end(src, SC_BLADESTOP, INVALID_TIMER);
    #ifdef RENEWAL
    				sc_start(src,src,SC_EXTREMITYFIST2,100,skill_lv,skill_get_time(skill_id,skill_lv));
    #endif
    			}else
    				status_set_hp(src,
    #ifdef RENEWAL
    				max(status_get_max_hp(src)/100, 1)
    #else
    				1
    #endif
    				, 0);
    		}
    		//Client expects you to move to target regardless of distance
    		{				
    			struct unit_data *ud = unit_bl2ud(src);
    			short dx,dy;
    			int i,speed;
    			i = skill_id == MO_EXTREMITYFIST?1:2; //Move 2 cells for Issen, 1 for Asura
    			dx = bl->x - src->x;
    			dy = bl->y - src->y;
    			if (dx < 0) dx-=i;
    			else if (dx > 0) dx+=i;
    			if (dy < 0) dy-=i;
    			else if (dy > 0) dy+=i;
    			if (!dx && !dy) dy++;
    			if (map_getcell(src->m, src->x+dx, src->y+dy, CELL_CHKNOPASS))
    			{
    				dx = bl->x;
    				dy = bl->y;
    			} else {
    				dx = src->x + dx;
    				dy = src->y + dy;
    			}
    
    			if(unit_walktoxy(src, dx, dy, 2) && ud) {
    				//Increase can't walk delay to not alter your walk path
    				ud->canmove_tick = tick;
    				speed = status_get_speed(src);
    				for (i = 0; i < ud->walkpath.path_len; i ++)
    				{
    					if(ud->walkpath.path[i]&1)
    						ud->canmove_tick+=7*speed/5;
    					else
    						ud->canmove_tick+=speed;
    				}
    			}
    		}
    		break;

     

×
×
  • Create New...