Jump to content

Question

23 answers to this question

Recommended Posts

Posted (edited)

So basically, it's like GM's @goto command?

 

7099,Old_Magic_Circle,Worn-out Magic Scroll,3,773,,10,,,,,,,,,,,,,{ input @warpto$; if(!isloggedin(getcharid(3,@warpto$)) { dispbottom "Player is either offline or doesn't exist."; getitem 7099,1; } atcommand "@goto "+@warpto$; end; },{},{}

 

Script

 

input @warpto$;
if(!isloggedin(getcharid(3,@warpto$))
{
	dispbottom "Player is either offline or doesn't exist.";
	getitem <ID>,1; //If you want to get the item back on input fail.
}
atcommand "@goto "+@warpto$;
end;

 

Haven't tried this yet.

Edited by belphegor
Posted

This line is missing a parenthesis

if(!isloggedin(getcharid(3,@warpto$))

To

if(!isloggedin(getcharid(3,@warpto$)))

 
Make sure you change <ID> to your itemid as well, because I see you haven't done that yet in your error output.
 



belphegor's script might also work as function so you can use it in different cases.
 
7099,Old_Magic_Circle,Worn-out Magic Scroll,3,773,,10,,,,,,,,,,,,,{ input(.@name$); callfunc("warpto_func",.@name$); },{},{}

 

function	script	warpto_func	{
	if(!isloggedin(getcharid(3,getarg(0,""))))
	{
		dispbottom "Player is either offline or doesn't exist.";
		getitem <ID>,1; //If you want to get the item back on input fail.
	} else
		atcommand "@goto "+getarg(0,"");
	end;
}
Posted

can you replace the code?



same error



7099,Old_Magic_Circle,Worn-out Magic Scroll,3,773,,10,,,,,,,,,,,,,{ input @warpto$; if(!isloggedin(getcharid(3,@warpto$)) { dispbottom "Player is either offline or doesn't exist."; getitem 7099,1; } atcommand "@goto "+@warpto$; end; },{},{}

i got error 2e5vb54.jpg

Posted

can you replace the code?

same error

7099,Old_Magic_Circle,Worn-out Magic Scroll,3,773,,10,,,,,,,,,,,,,{ input @warpto$; if(!isloggedin(getcharid(3,@warpto$)) { dispbottom "Player is either offline or doesn't exist."; getitem 7099,1; } atcommand "@goto "+@warpto$; end; },{},{}

i got error 2e5vb54.jpg

Sorry 'bout that missing parenthesis. You could use callfunc command as Skorm said. It's more convenient and easy to manage.

 

Here.

 

7099,Old_Magic_Circle,Worn-out Magic Scroll,3,773,,10,,,,,,,,,,,,,{ input @warpto$; if(!isloggedin(getcharid(3,@warpto$))) { dispbottom "Player is either offline or doesn't exist."; getitem 7099,1; } atcommand "@goto "+@warpto$; end; },{},{}
Posted

Same error

Try this...
7099,Old_Magic_Circle,Worn-out Magic Scroll,0,773,,10,,,,,,,,,,,,,{ input(.@name$); callfunc("warpto_func",.@name$); },{},{}
function	script	warpto_func	{
	if(!isloggedin(getcharid(3,getarg(0,""))))
	{
		dispbottom "Player is either offline or doesn't exist.";
		getitem 7099,1; //If you want to get the item back on input fail.
	} else
		atcommand "@goto "+getarg(0,"");
	end;
}
If this is giving you the same error what revision are you using?
Posted (edited)

function	script	warpto_func	{

i think this is the error BTW um using EA

 

i got error now  the scroll not healing item  i replace to red potion is work
7099 to 501

master can you change the @goto. to Party warp lets say

i have 4 members of my party when i use this id 7099 my party members and me warp to poeple?

Edited by Phantom Of Rogue-Gon
Posted (edited)
function	script	warpto_func	{

	set .@pid,getcharid(1);
	if(!isloggedin(getcharid(3,getarg(0,""))))
	{
		dispbottom "Player is either offline or doesn't exist.";
		getitem 501,1; //If you want to get the item back on input fail.
	} else {
		addrid(2,0,.@pid);
		atcommand "@goto "+getarg(0,"");
	}
	end;
}

Try this.

Edited by belphegor
Posted

If he's using eA addrid won't work.

 

This is a script I made back in eA it has just been sitting in my scripts folder I'm not sure if I ever finished it... You can test... I'll test it further when I get some time...

 

//By Skorm
//guild_vs2,50,50,5	script	Party-Summoner	100,{
-	script	Party-Summoner	-1,{
OnWhisperGlobal:
//if(countitem(7929)<10){ mes "I'm sorry you need 10 "+getitemname(7929)+" to use this npc.";}
mes "Would you like me to summon your party memebers?";
if(select("Yes:No")-1) close;
set $s,0; set $ss,0; set $@sss,0;
deletearray $@partymemberaid[0],128;
getpartymember getcharid(1),2;
//set $@maps$,strcharinfo(3);
getmapxy($@map$,$@x,$@y,0);
attachnpctimer;
startnpctimer;
close2;
L_Recall:
if($s<=$@partymembercount)
	callfunc "PartyWarper",$@map$,$@partymemberaid[$s],$@x,$@y;
end;
OnTimer1000:
OnTimer2000:
OnTimer3000:
OnTimer4000:
OnTimer5000:
OnTimer6000:
OnTimer7000:
OnTimer8000:
OnTimer9000:
set $@sss,1;
//setnpctimer 0; attachnpctimer; startnpctimer;
if($ss==2){ set $s,$s+1; }
if($s>=$@partymembercount){ stopnpctimer; end; }
goto L_Recall;
end;
OnTimer10000:
set $@sss,2;
dispbottom $s;
setnpctimer 0; attachnpctimer; startnpctimer;
if($ss==2){ set $s,$s+1; }
if($s>=$@partymembercount){ stopnpctimer; end; }
goto L_Recall;
end;
OnInit:
set $s,0;
set $ss,0;
}
function	script	PartyWarper	{
detachrid;
attachrid(getarg(1));
if((playerattached())>=1){
	if($@sss==0){
		set $ss,0;
		mes "The party leader has summoned you would you like to join him/her?";
		mes "Make your selection within 10 sec and wait...";
	}
	if($@sss==2) { mes "-Time Out-"; mes "...Disconnecting..."; }
	if(select("Yes:No")-1){
		if($@sss==2) { sleep2 2000; getmapxy(.@map$,.@x,.@y,0); warp(.@map$,.@x,.@y); detachrid; set $@sss,0; set $ss,2; }
	} else if(@menu==1){
		set $ss,2;
	}
	if((playerattached())>=1) warp getarg(0),getarg(2),getarg(3);
}
}
Posted

This is a newer version I just made it should work for eA...

 

//By Skorm eA Version2
-	script	Party-Summoner	-1,{
OnEvent:
	set(.@pid,getcharid(1));
	if(!.@pid){ dispbottom "You're not in a party!"; end; }
	mes ((@arg)?"Would you like to warp you and your party members to a map?":"Would you like to summon your party members?");
	next;
	if(select("Yes:No")-1) close;
	getpartymember getcharid(1),2;
	copyarray(getd(".paid"+.@pid+"[0]"),$@partymemberaid[0],128);
	set(.@len,$@partymembercount);
	if(@arg) {
		mes "Where would you like to warp you and your party members?";
		mes "(All lower-case please!)";
		input(.@map$);
		warp .@map$,0,0;
	}
	
	for(setd(".i"+.@pid,0); getd(".i"+.@pid)<.@len; setd(".i"+.@pid,getd(".i"+.@pid)+1)) {
		set(.pid,.@pid);
		donpcevent "PartyWarp#"+getd(".i"+.@pid)+"::OnStart";
	}
	set(@arg,0);
	close;
}

-	script	PartyWarp#0	-1,{
OnStart:
	set(.@pid,getvariableofnpc(.pid,"Party-Summoner"));
	set(.@i,getvariableofnpc(getd(".i"+.@pid ),"Party-Summoner"));
	set(.@aid,getvariableofnpc(getd(".paid"+.@pid+"["+.@i+"]"),"Party-Summoner"));
	set(.@pl$,rid2name(getpartyleader(.@pid,1)));
	getmapxy(.@map$,.@x,.@y,0,.@pl$);
	attachrid(.@aid);
	if(!playerattached()) end;
	if(.@pl$==strcharinfo(0)) end;
	attachnpctimer;
	startnpctimer;
	specialeffect2(35);
	mes "The party leader has summoned you would you like to join him/her?";
	mes "This link can only be maintained for 60 seconds!";
	if( prompt("Yes:No")==1&&!.@a&&playerattached() ) {
		stopnpctimer;
		specialeffect2(36);
		warp .@map$,.@x,.@y;
	}
	stopnpctimer;
	specialeffect2(73);
	close;
	
OnTimer60000:
	stopnpctimer;
	mes "-Time-Out-";
	mes "...Link Disengage!...";
	specialeffect2(73);
	set(.@a,1);
	close;
}

-	duplicate(PartyWarp#0)	PartyWarp#1	-1
-	duplicate(PartyWarp#0)	PartyWarp#2	-1
-	duplicate(PartyWarp#0)	PartyWarp#3	-1
-	duplicate(PartyWarp#0)	PartyWarp#4	-1
-	duplicate(PartyWarp#0)	PartyWarp#5	-1
-	duplicate(PartyWarp#0)	PartyWarp#6	-1
-	duplicate(PartyWarp#0)	PartyWarp#7	-1
// Add more party member slots like..
// -	duplicate(PartyWarp#0)	PartyWarp#8	-1

 

In the script part of your usable item do...

doevent("Party-Summoner::OnEvent");

 

Alternatively you can warp your entire party to any map of your choice by calling the same script like.

set(@arg,1); doevent("Party-Summoner::OnEvent");
Posted

function	warptomap	{
	mes "Enter Map Name";
	do{
		input .@map$;
	}while( getmapusers( .@map$ ) < 0 );
	set .@party_id,getcharid(1);
	if( .@party_id ){
		warpparty .@map$,0,0,.@party_id;
	}else{
		warp .@map$,0,0;
	}
	return;
}

 and item db

,,,,,,{ callfunc "warptomap" },{},{}

error

2epjbed.jpg

//By Skorm eA Version2
-	script	Party-Summoner	-1,{
OnEvent:
	set(.@pid,getcharid(1));
	if(!.@pid){ dispbottom "You're not in a party!"; end; }
	mes ((@arg)?"Would you like to warp you and your party members to a map?":"Would you like to summon your party members?");
	next;
	if(select("Yes:No")-1) close;
	getpartymember getcharid(1),2;
	copyarray(getd(".paid"+.@pid+"[0]"),$@partymemberaid[0],128);
	set(.@len,$@partymembercount);
	if(@arg) {
		mes "Where would you like to warp you and your party members?";
		mes "(All lower-case please!)";
		input(.@map$);
		warp .@map$,0,0;
	}
	
	for(setd(".i"+.@pid,0); getd(".i"+.@pid)<.@len; setd(".i"+.@pid,getd(".i"+.@pid)+1)) {
		set(.pid,.@pid);
		donpcevent "PartyWarp#"+getd(".i"+.@pid)+"::OnStart";
	}
	set(@arg,0);
	close;
}

-	script	PartyWarp#0	-1,{
OnStart:
	set(.@pid,getvariableofnpc(.pid,"Party-Summoner"));
	set(.@i,getvariableofnpc(getd(".i"+.@pid ),"Party-Summoner"));
	set(.@aid,getvariableofnpc(getd(".paid"+.@pid+"["+.@i+"]"),"Party-Summoner"));
	set(.@pl$,rid2name(getpartyleader(.@pid,1)));
	getmapxy(.@map$,.@x,.@y,0,.@pl$);
	attachrid(.@aid);
	if(!playerattached()) end;
	if(.@pl$==strcharinfo(0)) end;
	attachnpctimer;
	startnpctimer;
	specialeffect2(35);
	mes "The party leader has summoned you would you like to join him/her?";
	mes "This link can only be maintained for 60 seconds!";
	if( prompt("Yes:No")==1&&!.@a&&playerattached() ) {
		stopnpctimer;
		specialeffect2(36);
		warp .@map$,.@x,.@y;
	}
	stopnpctimer;
	specialeffect2(73);
	close;
	
OnTimer60000:
	stopnpctimer;
	mes "-Time-Out-";
	mes "...Link Disengage!...";
	specialeffect2(73);
	set(.@a,1);
	close;
}

-	duplicate(PartyWarp#0)	PartyWarp#1	-1
-	duplicate(PartyWarp#0)	PartyWarp#2	-1
-	duplicate(PartyWarp#0)	PartyWarp#3	-1
-	duplicate(PartyWarp#0)	PartyWarp#4	-1
-	duplicate(PartyWarp#0)	PartyWarp#5	-1
-	duplicate(PartyWarp#0)	PartyWarp#6	-1
-	duplicate(PartyWarp#0)	PartyWarp#7	-1
// Add more party member slots like..
// -	duplicate(PartyWarp#0)	PartyWarp#8	-1

 item db

{ doevent("Party-Summoner::OnEvent"); },{},{}

or

{set(@arg,1); doevent("Party-Summoner::OnEvent");},{},{}

i try but not working

Posted

i try do edit your script master



function	script	warptomap_func	{
	mes "Enter Map Name";
	do{
		input .@map$;
	
	}while( getmapusers( .@map$ ) < 0 );
	set .@party_id,getcharid(1);
	if( .@party_id ){
		warpparty .@map$,0,0,.@party_id;
	}else{
		warp .@map$,;
	}
	return;
}

 is work but all my party member ramdom position???? in one map can change to 1 position where we are master

Posted

Mine does that already :/ You're going to have to tell me if you get any errors the script is tested and works perfectly on my server. Try applying the event and variable to a usable item like red potion.

 

I feel you're using it incorrectly and there is nothing I can do about this. Unless you provide information regarding your problem...

 

Edit--

Tested my script is working on eAthena I'm not sure what you're doing wrong.

 

Seriously state your emulator first in any request to save us all from a big headache and a waste of our time.

Literally every version I posted works to some extent on it's own respective emulator...

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