Jump to content

ScarrFace

Members
  • Posts

    66
  • Joined

  • Last visited

Posts posted by ScarrFace

  1. 37 minutes ago, Mabuhay said:

    my bad.. here is the update :
     

    
    find 
    .@s = select(.@menu$)-1;
    change to 
    .@s = select(.@menu$)-1*5;

    or redownload my previous post.

    got an error

    [Warning]: script:getelementofarray: index out of range (-3)
    [Debug]: Data: variable name='.@trade' index=0

    after i click the menu nothing happen and got stuck.

  2. 4 hours ago, Gladius said:

    I made a simple and practical version.
    If you search there are better ways to do this.

     

    
    //==================================================
    //        _____ _           _ _                   
    //       / ____| |         | (_)                  
    //      | |  __| | __ _  __| |_ _   _ ___         
    //      | | |_ | |/ _` |/ _` | | | | / __|        
    //      | |__| | | (_| | (_| | | |_| \__ \        
    //       \_____|_|\__,_|\__,_|_|\__,_|___/        
    //                                                                                                
    //===== rAthena Script ===============================
    //= Exchange Poring Card for Faber Card
    //===== Créditos: ====================================         
    //= Gladius 
    //===== NPC Version: =================================
    //== 1.0
    //====================================================
    
    
    prontera,155,178,5	script	Item Changer	61,{
    
    	set .ns$,"^00B2EE[Item Changer]^000000";		// Nome do NPC
    	set .@poring, 4001;					// Poring Card
    	
    	mes .ns$;
    	mes "Do you want to exchange a poring card for a faber card? Has 25% success.";
    	switch(select("^3CB371[»]^000000 Exchange Poring Card","^ff0000[»]^000000 No")){
    	
    	case 1:
    	next;
    	if(countitem(.@poring) < 1){ 
    	mes .ns$; 
    	mes "You don't have "+getitemname(.@poring)+" for exchange."; 
    	close;
    	}
    	
    	delitem .@poring,1;	
    	
    	switch( rand(1,4) ){
    	
    	case 1:
    		getitem 4002,1;
    		mes .ns$;
    		mes "The exchange conversion was a success!";
    		close;	
    	
    	case 2:
    		getitem 4002,1;
    		mes .ns$;
    		mes "The exchange conversion was a success!";
    		close;	
    	
    	case 3:
    		getitem 4002,1;
    		mes .ns$;
    		mes "The exchange conversion was a success!";
    		close;
    	
    	case 4:
    		mes .ns$;
    		mes "I'm sorry but I failed to exchange conversion.";
    		close;
    		
    		}
    	}
    }

     

    I hope it helped you.

    success rate not working.

  3. I'm looking for item trader/exchanger with success/failed rate and multiple item list

    ex:

    poring card 10 pcs trade to poporing card 1 pc with 50% success rate

    poporing card 5 pcs trade to marin card 1 pc with 25% success rate

    and so on.

  4. On 1/9/2014 at 2:07 AM, AnnieRuru said:

    FUN !

    why not make a script command to change the player's facing

    [paste=1ta6tj2tm187]

    then can use

     

    
    -	script	kdjhfksdjf	-1,{
    OnPCLoginEvent:
    	setdir DIR_SOUTH;
    	end;
    }

    this might be useful with pushpc script command

    i got an error

    parse_line: expect command, missing function name or calling undeclared function
    *    4 :        's'etdir DIR_SOUTH;

    how to fix this? @AnnieRuru

    thank you!

  5. On 10/14/2019 at 11:15 AM, Emistry said:
    
    // https://rathena.org/board/topic/121262-custom-bring-me-event/
    
    /* 
    CREATE TABLE IF NOT EXISTS `bring_me_event` (
    	`id` int(11) unsigned NOT NULL auto_increment,
    	`aid` int(11) unsigned NOT NULL default '0',
    	`cid` int(11) unsigned NOT NULL default '0',
    	`last_ip` varchar(100) NOT NULL default '',
    	`last_unique_id` varchar(100) NOT NULL default '',
    	`time` datetime NOT NULL,
    ) ENGINE=MyISAM;
    */
    
    prontera,0,0,0	script	Sample	444,{
    	.@aid = getcharid(3);
    	.@cid = getcharid(0);
    	.@ip$ = getcharip();
    	.@unique_id$ = get_unique_id();
    	
    	query_logsql("SELECT `id`,`time` FROM `bring_me_event` WHERE `aid` = "+.@aid+" OR `last_ip` = '"+escape_sql(.@ip$)+"' OR `last_unique_id` = '"+escape_sql(.@unique_id$)+"' LIMIT 1", .@id, .@time$);
    	query_logsql("SELECT COUNT(`id`) FROM `bring_me_event`", .@size);
    	if (.@size >= .max_redeem) {
    		mes "you missed the reward, only "+.max_redeem+" players got the reward.";
    	}
    	else if (.@id) {
    		mes "You've already claimed the rewards on "+.@time$+".";
    	}
    	else {
    		mes "Bring me "+.amount+"x "+getitemname(.item_id);
    		if (countitem(.item_id) >= .amount) {
    			if (select("Okay","Cancel") == 1) {
    				delitem .item_id, .amount;
    				query_logsql("INSERT INTO `bring_me_event` (`aid`,`cid`,`last_ip`,`last_unique_id`,`time`) VALUES ("+.@aid+","+.@cid+",'"+escape_sql(.@ip$)+"','"+escape_sql(.@unique_id$)+"', NOW())");
    				getitem 501,1;
    				getitem 502,1;
    				getitem 503,1;
    				mes "you are the "+(.@size+1)+"/"+.max_redeem+" players who got the reward";
    			}
    		}
    	}
    	close;
    	
    	OnInit:
    		.item_id = 512;
    		.amount = 300;
    		.max_redeem = 200;
    		end;
    }

    you can try this.

    i have error. how to fix this? 

    add_word: invalid word. A word consists of undercores and/or alphanumeric characters, and valid variable prefixes/postfixes.

     

    .@unique_id$ = get_unique_id();

  6. On 10/11/2019 at 10:59 PM, BeWan said:

    tried and tested. working 100%

     

    
    prontera,156,178,5	script	BeWan Enchanter	100,{
    	mes "do you want to enchant your equipment ?";
    	next;
    	.@s = select( .menu$ ) -1;
    	if ( !getequipisequiped( .const_equip[.@s] ) || .const_equip[.@s] == EQI_HAND_L && getiteminfo( getequipid( EQI_HAND_L ),2 ) != 5 ) {
    		mes "you did not equip an "+ .menu_name$[.@s] +" at the moment";
    		close;
    	}
    	.@id = getequipid( .const_equip[.@s] );
    	.@ref = getequiprefinerycnt( .const_equip[.@s] );
    	.@card1 = getequipcardid( .const_equip[.@s], 0 );
    	.@card2 = getequipcardid( .const_equip[.@s], 1 );
    	.@card3 = getequipcardid( .const_equip[.@s], 2 );
    	.@card4 = getequipcardid( .const_equip[.@s], 3 );
    	if ( .@card1 == 255 || .@card1 == 254 ) {
    		mes "I can't enchant a signed equipment";
    		close;
    	}
    	if ( .@card4 ) {
    		mes "this armor has already enchanted";
    		close;
    	}
    	
    	if ( countitem( 7773 ) < 50 || countitem( 7227 ) < 50  ) {
    	mes "Sorry, you need 50 "+ getitemname( 7773 ) +" and 50 "+ getitemname( 7227 ) +" to enchant this armor.";
    	close;
    	}
    	
    	.@rand = rand(.totalchance);
    	while ( ( .@rand = .@rand - .rate[.@r] ) >= 0 ) .@r++;
    	.@o = rand(0,5);
    
    	delitem2 .@id, 1,1, .@ref, 0, .@card1, .@card2, .@card3, 0;
    	getitem2 .@id, 1,1, .@ref, 0, .@card1, .@card2, .@card3, 4700 + .@o * 10 + .@r;
    	equip .@id;
    	close;
    OnInit:
    	setarray .rate, 55,50,45,40,35; // rate of getting +1 is 55%, +2 is 50% .... +10 is 10% ...
    
    	setarray .const_equip, EQI_ARMOR, EQI_HAND_L, EQI_GARMENT, EQI_SHOES;
    	setarray .menu_name$, "Armor", "Shield", "Garment", "Shoes";
    	.menu$ = implode( .menu_name$,":" );
    	while ( .@i < 10 ) {
    		.totalchance = .totalchance + .rate[.@i];
    		.@i++;
    	}
    	end;
    }

    or if you want to use your script just edit this

    
     if (countitem(.@stone[.@type]) < 1) {
                        mes "[Aver De Dosh]";
                        mes "You do not have adequate quantity of ^0000FF"+getitemname (.@stone[.@type])+".^000000";
                        close;
                    }

    to 

    
    if ( countitem( 7773 ) < 50 || countitem( 7227 ) < 50  ) {
    	mes "Sorry, you need 50 "+ getitemname( 7773 ) +" and 50 "+ getitemname( 7227 ) +" to enchant this armor.";
    	close;
    	}

     

    thank you!

     

×
×
  • Create New...