Ir para conteúdo
  • Cadastre-se
  • 0
Zourtswark

Torre sem fim

Pergunta

Estou começando a aprender um pouco de script e queria por na hora de gerar o calabouço da torre para cobrar 100kk e conseguir. 

Porém depois de criada eu clique pra criar novamente ela está cobrando os mesmos 100kk, queria por uma checagem pra o player não conseguir clicar na opção novamente caso ele esteja com o calabouço gerado. 

Obs: Minha torre não tem tempo para entrar, pois adicionei uma quantia alta e tirei o delay.

 

switch(select("Gerar Calabouço da "+.@md_name$+":Entrar no Calabouço:Retornar para Alberta:Cancelar")) {
            case 1:
                }
                mes "Para criar o calabouço você precisa de 100.000.000 zeny";
                next;
                
                if (Zeny < 100000000){
                    mes "Sinto muito mas você não tem 100.000.000 de zeny!";
                    close;
                }
                
                set Zeny,Zeny - 100000000;
                mes "Muito Bem, podem prosseguir e boa sorte!";
                    close2;
                .@instance = instance_create(.@md_name$,.@party_id);
                if (.@instance < 0) {
                    mes "Nome do grupo: "+.@p_name$;
                    mes "Líder do grupo: "+strcharinfo(0);
                    mes "^0000ff"+.@md_name$+" ^000000- A reserva falhou!";
                    close;
                }
                mes "^0000ff"+.@md_name$+"^000000 - Tentar reservar";
                mes "Depois de fazer uma reserva, você tem que falar com o NPC logo atrás e selecionar o menu 'Entrar no Calabouço' para entrar no calabouço.";
                for (.@i = 1; .@i <= 6; ++.@i) {
                    if( instance_attachmap(.@i + "@tower", .@instance) == "" ) {
                        mes "^0000ff"+.@md_name$+" ^000000- A reserva falhou!";
                        instance_destroy(.@instance);
                        close;
                    }
                }

Compartilhar este post


Link para o post
Compartilhar em outros sites

5 respostass a esta questão

Recommended Posts

  • 0

Você vai ter que setar novamente uma var pra salvar no histórico do char que ele já pagou.

set Zeny, Zeny - 100000000;
set .paid, 1;

Após acabar o evento, insira novamente abaixo do announce.

set .paid, 0;

1 = habilita
0 = desabilita

O ideal seria você postar o script por completo pois se você quer fazer uma verificação o correto é usar if, quando na verdade switch(select) trabalha apenas com case e não dá pra fazer verificação. Pelo menos é o que me lembro, faz muito tempo que não mexo com isso mas posta ai o script completo que tentarei lhe ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Você pode usar uma condição ternária (Link: Operador Ternário) no primeiro Option do menu select, se true mostra a primeira opção caso contrário oculta mostra a segunda opção como primeira. Esse operador deve verificar uma variável atribuída a instância. (Leia a respeito)

Nessa situação tanto o primeiro set da bateria do switch, passa a ser síncrono com o segundo, então deve orientar a primeira bateria para pular para o segundo ou ambos trabalham em conjunto:

case 1: Pula para 2

case 1: break;
case 2:
    // Code

case 1 e 2 em conjunto

case 1:
case 2:
  //Code

Então na segunda bateria você apenas verifica a existência da variável se não existir você aciona a opção de pagar.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
20 horas atrás, Envolvents disse:

Você vai ter que setar novamente uma var pra salvar no histórico do char que ele já pagou.


set Zeny, Zeny - 100000000;
set .paid, 1;

Após acabar o evento, insira novamente abaixo do announce.


set .paid, 0;

1 = habilita
0 = desabilita

O ideal seria você postar o script por completo pois se você quer fazer uma verificação o correto é usar if, quando na verdade switch(select) trabalha apenas com case e não dá pra fazer verificação. Pelo menos é o que me lembro, faz muito tempo que não mexo com isso mas posta ai o script completo que tentarei lhe ajudar.

Atualmente me ajudaram a por a opção "Sim e Não".  Ai eu queria que depois de criado o calabouço a pessoa não conseguisse acessar mais a Opção de Criar o Calabouço novamente porque depois que cria a pessoa errar e criar novamente vai cobrar dele novamente. Então para evitar problema queria assim que a pessoa criasse o calabouço a Opão de criar sumisse ou fechasse o npc se ele escolhesse.

NPC COMPLETO : https://pastebin.com/x3Ns6uM9

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
1 hora atrás, Zourtswark disse:

Atualmente me ajudaram a por a opção "Sim e Não".  Ai eu queria que depois de criado o calabouço a pessoa não conseguisse acessar mais a Opção de Criar o Calabouço novamente porque depois que cria a pessoa errar e criar novamente vai cobrar dele novamente. Então para evitar problema queria assim que a pessoa criasse o calabouço a Opão de criar sumisse ou fechasse o npc se ele escolhesse.

NPC COMPLETO : https://pastebin.com/x3Ns6uM9

Cara num complica uma coisa muito simples.

Toma aqui duas formas de alterar o menu de acordo com a condição.

Alternativa 1

Spoiler

if (variavel) {
	.@selection = select("Opão 1","Opção 2","Opção 3");
} else {
	.@selection = select("Opção 2","Opção 3");
}
switch(.@selection) {
	case 1:
	case 2:
	if (variavel) {
		//Code
	} else {
		//Code
	}
	case 3:
		//code
}

 

Alternativa 2

Spoiler

switch (select (((variavel) ? "Opção 1":""), "Opção 2", "Opção 3")) {
	case 1:
	case 2:
	if (variavel) {
		//Code
	} else {
		//Code
	}
	case 3:
		//code
}

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
31 minutos atrás, Spell Master disse:

Cara num complica uma coisa muito simples.

Toma aqui duas formas de alterar o menu de acordo com a condição.

Alternativa 1

  Mostrar conteúdo oculto


if (variavel) {
	.@selection = select("Opão 1","Opção 2","Opção 3");
} else {
	.@selection = select("Opção 2","Opção 3");
}
switch(.@selection) {
	case 1:
	case 2:
	if (variavel) {
		//Code
	} else {
		//Code
	}
	case 3:
		//code
}

 

Alternativa 2

  Mostrar conteúdo oculto


switch (select (((variavel) ? "Opção 1":""), "Opção 2", "Opção 3")) {
	case 1:
	case 2:
	if (variavel) {
		//Code
	} else {
		//Code
	}
	case 3:
		//code
}

 

 

Obrigado, foi como falei no inicio, sou novo não entendo muita coisa ainda, então preciso de algo bem explicado ou até já feito pra mim.

Desculpa, porque ainda não entendo muito. Só o básico do básico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

Seja bem vindo ao Cronus-Emulator.
É sempre um prazer te-lo conosco.
Você pode visualizar nossas áreas de suporte para encontrar suas soluções sem a necessidade de se registrar!
Registrando em nossa comunidade, você poderá conhecer mais sobre nosso projeto, criar tópicos, responder tópicos existentes, baixar milhares de recursos em nosso sistema de downloads, participar de nossa comunidade, customizar seu perfil e muito mais... Se você já possui uma conta, faça seu login - ou crie uma conta. Também temos integração com Google+ e Facebook.

×