prontera,150,150,0 script Sample 100,{ if ( !countitem( 7539 ) ) { mes "You need 1 " +getitemname( 7539 )+ " in order to talk to me"; close; } if ( select( "Here have my " +getitemname( 7539 )+ ":Nevermind" ) - 1 ) close; .@r = rand(501, 700); if ( getitemname( .@r ) != "null" ) { delitem 7539, 1; getitem .@r, 1; } close;}
Might be a good idea to enclose that set for .@r in a do..while loop; if the item name does end up being "null", the user's item is taken and doesn't get anything lol.prontera,150,150,0 script Sample 100,{ if ( !countitem( 7539 ) ) { mes "You need 1 " +getitemname( 7539 )+ " in order to talk to me"; close; } if ( select( "Here have my " +getitemname( 7539 )+ ":Nevermind" ) - 1 ) close; .@r = rand(501, 700); if ( getitemname( .@r ) != "null" ) { delitem 7539, 1; getitem .@r, 1; } close;}
do { .@r = rand(501, 700);} while (getitemname(.@r) != "null");
how about the chance?Might be a good idea to enclose that set for .@r in a do..while loop; if the item name does end up being "null", the user's item is taken and doesn't get anything lol.prontera,150,150,0 script Sample 100,{ if ( !countitem( 7539 ) ) { mes "You need 1 " +getitemname( 7539 )+ " in order to talk to me"; close; } if ( select( "Here have my " +getitemname( 7539 )+ ":Nevermind" ) - 1 ) close; .@r = rand(501, 700); if ( getitemname( .@r ) != "null" ) { delitem 7539, 1; getitem .@r, 1; } close;}
do { .@r = rand(501, 700);} while (getitemname(.@r) != "null");
prontera,147,174,5 script Odd Fellow::randomstuff 1_M_WIZARD,{ /*----------------------------------------------------- Script -----------------------------------------------------*/ mes .npc_name$; mes "Hello there! For "+ .coin_amount +" "+ getitemname(.coin_id) +", I'll give you a random item!"; next; mes .npc_name$; if (countitem(.coin_id) < .coin_amount) { mes "Come back when you have "+ .coin_amount +" "+ getitemname(.coin_id) +"!"; close; } mes "Would you like to give it a try?"; next; if (select("Sure, why not!:No, thanks") == 2) { mes .npc_name$; mes "Okay, come back if you change your mind!"; close; } do { .@prize_id = rand(.prize_min_id, .prize_max_id); } while (getitemname(.@prize_id) == "null"); mes .npc_name$; mes "Here you go! You got "+ .prize_amount +" "+ getitemname(.@prize_id) +"!"; delitem .coin_id, .coin_amount; getitem .@prize_id, .prize_amount; close; /*----------------------------------------------------- Configuration -----------------------------------------------------*/ OnInit: .npc_name$ = "[Odd Fellow]"; .coin_id = Poring_Coin; // Coin ID .coin_amount = 1; // Count amount required .prize_min_id = 501; // Prize minimum ID .prize_max_id = 30000; // Prize maximum ID .prize_amount = 1; // Prize amount rewarded end;}
The delitem command is triggered when the item is not null otherwise it does nothing. though i can say a do while loop is a better approachMight be a good idea to enclose that set for .@r in a do..while loop; if the item name does end up being "null", the user's item is taken and doesn't get anything lol.
do { .@r = rand(501, 700);} while (getitemname(.@r) != "null");
The delitem command is triggered when the item is not null otherwise it does nothing. though i can say a do while loop is a better approach![]()
Work Perfectly so how to set the custom prize?Here, give this a try:
prontera,147,174,5 script Odd Fellow::randomstuff 1_M_WIZARD,{ /*----------------------------------------------------- Script -----------------------------------------------------*/ mes .npc_name$; mes "Hello there! For "+ .coin_amount +" "+ getitemname(.coin_id) +", I'll give you a random item!"; next; mes .npc_name$; if (countitem(.coin_id) < .coin_amount) { mes "Come back when you have "+ .coin_amount +" "+ getitemname(.coin_id) +"!"; close; } mes "Would you like to give it a try?"; next; if (select("Sure, why not!:No, thanks") == 2) { mes .npc_name$; mes "Okay, come back if you change your mind!"; close; } do { .@prize_id = rand(.prize_min_id, .prize_max_id); } while (getitemname(.@prize_id) == "null"); mes .npc_name$; mes "Here you go! You got "+ .prize_amount +" "+ getitemname(.@prize_id) +"!"; delitem .coin_id, .coin_amount; getitem .@prize_id, .prize_amount; close; /*----------------------------------------------------- Configuration -----------------------------------------------------*/ OnInit: .npc_name$ = "[Odd Fellow]"; .coin_id = Poring_Coin; // Coin ID .coin_amount = 1; // Count amount required .prize_min_id = 501; // Prize minimum ID .prize_max_id = 30000; // Prize maximum ID .prize_amount = 1; // Prize amount rewarded end;}
prontera,147,174,5 script Odd Fellow::randomstuff 1_M_WIZARD,{ /*----------------------------------------------------- Script -----------------------------------------------------*/ mes .npc_name$; mes "Hello there! For "+ .coin_amount +" "+ getitemname(.coin_id) +", I'll give you a random item!"; next; mes .npc_name$; if (countitem(.coin_id) < .coin_amount) { mes "Come back when you have "+ .coin_amount +" "+ getitemname(.coin_id) +"!"; close; } mes "Would you like to give it a try?"; next; if (select("Sure, why not!:No, thanks") == 2) { mes .npc_name$; mes "Okay, come back if you change your mind!"; close; } // Generate random prize ID do { .@prize_id = rand(.prize_min_id, .prize_max_id); } while (getitemname(.@prize_id) == "null"); // Determine index location of rare item to randomly pick from do { .@rare_index = rand(getarraysize(.rare_id)); } while (.@rare_id % 2); // Determine whether or not to change prize to rare item if (!rand(.rare_id[.@rare_index + 1])) { .@prize_id = .@rare_id; } mes .npc_name$; mes "Here you go! You got "+ .prize_amount +" "+ getitemname(.@prize_id) +"!"; getitem .@prize_id, .prize_amount; close; /*----------------------------------------------------- Configuration -----------------------------------------------------*/ OnInit: .npc_name$ = "[Odd Fellow]"; .coin_id = Poring_Coin; // Coin constant/ID .coin_amount = 1; // Count amount required .prize_min_id = 501; // Prize minimum ID .prize_max_id = 30000; // Prize maximum ID .prize_amount = 1; // Prize amount rewarded // Rare item constants/IDs and chance in x to obtain rare item (default: 5 [20%]) setarray .rare_id[0], Apple, 10, Red_Potion, 20, Jellopy, 30, Fluff, 4, Clover, 5; end;}
We use essential cookies to make this site work, and optional cookies to enhance your experience.