Jump to content
  • 0

Question

12 answers to this question

Recommended Posts

Posted


prontera,150,150,0    script    Random    100,{

    if (countitem(7179) < 100) {

        mes .npc$;

        mes "You don't have 100 proof of donation";

        close;

    }

    mes .npc$;

    mes "Here you go!";

    delitem 7179,100;

    getitem rand(.min_id, .max_id), 1;

    close;

    OnInit:

        .npc$ = strnpcinfo(1);

        .min_id = 7179;

        .max_id = 7227;

        end;

}

Posted (edited)

If you want an item array I think you can do it like this 

setarray .items[0],20000,20001,20002,20003,20004,20005;
getitem .items[rand(0, getarraysize(.items))], 1;

------ 

        .npc$ = strnpcinfo(1);
        .min_id = 7179;
        .max_id = 7227;

Is this possible? I mean I know it's like this in other languages but can we write it like this in athena? o.o

I used to write it like this

set .npc$,""+strnpcinfo(1)+"";
set .min_id,7179;
set .max_id,7227;
Edited by SaZzuke
Posted
setarray .items[0],20000,20001,20002,20003,20004,20005;
getitem .items[rand( getarraysize(.items) ) ], 1;

read rand , your previous example will generate an non-exist item ...with item id of 0 ....

 

set .npc$,""+strnpcinfo(1)+"";
set .min_id,7179;
set .max_id,7227;

only possible in rAthena / Hercules ... but not eAthena ....

Posted

not working here's the script.

 

i think im wrong with it.

 

prontera,195,175,0	script	Athena Shin	100,{
    if (countitem(7179) < 100) {
        mes .npc$;
        mes "You don't have 100 proof of donation";
        close;
    }
    mes .npc$;
    mes "Here you go!";
    delitem 7179,100;
    getitem rand(.min_id, .max_id), 1;
    close;


    OnInit:
setarray .items[0],7539,5171,2863;
getitem .items[rand( getarraysize(.items) ) ], 1;
        end;
}
Posted


prontera,195,175,0 script Athena Shin 100,{

if (countitem(7179) < 100) {

mes .npc$;

mes "You don't have 100 proof of donation";

close;

}

mes .npc$;

mes "Here you go!";

delitem 7179,100;

getitem callfunc("F_RandMes",3,7539,5171,2863),1;

close;

}

Posted

thanks skorm

 

but how to put global announce when u get those items? thank you.

 

prontera,195,175,0	script	Athena Shin	100,{
	mes .npc_n$;
	mes "Only "+.itm_a+" "+.itm_n$+" to play this random chance mini-game!";
	mes "Would you like to play?"; next;
	if(select("Yes:No:What can I win?")&2) {
		if(@menu-2) {
			set .@mes$, "You can win: ";
			for(set(.@a,1);.@a<=.len_i;set(.@a,.@a+1)) {
				set .@itm$, getitemname(.itm_l[(.@a-1)]);
				if(.@a%10&&.@a<=.len_i&&.@a!=.len_i) {
					set .@mes$, .@mes$+((!((.@a%10)-9)&&.@a<=.len_i)?
							"and "+.@itm$+".":.@itm$+", ");
				} else {
					mes .npc_n$;
					if(.@a<.len_i) {
						mes .@mes$; set .@mes$, "You can also win: "+.@itm$+", "; next;
						if(select("Next:Close")&2) close;
					} else {
						mes .@mes$+"and "+.@itm$+"."; close;
					}
				}
			}
		} else close;
	}
	if (countitem(.itm_p) < .itm_a) {
		mes .npc_n$;
		mes "You don't have "+.itm_a+" "+.itm_n$;
		close;
	}
	mes .npc_n$;
	mes "Here you go!";
	delitem .itm_p,.itm_a;
	set .@get, .itm_l[rand(.len_i-1)];
	if(compare(""+.@get,.itm_a$)) announce strnpcinfo(0)+": "+strcharinfo(0)+" got ["+getitemname(.@get)+"]!",bc_all|bc_yellow;
	getitem .@get,1;
	close;

	OnInit:
		set     	.npc_n$,	"[^00FF00Athena Shin^000000]"                                ; //NPC Name.
		setarray	.itm_l ,	7539, 5171, 2863, 501, 502, 503, 504, 505, 506, 507, 508, 509; //Item List.
		set     	.itm_a$,	"7539, 5171, 2863"                                           ; //Item IDs in this string are announced.
		set     	.len_i ,	getarraysize(.itm_l)                                         ; //Length of array.
		set     	.itm_a ,	100                                                          ; //Cost of npc.
		set     	.itm_p ,	7179                                                         ; //Item used as currency.
		set     	.itm_n$,	getitemname(.itm_p)                                          ; //Item Name.
}
Posted (edited)

not working npc not announce the item you win.

here's my real script and real item id to put on this script

 

prontera,195,175,0	script	Athena Shin	717,{
	mes .npc_n$;
	mes "Only "+.itm_a+" "+.itm_n$+" to play this random chance mini-game!";
	mes "Would you like to play?"; next;
	if(select("Yes:No:What can I win?")&2) {
		if(@menu-2) {
			set .@mes$, "You can win: ";
			for(set(.@a,1);.@a<=.len_i;set(.@a,.@a+1)) {
				set .@itm$, getitemname(.itm_l[(.@a-1)]);
				if(.@a%10&&.@a<=.len_i&&.@a!=.len_i) {
					set .@mes$, .@mes$+((!((.@a%10)-9)&&.@a<=.len_i)?
							"and "+.@itm$+".":.@itm$+", ");
				} else {
					mes .npc_n$;
					if(.@a<.len_i) {
						mes .@mes$; set .@mes$, "You can also win: "+.@itm$+", "; next;
						if(select("Next:Close")&2) close;
					} else {
						mes .@mes$+"and "+.@itm$+"."; close;
					}
				}
			}
		} else close;
	}
	if (countitem(.itm_p) < .itm_a) {
		mes .npc_n$;
		mes "You don't have "+.itm_a+" "+.itm_n$;
		close;
	}
	mes .npc_n$;
	mes "Here you go!";
	delitem .itm_p,.itm_a;
	set .@get, .itm_l[rand(.len_i-1)];
	if(compare(""+.@get,.itm_a$)) announce strnpcinfo(0)+": "+strcharinfo(0)+" got ["+getitemname(.@get)+"]!",bc_all|bc_yellow;
	getitem .@get,1;
	close;

	OnInit:
		set     	.npc_n$,	"[^00FF00Athena Shin^000000]"                                ; //NPC Name.
		setarray	.itm_l ,	7539, 5171, 2629, 501, 502, 2541, 504, 505, 2383, 507, 508, 509; //Item List.
		set     	.itm_a$,	"7539, 5171, 2629, 2383, 2541"                                           ; //Item IDs in this string are announced.
		set     	.len_i ,	getarraysize(.itm_l)                                         ; //Length of array.
		set     	.itm_a ,	100                                                          ; //Cost of npc.
		set     	.itm_p ,	7179                                                         ; //Item used as currency.
		set     	.itm_n$,	getitemname(.itm_p)                                          ; //Item Name.
}

i tried to test this npc i got all this already but still no announce.

 

set     	.itm_a$,	"7539, 5171, 2629, 2383, 2541"                                           ; //Item IDs in this string are announced.
Edited by Hatake Kakashi
Posted

Sorry about that small error on my part.

 

Replace:

if(compare(""+.@get,.itm_a$)) 

 

With:

if(compare(.itm_a$,""+.@get))

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...