Jump to content
  • 0

Showevent Emotions Not Showing


Question

Posted

Hello. I have this NPC script :

saevern,157,131,5 script BlahBlah#NPC1 100,{
mes "Blah blah";
close;
OnPCLoadMapEvent:
getmapxy @m_char$,@x,@y,0;
getmapxy @m_npc$,@x,@y,1,strnpcinfo(0);
if( @m_char$ == @m_npc$ )
 showevent 1,0;
end;
}

I used this to try if my showevent is appearing.

But it's not. Is there something wrong with the script? or The showevent emoticons have files in the data folder that i do not have? If there is can you give me the download link? Thanks In Advance.

PS: sorry for poor english.

7 answers to this question

Recommended Posts

  • 1
Posted
// Shop NPCs -- supplying no argument displays entire menu.
//    callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};
//============================================================
prontera,164,203,6    script    Quest Shop#1    998,{
   callfunc "qshop";

OnPCLoadMapEvent:
   if( strcharinfo(3) == strnpcinfo(4) )
       showevent 1,1;
   end;
}
prontera    mapflag    loadevent

  • Upvote 2
  • MVP 1
Posted (edited)

you need loadevent mapflag to trigger the OnPCLoadMapEvent..

mapname   mapflag	loadevent

It's working.

but when i try to put the showevent script on Euphy's Quest it's not appearing anymore. here it is.:

//===== rAthena Script =======================================
//= Euphy's Quest Shop
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.6
//===== Compatible With: =====================================
//= rAthena SVN r16862+
//===== Description: =========================================
//= A dynamic quest shop based on Lunar's, with easier config.
//= Includes support for multiple shops & cashpoints.
//= Item Preview script by ToastOfDoom.
//============================================================

// Shop NPCs -- supplying no argument displays entire menu.
//	callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};
//============================================================
saevern,157,131,5	script	Quest Shop#1	998,{ callfunc

"qshop"; }


// Script Core
//============================================================
-	script	quest_shop	-1,{
function Add; function Chk; function Slot; function A_An;
OnInit:
freeloop(1);

// -----------------------------------------------------------
//  Basic shop settings.
// -----------------------------------------------------------

set .Announce,1;	// Announce quest completion? (1:

yes / 0: no)
set .ShowSlot,1;	// Show item slots? (2: all

equipment / 1: if slots > 0 / 0: never)
set .ShowID,0;	  // Show item IDs? (1: yes / 0:

no)
set .ShowZeny,0;	// Show Zeny cost, if any? (1:

yes / 0: no)
set .MaxStack,100;	// Max number of quest items

purchased at one time.

// -----------------------------------------------------------
//  Points variable -- optional quest requirement.
//	setarray .Points$[0],"<variable name>","<display name>";
// -----------------------------------------------------------

setarray .Points$[0],"#CASHPOINTS","Cash Points";

// -----------------------------------------------------------
//  Shop IDs -- to add shops, copy dummy data at bottom of file.
//	setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...};
// -----------------------------------------------------------

setarray .Shops$[1],"Headgears","Weapons","Other";

// -----------------------------------------------------------
//  Quest items -- do NOT use a reward item more than once!
//	Add(<shop ID>,<reward ID>,<reward amount>,
//   	 <Zeny cost>,<point cost>,
//   	 <required item ID>,<required item amount>{,...});
// -----------------------------------------------------------

Add(1,5022,1,0,0,7086,1,969,10,999,40,1003,50,984,2);
Add(1,5032,1,0,0,1059,250,2221,1,2227,1,7063,600);
Add(1,5027,1,0,0,2252,1,1036,400,7001,50,4052,1);
Add(1,5045,1,0,0,2252,1,1054,450,943,1200);

Add(2,1224,1,0,0,7297,30,969,10,999,50,714,10);
Add(2,1225,1,0,0,7292,30,969,10,999,50,714,10);

Add(3,531,1,3,0,512,1,713,1);
Add(3,532,1,3,0,513,1,713,1);
Add(3,533,1,3,0,514,1,713,1);
Add(3,534,1,3,0,515,1,713,1);

// -----------------------------------------------------------

freeloop(0);
set .menu$,"";
for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1)

{
	set .menu$, .menu$+.Shops$[.@i]+":";
	npcshopdelitem "qshop"+.@i,909;
}
end;

OnMenu:
set .@size, getarraysize(@i);
if (!.@size) set .@i, select(.menu$);
else if (.@size == 1) set .@i, @i[0];
else {
	for(set .@j,0; .@j<.@size; set .@j,.@j+1)
		set .@menu$, .@menu$+.Shops$[@i

[.@j]]+":";
	set .@i, @i[select(.@menu$)-1];
}
deletearray @i[0],getarraysize(@i);
if (.Shops$[.@i] == "") {
	message strcharinfo(0),"An error has occurred.";
	end;
}
dispbottom "Select one item at a time.";
callshop "qshop"+.@i,1;
npcshopattach "qshop"+.@i;
end;

OnBuyItem:
// .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt,

ReqZeny, ReqPts, { ReqItem, ReqAmt, ... }
setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] >

.MaxStack)?.MaxStack:@bought_quantity[0]);
copyarray .@q[3],getd(".q_"+.@q[0]+"[0]"),getarraysize

(getd(".q_"+.@q[0]));
set .@q[2],.@q[1]*.@q[3];
if (!.@q[2] || .@q[2] > 30000) {
	message strcharinfo(0),"You can't purchase that

many "+getitemname(.@q[0])+".";
	end;
}
mes "[Quest Shop]";
mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot

(.@q[0])+"^000000";
mes "Requirements:";
if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]

*.@q[1])+" Zeny^000000";
if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q

[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points

$[0])+"/"+(.@q[5]*.@q[1])+")^000000";
if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set

.@i,.@i+2)
	mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q

[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+"

("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000";
next;
setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q

[0],11);
if (((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512)) &&

@qe[2] > 0)
	set .@preview,1;
addtimer 1000, strnpcinfo(0)+"::OnEnd";
while(1) {
	switch(select(" ~ Purchase ^0055FF"+getitemname

(.@q[0])+"^000000:"+((.@preview && !@qe[6])?" ~

Preview...":"")+": ~ ^777777Cancel^000000")) {
	case 1:
		if (@qe[0]) {
			mes "[Quest Shop]";
			mes "You're missing one or more

quest requirements.";
			close;
		}
		if (!checkweight(.@q[0],.@q[2])) {
			mes "[Quest Shop]";
			mes "^FF0000You need "+(((.@q[2]

*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight

capacity to complete this trade.^000000";
			close;
		}
		if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q

[1]);
		if (.@q[5]) setd .Points$[0], getd

(.Points$[0])-(.@q[5]*.@q[1]);
		if (.@q[6]) for(set .@i,6;

.@i<getarraysize(.@q); set .@i,.@i+2)
			delitem .@q[.@i],.@q[.@i+1]*.@q

[1];
		getitem .@q[0],.@q[2];
		if (.Announce) announce strcharinfo(0)+"

has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An

(getitemname(.@q[0])))+"!",0;
		specialeffect2 699;
		close;
	case 2:
		setarray @qe[3], getlook

(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook

(LOOK_HEAD_MID), 1;
		if (@qe[1] & 1) changelook

LOOK_HEAD_BOTTOM, @qe[2];
		if (@qe[1] & 256) changelook

LOOK_HEAD_TOP, @qe[2];
		if (@qe[1] & 512) changelook

LOOK_HEAD_MID, @qe[2];
		break;
	case 3:
		close;
	}
}

OnEnd:
if (@qe[6]) {
	changelook LOOK_HEAD_BOTTOM, @qe[3];
	changelook LOOK_HEAD_TOP, @qe[4];
	changelook LOOK_HEAD_MID, @qe[5];
}
deletearray @qe[0],7;
end;

function Add {
if (getitemname(getarg(1)) == "null") {
	debugmes "Quest reward #"+getarg(1)+" invalid

(skipped).";
	return;
}
setarray .@j[0],getarg(2),getarg(3),getarg(4);
for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) {
	if (getitemname(getarg(.@i)) == "null") {
		debugmes "Quest requirement #"+getarg

(.@i)+" invalid (skipped).";
		return;
	} else
		setarray .@j[.@i-2],getarg(.@i),getarg

(.@i+1);
}
copyarray getd(".q_"+getarg(1)+"[0]"),.@j

[0],getarraysize(.@j);
npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?

getarg(3):0);
return;
}

function Chk {
if (getarg(0) < getarg(1)) {
	set @qe[0],1;
	return "^FF0000";
} else
	return "^00FF00";
}

function Slot {
set .@s$,getitemname(getarg(0));
switch(.ShowSlot) {
	case 1: if (!getitemslots(getarg(0))) return .@s

$;
	case 2: if (getiteminfo(getarg(0),2) == 4 ||

getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots

(getarg(0))+"]";
	default: return .@s$;
}
}

function A_An {
setarray .@A$[0],"a","e","i","o","u";
set .@B$, "_"+getarg(0);
for(set .@i,0; .@i<5; set .@i,.@i+1)
	if (compare(.@B$,"_"+.@A$[.@i])) return "an

"+getarg(0);
return "a "+getarg(0);
}
}

function	script	qshop	{
deletearray @i[0],getarraysize(@i);
for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
	set @i[.@i],getarg(.@i);
doevent "quest_shop::OnMenu";
end;
}


// Dummy shop data -- copy as needed.
//============================================================
-	shop	qshop1	-1,909:-1
-	shop	qshop2	-1,909:-1
-	shop	qshop3	-1,909:-1
-	shop	qshop4	-1,909:-1
-	shop	qshop5	-1,909:-1

OnPCLoadMapEvent:
getmapxy @m_char$,@x,@y,0;
getmapxy @m_npc$,@x,@y,1,strnpcinfo(0);
if( @m_char$ == @m_npc$ )
 showevent 1,1;
end;
}

// mapflags
saevern	mapflag	loadevent

anyone?

Edited by technoriot01
Posted

you failed because you put the OnPCLoadMapEvent part outside of the script....

and ............

Topic Merged : Please refrain from creating multiple topic for same issues....

Posted

you failed because you put the OnPCLoadMapEvent part outside of the script....

and ............

Topic Merged : Please refrain from creating multiple topic for same issues....

Sorry about that.

where in the script should i put it?

I tried to put it on top of OnMenu:

OnPCLoadMapEvent:
getmapxy @m_char$,@x,@y,0;
getmapxy @m_npc$,@x,@y,1,strnpcinfo(0);
if( @m_char$ == @m_npc$ )
 showevent 1,1;
end;
OnMenu:
set .@size, getarraysize(@i);
if (!.@size) set .@i, select(.menu$);
else if (.@size == 1) set .@i, @i[0];
else {
 for(set .@j,0; .@j<.@size; set .@j,.@j+1)
  set .@menu$, .@menu$+.Shops$[@i
[.@j]]+":";
 set .@i, @i[select(.@menu$)-1];
}

But still not working

Up. Pls help =(

Posted

// Shop NPCs -- supplying no argument displays entire menu.
//	callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};
//============================================================
prontera,164,203,6	script	Quest Shop#1	998,{
callfunc "qshop";

OnPCLoadMapEvent:
if( strcharinfo(3) == strnpcinfo(4) )
	showevent 1,1;
end;
}
prontera	mapflag	loadevent

Thank You /no1

[Problem Solved]

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...