Jump to content
  • 0
hannicaldummy

Guild instance

Question

Hello!

I'm trying to create a guild base instanced so only guild members can walk in the map, i was able to make the NPC create the instance, but i can't enter it anyway, algo i take off the TimeLimit from instance_db so the guild instance can run forever, is how it works or i need to do something diferent do this guild instance runs forever?

NPC:

brasilis,167,140,6	script	Valquíria	811,{

	set .ns$,"^00B2EE["+strnpcinfo(1)+"]^000000";
	[email protected]$ = "3rd_ab_valkyrie";
	[email protected]_id = getcharid(2);
	[email protected]$ = "Base do Cla";

	if (instance_live_info(ILI_NAME, instance_id(IM_GUILD)) == [email protected]$) {
		mes .ns$;
		mes (gettime(3)>= 6&&gettime(3)<= 12?"Bom dia":(gettime(3)>=13&&gettime(3)<=18?"Boa tarde":"Boa noite"))+", ^FFA500"+strcharinfo(0)+"^000000! Eu sou a guardiã das Honras dos clãs, em que posso te ajudar?";
		cutin [email protected]$, 2;
		next;
		switch(select("^008000[»]^000000 Ir para a base:^3CB371[»]^000000 Sobre a base:^ff0000[»]^000000 Sair")) {
	case 1:
			next;
		if (getskilllv("GD_POINT") != 1) {
			mes .ns$;
			mes "Seu clã precisa ter a habilidade ^7001E2Autorização Base Oficial^000000 para poder ir até lá.";
				cutin "", 255;
				close;
		} else {
				switch(instance_enter("Base do Cla", ))) {
				case 3:
						mes .ns$;
						mes "Ocorreu ou erro desconhecido.";
						cutin "", 255;
					close;
				case 2:
						mes .ns$;
						mes "A base do seu clã ainda não existe.";
						cutin "", 255;
					close;
				case 1:
						mes .ns$;
						mes "Seu clã ainda não possui uma base.";
						cutin "", 255;
					close;
				case 0:
						mapannounce "guild_point", strcharinfo(0) +" está entrando na base do seu clã.",bc_map,"0x00ff99",FW_NORMAL,12;
						cutin "", 255;
					end;
				}
			}
	Case 2:
			next;
				mes .ns$;
				mes "Estas são as informações básicas sobre mim, caso tenha alguma dúvida volte com um clã e em sua base você terá mais informações.";
			next;
				cutin "", 255;
			close;

	Case 3: 
			next;
				mes .ns$;
				mes "Caso precise de algo estarei por aqui.";
			next;
				cutin "", 255;
				emotion ET_CRY;
			close;
		}
	} else {
		mes .ns$;
		mes (gettime(3)>= 6&&gettime(3)<= 12?"Bom dia":(gettime(3)>=13&&gettime(3)<=18?"Boa tarde":"Boa noite"))+", ^FFA500"+strcharinfo(0)+"^000000! Eu sou a guardiã das Honras dos clãs, em que posso te ajudar?";
			cutin [email protected]$, 2;
			next;
		switch(select("^3CB371[»]^000000 Contratar uma base:^ff0000[»]^000000 Sair")) {

	case 1:
			next;
				mes .ns$;
				mes "Certo, deixe-me checar uma coisa antes...";
			next;
				if (strcharinfo(0) != getguildmaster([email protected]_id)) {
					mes .ns$;
					mes "Apenas o líder do seu clã pode falar comigo.";
					cutin "", 255;
					close;
				} else {
			next;
				mes .ns$;
				mes "Perfeito, você é o líder do clã.";
			next;
				mes .ns$;
				mes "Você está interessado em ter sua própria base?";
				switch(select("^3CB371[»]^000000 Contratar uma base:^ff0000[»]^000000 Sair")) {
			next;
				case 1:
					if (Zeny < 100000000) {
					mes .ns$;
					mes "Hahahah, é uma pena, apenas aqueles que provarem seu valor terão acesso à uma Base, procure ficar um pouco mais rico para falar comigo novamente.";
					cutin "",255;
					end;
					}
				Zeny -= 100000000;
					[email protected] = instance_create([email protected]$, IM_GUILD);
					if ([email protected] < 0) {
					mes .ns$;
						switch ([email protected]) {
							case -1: mes "ERRO: Tipo inválido."; break;
							case -2: mes "ERRO: Clã não encontrado."; break;
							case -3: mes "ERRO: Clã já possuí uma base."; break;
							case -4: mes "ERRO: Erro desconhecido."; break;
						}
						mes " ";
						mes "A contratação da Base ^FF0000falhou^000000.";
						emotion ET_HUK;
				cutin "", 255;
						close;
					}
						mes .ns$;
						mes "Base criada.";
						mes " ";
						mes "Fale comigo novamente para visitar sua base.";
						announce "Uma base acaba de ser criada para o clã "+strcharinfo(2),0;
					next;
					break;
				case 2:
					mes .ns$;
					mes "Caso precise de algo estarei por aqui.";
				next;
					cutin "", 255;
				close;
				}
			}
	case 2:
				mes .ns$;
				mes "Caso precise de algo estarei por aqui.";
			next;
				cutin "", 255;
			close;
		}
	}
			close;
}

instance_db

  - Id: 102
    Name: Base do Cla
    Enter:
      Map: guild_point
      X: 170
      Y: 35

 

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
Posted (edited)
*instance_enter("<instance name>",{<x>,<y>,<char_id>,<instance id>});

Warps the attached player to the specified <instance id>. If no ID is specified,
the IM_PARTY instance the invoking player is attached to is used.

you need to fill the instance id parameter to enter in the other type of instance than party.

The instance without timer is currently not supported but you may use this pull request https://github.com/rathena/rathena/pull/5112

Edited by Capuche
Link to comment
Share on other sites

  • 0
On 5/26/2021 at 10:24 AM, Capuche said:
*instance_enter("<instance name>",{<x>,<y>,<char_id>,<instance id>});

Warps the attached player to the specified <instance id>. If no ID is specified,
the IM_PARTY instance the invoking player is attached to is used.

you need to fill the instance id parameter to enter in the other type of instance than party.

The instance without timer is currently not supported but you may use this pull request https://github.com/rathena/rathena/pull/5112

Sorry for the late!

 

I've already changed the mode as in the script posted, nothing yet, if i change to IM_PARTY it work, but IM_GUILD doesnt 😕

Link to comment
Share on other sites

  • 0
Posted (edited)

Post your instance_enter line here we will see what's going on

Edited by Capuche
  • Upvote 1
Link to comment
Share on other sites

  • 0

Here:

    switch(instance_enter( .@instance$, 170, 36, .@char_id, 102)) {

Full script:

brasilis,167,140,6	script	Valquíria	811,{

	set [email protected]$,"^00B2EE["+strnpcinfo(1)+"]^000000";
	[email protected]$ = "3rd_ab_valkyrie";
	[email protected]_id = getcharid(2);
	[email protected]$ = "Base do Cla";

		if (strcharinfo(0) != getguildmaster([email protected]_id)) {
		mes [email protected]$;
		mes "Você gostaria de alugar uma sala pessoal para o uso de Galhos Secos e Sangrentos?";
		mes "Lembre-se que todos os monstros e itens deixados no mapa serão apagados após 2 horas, e o valor para utilização neste tempo é de 100k(100.000z).";
			next;
			switch(select("^3CB371[»]^000000 Alugar uma sala:^3CB371[»]^000000 Entrar na sala:^ff0000[»]^000000 Cancelar")) {
			case 1:
				if (Zeny < 100000) { 
				mes [email protected]$;
				mes "Hahahah, você acha que sou idiota? Você não tem dinheiro.";
				cutin "",255;
				end;
				}
				if (instance_create([email protected]$, IM_GUILD) < 0) {
					mes "Lìder do grupo: "+strcharinfo(0);
					mes "^0000ff"[email protected]$+" ^000000- Reserva falhou!";
					close;
				}
				Zeny -= 100000;
				mes [email protected]$;
				mes "Fale comigo novamente para entrar na sua sala pessoal.";
				close;
			case 2:
				callsub L_Enter,0,1;
			case 3:
			mes [email protected]$;
			mes "Então tenha um bom dia e pare de me encher o saco.";
				close;
			}
		}
		mes [email protected]$;
		mes "Você não pode entrar em uma sala pois o líder do seu grupo ainda não a reservou.";
		next;
		switch(select("^3CB371[»]^000000 Entrar na sala:^ff0000[»]^000000 Cancelar")) {
		case 1:
			callsub L_Enter,1,1;
		case 2:
			mes [email protected]$;
			mes "Então tenha um bom dia e pare de me encher o saco.";
			end;
		}
		
L_Enter:
	set [email protected]_id,getcharid(0);
	[email protected]$ = "^00B2EE["+strnpcinfo(1)+"]^000000";
	[email protected]$ = "3rd_ab_valkyrie";
	[email protected]_id = getcharid(2);
	[email protected]$ = "Base do Cla";
	
	switch(instance_enter( [email protected]$, 170, 36, [email protected]_id, 102)) {
	case 3:
		mes [email protected]$;
		mes "Você não está em um grupo.";
		close;
	case 2:
			mes [email protected]$;
		mes "Sua sala privada para o uso de Galhos Secos e Sangrentos não está confirmada.";
		mes "O líder do grupo não pagou a taxa.";
		close;
	case 1:
			mes [email protected]$;
		mes "Você pode entrar na sala após a criação de um grupo.";
		close;
	case 0:
//		mapannounce "prontera", strcharinfo(0)+" do grupo, "[email protected]_name$+",entrou na sala.",bc_map,"0x00ff99",FW_NORMAL,12;
		end;
	}
}

 

Workeeeeeeed!!!!

Thank you so muuuch! 😄

Link to comment
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.   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.



×
×
  • Create New...

Important Information

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