Jump to content

Question

morocc,155,99,4	script	party_dungeon_warper	96,{	.@nom$ = "["+strnpcinfo(0)+"]";	mes .@nom$;	mes "Hello there, I'm in charge of managing the entrance to "+.dungeon_name$+".";	next;	mes .@nom$;	mes "I can only give access to a party of ^0000ff"+.min_party_size+" players or more^000000.";	mes "Only the ^0000ffparty leader^000000 can ask for the entrance access.";	mes "";	mes "^ff0000It costs "+.amount+" "+getitemname(.item)+" to reserve an access.^000000";	next;	mes .@nom$;	if (.Dungeon) { //someone is in the dungeon		mes "A group of "+.PlayerCount+" players has currently access to the dungeon";		mes .AlivePlayerCount+" of them are still alive";		mes "^0000ff"+.WaitingCount+"^000000 group(s) are waiting for the entrance access.";	}	else mes "No one is currently in the dungeon.";	mes "";	mes "What do you want to do?";	getpartymember getcharid(1),1 ; getpartymember getcharid(1),2;	for ( .@i = 0; .@i < $@partymembercount; .@i++ )		if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) )			.@count_online++;	.@DungeonReserved = 0;	for (.@i = 0 ; .@i < getarraysize(.PartyIDs) ; .@i++)		if (getcharid(1) == .PartyIDs[.@i])			.@DungeonReserved = 1;	switch(select("Enter the dungeon:Reserve access:Leave")) { next ; mes .@nom$;	case 1:	if (!.@DungeonReserved) { //the dugeon isn't reserved yet		mes "You didn't reserve access yet.";		mes "Please reserve access before entering the dungeon.";		close;	}	else if (.PartyIDs[0] != getcharid(1)) { //dungeon reserved but in the waiting room		mes "You are in the waiting list sir, you cannot enter the dungeon yet.";		mes "Your position in the waiting list : ^0000ff"+callsub(S_Position,getcharid(1))+"^000000.";		mes "You will be informed when you can enter the dungeon.";		close;	}	else if (@dungeon == 0) { //player already died in the dungeon		mes "You already died in the dungeon and so cannot enter it again.";		close;	}	else if (@warped == 1) { //player warped out of the dungeon		mes "You warped out of the dungeon and so cannot enter it again.";		close;	}	@warped = 1;	.PlayerCount = .@count_online;	.EnteredPlayers++ ; .AlivePlayerCount++;	warp .warpzone$,.warpx,.warpy;	end;		case 2:	if (.@DungeonReserved) { //has already reserved access		mes "You already reserved access to the dungeon.";		mes "Your position in the waiting list : ^0000ff"+callsub (S_Position,getcharid(1))+"^000000.";		if (callsub (S_Position,getcharid(1))) mes "You will be informed when you can enter the dungeon.";		close;	}	else if (.@count_online < .min_party_size) { //not enough players online or not in a party		mes "You need a party of "+.min_party_size+" players online to reserve the dungeon.";		close;	}	else if (getpartyleader(getcharid(1),1) != getcharid(3)) { //not party leader		mes "Only the party leader can reserve access to the dungeon.";		close;	}	else if (getarraysize(.PartyIDs)) { //people already waiting		setarray .PartyIDs[getarraysize(.PartyIDs)] , getcharid(1);		mes "You successfully reserved the entrance.";		mes "Your position in the waiting list : ^0000ff"+callsub (S_Position,getcharid(1))+"^000000.";		mes "You will be informed when you can enter the dungeon.";		close;	}	if (countitem(.item) < .amount) {		mes "You don't have "+.amount+" "+getitemname(.item)+".";		mes "^ff0000It costs "+.amount+" "+getitemname(.item)+" to reserve an access.^000000";		close;	}	delitem .item,.amount;	.Dungeon = 1;	setarray .PartyIDs[0] , getcharid(1);	mes "^ff0000You can now enter the dungeon.^000000";	mes "If none of the party members enter the dungeon before "+.delay+" minutes, the dungeon will be automatically closed.";	initnpctimer ; .TimeDelay = 0;	addrid(2,0,.PartyIDs[0]) ; @dungeon = 1 ; @warped = 0;	end;		case 3:	end;	}OnTimer300000:	.TimeDelay = 1;	if (.AlivePlayerCount == 0) callsub S_NextParty;	end;S_Position:	for (.@i = 0 ; .@i < getarraysize(.PartyIDs) ; .@i++) if (.PartyIDs[.@i] == getarg(0)) .@j = .@i;	return .@j;S_CheckCount:	debugmes "checkcount";	if (.AlivePlayerCount == 0 /*|| (.Delay && .AlivePlayerCount == .EnteredPlayers)*/) callsub S_NextParty;	return;S_NextParty:	addrid(2,0,.PartyIDs[0]);	announce "Everyone is dead, you lost access to the dungeon.";	deletearray .PartyIDs[0],1;	if (.PartyIDs[0]) {		detachrid ; addrid(2,0,.PartyIDs[0]);		announce "Your party can now enter the dungeon.",bc_self;		announce "Please enter it before a "+.delay+" minutes delay, else you will loose access.",bc_self;		initnpctimer;		.TimeDelay = 0;	}	end;	OnPCDieEvent:	getmapxy(.@map$,.@x,.@y,0);	if (.@map$ == .warpzone$) @dungeon = 0 ; .AlivePlayerCount -= 1 ; warp .exitzone$,.exitx,.exity ; callsub S_CheckCount;	end;	OnPCLogoutEvent: //if player logs out in the dungeon, he's counted as dead	getmapxy(.@map$,.@x,.@y,0);	if (.@map$ == .warpzone$) @dungeon = 0 ; .AlivePlayerCount -= 1 ; callsub S_CheckCount;	end;OnPCLoginEvent: //if player logs in in the dungeon, he's warped out of it	getmapxy(.@map$,.@x,.@y,0);	if (.@map$ == .warpzone$) warp .exitzone$,.exitx,.exity;	end;	OnInit://===============================set this up==========================================	.dungeon_name$ = "the Fire dungeon";	.item = 671; //item required (gold coin)	.amount = 1; //amount required	.min_party_size = 1; //minimum amount of players needed to enter the dungeon	.delay = 5; //delay after wich dungeon is closed if all the players in it are dead	.warpzone$ = "mus_arena01" ; .warpx = 62 ; .warpy = 48; //entrance warp coordinates	.exitzone$ = "mus_arena03" ; .exitx = 116 ; .exity = 193; //exit coordinates//=============================end of user setup======================================	mapwarp .warpzone$,.exitzone$,.exitx,.exity;	.Dungeon = .PlayerCount = .AlivePlayerCount = .WaitingCount = 0;	setarray .PartyIDs[0],0;}

The Npc cant click

Share this post


Link to post
Share on other sites

13 answers to this question

Recommended Posts

  • 0

Did you insert the <tab>'s ???

 

 

instead of <space bar> you should use <tab> in here:

 

morocc,155,99,4<tab>script<tab>party_dungeon_warper<tab>96,{

If, have already, please send a screenshot from the map log

Share this post


Link to post
Share on other sites
  • 0

Did you insert the <tab>'s ???

 

 

instead of <space bar> you should use <tab> in here:

 

morocc,155,99,4<tab>script<tab>party_dungeon_warper<tab>96,{

If, have already, please send a screenshot from the map log

error.png

Share this post


Link to post
Share on other sites
  • 0

 

Did you insert the <tab>'s ???

 

 

instead of <space bar> you should use <tab> in here:

 

morocc,155,99,4<tab>script<tab>party_dungeon_warper<tab>96,{

If, have already, please send a screenshot from the map log

error.png

Try this way:

morocc,155,99,4	script	party_dungeon_warper	96,{	set .@nom$,"["+strnpcinfo(0)+"]";	mes .@nom$;	mes "Hello there, I'm in charge of managing the entrance to "+.dungeon_name$+".";	next;	mes .@nom$;	mes "I can only give access to a party of ^0000ff"+.min_party_size+" players or more^000000.";	mes "Only the ^0000ffparty leader^000000 can ask for the entrance access.";	mes "";	mes "^ff0000It costs "+.amount+" "+getitemname(.item)+" to reserve an access.^000000";	next;	mes .@nom$;	if (.Dungeon) { //someone is in the dungeon		mes "A group of "+.PlayerCount+" players has currently access to the dungeon";		mes .AlivePlayerCount+" of them are still alive";		mes "^0000ff"+.WaitingCount+"^000000 group(s) are waiting for the entrance access.";	}	else mes "No one is currently in the dungeon.";	mes "";	mes "What do you want to do?";	getpartymember getcharid(1),1 ; getpartymember getcharid(1),2;	for ( .@i = 0; .@i < $@partymembercount; .@i++ )		if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) )			.@count_online++;	set .@DungeonReserved,0;	for (.@i = 0 ; .@i < getarraysize(.PartyIDs) ; .@i++)		if (getcharid(1) == .PartyIDs[.@i])			.@DungeonReserved = 1;	switch(select("Enter the dungeon:Reserve access:Leave")) { next ; mes .@nom$; 	case 1:	if (!.@DungeonReserved) { //the dugeon isn't reserved yet		mes "You didn't reserve access yet.";		mes "Please reserve access before entering the dungeon.";		close;	}	else if (.PartyIDs[0] != getcharid(1)) { //dungeon reserved but in the waiting room		mes "You are in the waiting list sir, you cannot enter the dungeon yet.";		mes "Your position in the waiting list : ^0000ff"+callsub(S_Position,getcharid(1))+"^000000.";		mes "You will be informed when you can enter the dungeon.";		close;	}	else if (@dungeon == 0) { //player already died in the dungeon		mes "You already died in the dungeon and so cannot enter it again.";		close;	}	else if (@warped == 1) { //player warped out of the dungeon		mes "You warped out of the dungeon and so cannot enter it again.";		close;	}	set @warped,1;	set .PlayerCount,.@count_online;	.EnteredPlayers++ ; .AlivePlayerCount++;	warp .warpzone$,.warpx,.warpy;	end;		case 2:	if (.@DungeonReserved) { //has already reserved access		mes "You already reserved access to the dungeon.";		mes "Your position in the waiting list : ^0000ff"+callsub (S_Position,getcharid(1))+"^000000.";		if (callsub (S_Position,getcharid(1))) mes "You will be informed when you can enter the dungeon.";		close;	}	else if (.@count_online < .min_party_size) { //not enough players online or not in a party		mes "You need a party of "+.min_party_size+" players online to reserve the dungeon.";		close;	}	else if (getpartyleader(getcharid(1),1) != getcharid(3)) { //not party leader		mes "Only the party leader can reserve access to the dungeon.";		close;	}	else if (getarraysize(.PartyIDs)) { //people already waiting		setarray .PartyIDs[getarraysize(.PartyIDs)] , getcharid(1);		mes "You successfully reserved the entrance.";		mes "Your position in the waiting list : ^0000ff"+callsub (S_Position,getcharid(1))+"^000000.";		mes "You will be informed when you can enter the dungeon.";		close;	}	if (countitem(.item) < .amount) {		mes "You don't have "+.amount+" "+getitemname(.item)+".";		mes "^ff0000It costs "+.amount+" "+getitemname(.item)+" to reserve an access.^000000";		close;	}	delitem .item,.amount;	set .Dungeon,1;	setarray .PartyIDs[0] , getcharid(1);	mes "^ff0000You can now enter the dungeon.^000000";	mes "If none of the party members enter the dungeon before "+.delay+" minutes, the dungeon will be automatically closed.";	initnpctimer ; .TimeDelay = 0;	addrid(2,0,.PartyIDs[0]) ; @dungeon = 1 ; @warped = 0;	end;		case 3:	end;	} OnTimer300000:	set .TimeDelay,1;	if (.AlivePlayerCount == 0) callsub S_NextParty;	end; S_Position:	for (.@i = 0 ; .@i < getarraysize(.PartyIDs) ; .@i++) if (.PartyIDs[.@i] == getarg(0)) .@j = .@i;	return .@j; S_CheckCount:	debugmes "checkcount";	if (.AlivePlayerCount == 0 /*|| (.Delay && .AlivePlayerCount == .EnteredPlayers)*/) callsub S_NextParty;	return; S_NextParty:	addrid(2,0,.PartyIDs[0]);	announce "Everyone is dead, you lost access to the dungeon.";	deletearray .PartyIDs[0],1;	if (.PartyIDs[0]) {		detachrid ; addrid(2,0,.PartyIDs[0]);		announce "Your party can now enter the dungeon.",bc_self;		announce "Please enter it before a "+.delay+" minutes delay, else you will loose access.",bc_self;		initnpctimer;		.TimeDelay = 0;	}	end;	OnPCDieEvent:	getmapxy(.@map$,.@x,.@y,0);	if (.@map$ == .warpzone$) @dungeon = 0 ; .AlivePlayerCount -= 1 ; warp .exitzone$,.exitx,.exity ; callsub S_CheckCount;	end;	OnPCLogoutEvent: //if player logs out in the dungeon, he's counted as dead	getmapxy(.@map$,.@x,.@y,0);	if (.@map$ == .warpzone$) @dungeon = 0 ; .AlivePlayerCount -= 1 ; callsub S_CheckCount;	end; OnPCLoginEvent: //if player logs in in the dungeon, he's warped out of it	getmapxy(.@map$,.@x,.@y,0);	if (.@map$ == .warpzone$) warp .exitzone$,.exitx,.exity;	end;	OnInit://===============================set this up==========================================	set .dungeon_name$,"the Fire dungeon";	set .item,671; //item required (gold coin)	set .amount,1; //amount required	set .min_party_size,1; //minimum amount of players needed to enter the dungeon	set .delay,5; //delay after wich dungeon is closed if all the players in it are dead	set .warpzone$,"mus_arena01" ; set .warpx,62 ; set .warpy,48; //entrance warp coordinates	.exitzone$ = "mus_arena03" ; .exitx = 116 ; .exity = 193; //exit coordinates//=============================end of user setup======================================	mapwarp .warpzone$,.exitzone$,.exitx,.exity;	.Dungeon = .PlayerCount = .AlivePlayerCount = .WaitingCount = 0;	setarray .PartyIDs[0],0;}
Edited by RodRich

Share this post


Link to post
Share on other sites
  • 0

 

 

Did you insert the <tab>'s ???

 

 

instead of <space bar> you should use <tab> in here:

 

morocc,155,99,4<tab>script<tab>party_dungeon_warper<tab>96,{

If, have already, please send a screenshot from the map log

error.png

Try this way:

morocc,155,99,4	script	party_dungeon_warper	96,{	set .@nom$,"["+strnpcinfo(0)+"]";	mes .@nom$;	mes "Hello there, I'm in charge of managing the entrance to "+.dungeon_name$+".";	next;	mes .@nom$;	mes "I can only give access to a party of ^0000ff"+.min_party_size+" players or more^000000.";	mes "Only the ^0000ffparty leader^000000 can ask for the entrance access.";	mes "";	mes "^ff0000It costs "+.amount+" "+getitemname(.item)+" to reserve an access.^000000";	next;	mes .@nom$;	if (.Dungeon) { //someone is in the dungeon		mes "A group of "+.PlayerCount+" players has currently access to the dungeon";		mes .AlivePlayerCount+" of them are still alive";		mes "^0000ff"+.WaitingCount+"^000000 group(s) are waiting for the entrance access.";	}	else mes "No one is currently in the dungeon.";	mes "";	mes "What do you want to do?";	getpartymember getcharid(1),1 ; getpartymember getcharid(1),2;	for ( .@i = 0; .@i < $@partymembercount; .@i++ )		if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) )			.@count_online++;	set .@DungeonReserved,0;	for (.@i = 0 ; .@i < getarraysize(.PartyIDs) ; .@i++)		if (getcharid(1) == .PartyIDs[.@i])			.@DungeonReserved = 1;	switch(select("Enter the dungeon:Reserve access:Leave")) { next ; mes .@nom$; 	case 1:	if (!.@DungeonReserved) { //the dugeon isn't reserved yet		mes "You didn't reserve access yet.";		mes "Please reserve access before entering the dungeon.";		close;	}	else if (.PartyIDs[0] != getcharid(1)) { //dungeon reserved but in the waiting room		mes "You are in the waiting list sir, you cannot enter the dungeon yet.";		mes "Your position in the waiting list : ^0000ff"+callsub(S_Position,getcharid(1))+"^000000.";		mes "You will be informed when you can enter the dungeon.";		close;	}	else if (@dungeon == 0) { //player already died in the dungeon		mes "You already died in the dungeon and so cannot enter it again.";		close;	}	else if (@warped == 1) { //player warped out of the dungeon		mes "You warped out of the dungeon and so cannot enter it again.";		close;	}	set @warped,1;	set .PlayerCount,.@count_online;	.EnteredPlayers++ ; .AlivePlayerCount++;	warp .warpzone$,.warpx,.warpy;	end;		case 2:	if (.@DungeonReserved) { //has already reserved access		mes "You already reserved access to the dungeon.";		mes "Your position in the waiting list : ^0000ff"+callsub (S_Position,getcharid(1))+"^000000.";		if (callsub (S_Position,getcharid(1))) mes "You will be informed when you can enter the dungeon.";		close;	}	else if (.@count_online < .min_party_size) { //not enough players online or not in a party		mes "You need a party of "+.min_party_size+" players online to reserve the dungeon.";		close;	}	else if (getpartyleader(getcharid(1),1) != getcharid(3)) { //not party leader		mes "Only the party leader can reserve access to the dungeon.";		close;	}	else if (getarraysize(.PartyIDs)) { //people already waiting		setarray .PartyIDs[getarraysize(.PartyIDs)] , getcharid(1);		mes "You successfully reserved the entrance.";		mes "Your position in the waiting list : ^0000ff"+callsub (S_Position,getcharid(1))+"^000000.";		mes "You will be informed when you can enter the dungeon.";		close;	}	if (countitem(.item) < .amount) {		mes "You don't have "+.amount+" "+getitemname(.item)+".";		mes "^ff0000It costs "+.amount+" "+getitemname(.item)+" to reserve an access.^000000";		close;	}	delitem .item,.amount;	set .Dungeon,1;	setarray .PartyIDs[0] , getcharid(1);	mes "^ff0000You can now enter the dungeon.^000000";	mes "If none of the party members enter the dungeon before "+.delay+" minutes, the dungeon will be automatically closed.";	initnpctimer ; .TimeDelay = 0;	addrid(2,0,.PartyIDs[0]) ; @dungeon = 1 ; @warped = 0;	end;		case 3:	end;	} OnTimer300000:	set .TimeDelay,1;	if (.AlivePlayerCount == 0) callsub S_NextParty;	end; S_Position:	for (.@i = 0 ; .@i < getarraysize(.PartyIDs) ; .@i++) if (.PartyIDs[.@i] == getarg(0)) .@j = .@i;	return .@j; S_CheckCount:	debugmes "checkcount";	if (.AlivePlayerCount == 0 /*|| (.Delay && .AlivePlayerCount == .EnteredPlayers)*/) callsub S_NextParty;	return; S_NextParty:	addrid(2,0,.PartyIDs[0]);	announce "Everyone is dead, you lost access to the dungeon.";	deletearray .PartyIDs[0],1;	if (.PartyIDs[0]) {		detachrid ; addrid(2,0,.PartyIDs[0]);		announce "Your party can now enter the dungeon.",bc_self;		announce "Please enter it before a "+.delay+" minutes delay, else you will loose access.",bc_self;		initnpctimer;		.TimeDelay = 0;	}	end;	OnPCDieEvent:	getmapxy(.@map$,.@x,.@y,0);	if (.@map$ == .warpzone$) @dungeon = 0 ; .AlivePlayerCount -= 1 ; warp .exitzone$,.exitx,.exity ; callsub S_CheckCount;	end;	OnPCLogoutEvent: //if player logs out in the dungeon, he's counted as dead	getmapxy(.@map$,.@x,.@y,0);	if (.@map$ == .warpzone$) @dungeon = 0 ; .AlivePlayerCount -= 1 ; callsub S_CheckCount;	end; OnPCLoginEvent: //if player logs in in the dungeon, he's warped out of it	getmapxy(.@map$,.@x,.@y,0);	if (.@map$ == .warpzone$) warp .exitzone$,.exitx,.exity;	end;	OnInit://===============================set this up==========================================	set .dungeon_name$,"the Fire dungeon";	set .item,671; //item required (gold coin)	set .amount,1; //amount required	set .min_party_size,1; //minimum amount of players needed to enter the dungeon	set .delay,5; //delay after wich dungeon is closed if all the players in it are dead	set .warpzone$,"mus_arena01" ; set .warpx,62 ; set .warpy,48; //entrance warp coordinates	.exitzone$ = "mus_arena03" ; .exitx = 116 ; .exity = 193; //exit coordinates//=============================end of user setup======================================	mapwarp .warpzone$,.exitzone$,.exitx,.exity;	.Dungeon = .PlayerCount = .AlivePlayerCount = .WaitingCount = 0;	setarray .PartyIDs[0],0;}

stil same , i think it's that 3ceam  im using dont support it ...

Share this post


Link to post
Share on other sites
  • 0

 

 stil same , i think it's that 3ceam  im using dont support it ...

 

 

I guess the error could have changed in the log!! Could you send another ss

 

I think I already where is it!!

Share this post


Link to post
Share on other sites
  • 0

 

 

 stil same , i think it's that 3ceam  im using dont support it ...

 

 

I guess the error could have changed in the log!! Could you send another ss

 

I think I already where is it!!

Line 22

 

	for ( .@i = 0; .@i < $@partymembercount; .@i++ )

Share this post


Link to post
Share on other sites
  • 0

 

 

change to

 

for (set .@i,0; .@i < $@partymembercount; .@i++ ){

still error on line 22

 

Could you show me that??

Share this post


Link to post
Share on other sites
  • 0

to define a variable in 3ceam you'll need to use set. [varname] = [value]; won't work on 3ceam. Check your script and replace all these lines with set [varname],[value];

Edited by 15peaces

Share this post


Link to post
Share on other sites

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

  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.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.