Jump to content

[NPC] - Sistema de casas


Recommended Posts


  • Group:  Members
  • Topic Count:  8
  • Topics Per Day:  0.01
  • Content Count:  20
  • Reputation:   1
  • Joined:  10/24/20
  • Last Seen:  

Salve pessoal. Estou com esse problema 

E na linha 519 diz [Error]:  Loading NPC file: npc/personalizado/casas/Vilas_Configuracoes.txt
script error on npc/personalizado/casas/Vilas_Configuracoes.txt line 519
    parse_line: need ';'

eu tentei de tudo, mas n consegui corrigir alguém da um help por favor?

//===== Cronus Script ========================================
//= Funções Compartilhadas - Casas Para Aluguel
//===== Por: =================================================
//= Zephyrus
//=====Tradução Português - BR Por: ==========================
//= Nosyel
//===== Verção Atual: ===================================== 
//= 1.0 - Iniciado por Zephyrus
//= 1.1 - Corrigido Bugs nos Mapas por Zephyrus
//= 2.0 - Tradução e Adaptação Para o Cronus por Nosyel
//===== Compatível com: ===================================== 
//= eAthena SVN Stable & Cronus SVN Stable e Trunck
//===== Descrição: ========================================= 
//= Contém as funções nescessárias para o sistema de Aluguel de Casas
//===== Comentários Adicionais: ================================= 
//= 1.0 Versão Inicial
//============================================================ 
//= Função para o npc, entrada das casas de campo 
//= (Número de casa de campo, custo da propriedade, número de casas)
//============================================================ 

function	script	rent_villas	{
	set @t, getarg(3);
	show "^FF0000[Vila " + getarg(0) + "]^000000";
	show "O melhor lugar para se morar...";
	show "" + @t + " Casas Para Aluguel.";
	show "Custo da propriedade: ^0000FF" + getarg(1) + " zeny^000000";
	set @j, 22;
	for (set @i, 1; @i <= @t; set @i, @i + 1) {
		if (getd("$house" + getarg(2) + @i + "_rent") == 1) set @j, @j - 1;
	}
	if (@j == 0) show "Não há nenhuma propriedade disponível.";
	else show "Propriedades disponíveis: ^0000FF" + @j + "^000000.";
	close;
}

//============================================================ 
//= Funções do quadro indicador que mostra os proprietários e as opções de GM 
//= (identificação da casa de campo, e a quantidade de casas)
//============================================================ 

function	script	rent_letrero	{
	show "[Informação de Aluguel]";
	show "Proprietários Atuais:";
	set @t, getarg(1);
	for (set @i, 1; @i <= @t; set @i, @i + 1) {
		if (getd("$house" + getarg(0) + @i + "_rent") == 1) {
			if (@Color$ == "^0000FF")
				set @Color$, "^FF0000";
			else
				set @Color$, "^0000FF";
			// Detalhes da Casa
			show @Color$ + "Casa Nº " + @i + " Alugada para " + getd("$house" + getarg(0) + @i + "_user$") + ".";
			if (getgmlevel())
				show "Alcançado " + getd("$house" + getarg(0) + @i + "_accesos") + " tempo da última restauração";
			show "Fim: " + getd("$house" + getarg(0) + @i + "_buy_day") + "-" + getd("$house" + getarg(0) + @i + "_buy_month") + "-" + getd("$house" + getarg(0) + @i + "_buy_year") + ".^000000";
		}
	}
	if (getgmlevel()) goto L_GMmenu;
	close;

L_GMmenu:
	next;
	menu "Liberar uma casa",L_Liberar,"Liberar Todas as Casas",L_Limpiar,"Cancelar",-;

L_Salir:
	show "^FF0000[Informação de Aluguel]^000000";
	show "Função para acesso adiministrativo";
	show "Até Logo...";
	close;

L_Limpiar:
	show "^FF0000[Informação de Aluguel]^000000";
	for (set @i, 1; @i <= @t; set @i, @i + 1) {
		setd "$house" + getarg(0) + @i + "_access", 0;
	}
	show "Casa Resetada.";
	close;

L_Liberar:
	show "^FF0000[Informação de Aluguel]^000000";
	show "Você quer liberar uma casa?(1 - " + @t + ")";
	show "Entre com o número da casa que você quer liberar. (0 ou maior que " + @t + " para cancelar).";
	next;
	input @house;
	if (@house < 1) goto L_Salir;
	if (@house > @t) goto L_Salir;

	if (getd("$house" + getarg(0) + @house + "_rent") == 1) {
		show "^FF0000[Informação de Aluguel]^000000";
		setd "$house" + getarg(0) + @house + "_rent", 0;
		show "A Casa " + @house + " Foi Liberada.";
		killmonsterall "rentin" + getarg(0) + @house + ".gat"; // Mata os monstro pequenos
	} else {
		show "^FF0000[Informação de Aluguel]^000000";
		show "Desculpe-me, mais esta Casa ja tem Locatário";
		show "Por Favor selecione um número diferente.";
	}
	close;
}

//============================================================ 
//= Função das Kafras (Teleporte para outras vilas).
//============================================================ 

function	script	rent_kafra	{
	cutin "kafra_007.bmp",2;
	show "^FF0000[Kafra]^000000";
	show "Olá, Seja Bem Vindo!";
	show "Eu posso teleportá-lo a uma vila diferente por 2000z.";
	if (Zeny < 2000) {
		show "Oh. .parece que você não tem bastante dinheiro. Você precisa de pagar-me ^FF00002000 zeny^000000 para que eu possa teleportá-lo ^^";
		cutin "", 255;
		close;
	}
	show "Onde você quer ir? Todos os preços são os mesmos.";
	next;
	menu "Prontera",L_Prontera,"Vila Prontera",L_VProntera,"Vila Geffen",L_VGeffen,"Vila Morroc",L_VMorroc,"Vila Payon",L_VPayon,"Vila Alberta",L_VAlberta,"Vila Izlude",L_VIzlude,"Vila Aldebaran",L_VAldebaran,"Nenhuma",-;
	show "^FF0000[Kafra]^000000";
	show "Volte Quando Você Precisar de Meus Serviços, Tenha Um Bom Dia ^^";
	cutin "", 255;
	close;

L_Prontera:   set Zeny, Zeny - 2000; show "^FF0000[Kafra]^000000"; show "Boa Viagem ;)!"; close2; warp "prontera.gat",156,191; end;
L_VProntera:  set Zeny, Zeny - 2000; show "^FF0000[Kafra]^000000"; show "Boa Viagem ;)!"; close2; warp "rent_mb.gat",133,113; end;
L_VGeffen:    set Zeny, Zeny - 2000; show "^FF0000[Kafra]^000000"; show "Boa Viagem ;)!"; close2; warp "rent_md.gat",50,28; end;
L_VMorroc:    set Zeny, Zeny - 2000; show "^FF0000[Kafra]^000000"; show "Boa Viagem ;)!"; close2; warp "rent_mc.gat",50,28; end;
L_VPayon:     set Zeny, Zeny - 2000; show "^FF0000[Kafra]^000000"; show "Boa Viagem ;)!"; close2; warp "rent_ma.gat",50,28; end;
L_VAlberta:   set Zeny, Zeny - 2000; show "^FF0000[Kafra]^000000"; show "Boa Viagem ;)!"; close2; warp "rent_me.gat",50,28; end;
L_VIzlude:    set Zeny, Zeny - 2000; show "^FF0000[Kafra]^000000"; show "Boa Viagem ;)!"; close2; warp "rent_mf.gat",50,28; end;
L_VAldebaran: set Zeny, Zeny - 2000; show "^FF0000[Kafra]^000000"; show "Boa Viagem ;)!"; close2; warp "rent_mg.gat",50,28; end;

}

//============================================================ 
//= Função dos quadros indicadores (Fala as opções dos Proprietários e as opções de GM)
//= (identificação da casa de campo, propriedade custo, uma quantidade de casas)
//============================================================ 

function	script	rent_propietario	{
	cutin "proprietario.bmp",2;
	show "^0000FF[Proprietário]^000000";
	show "Olá, Seja Bem Vindo a Agência de Alugueis de Casa!";
	show "Eu Alugo Casas!";
	show "Você esta interessado em alguma?";
	next;
	set @t, getarg(2);

L_next1:
	menu "Sim, Concerteza!",L_rent,"Poderia Me Dar Mais Informações?",L_Info,"Não, Obrigado.",-;
	show "^0000FF[Proprietário]^000000";
	show "Sinta-se livre para retornar quando você tiver interessado.";
	cutin "", 255;
	close;

L_Info:
	show "^0000FF[Proprietário]^000000";
	show "Eu Tenho" + @t + " Casas e Propriedades.";
	show "Bem, você pode alugar uma casa de mim.";
	show "A fixação do preço depende do tempo que você quer a casa.";
	show "O custo mensal é de " + getarg(1) + " zenys.";
	show "Quando o contrato se acaba, você pode estendê-lo ou sair da casa para outros poderem alugar.";
	next;
	goto L_next1;

L_rent:
	show "^0000FF[Proprietário]^000000";
	show "Quantos meses você quer alugar?";
	show "(Maximo é 3 Meses)";
	next;

L_next2:
	input @mo;
	if (@mo < 1) goto L_next2;
	if (@mo > 3) goto L_next2;
	menu @mo + " meses esta bom",-,"Change the number of months",L_next2,"Voltar ao Menu Anterior",L_next1;
	set @costo, @mo * getarg(1);

	show "^0000FF[Proprietário]^000000";
	show "Para entrar em sua casa, você precisa de cadastrar uma senha.";
	show "Por favor insira sua senha de usuário da casa.";
	next;

L_next3:
	input @pwg$;
	if(@pwg$ == "") goto L_next3;
	menu @pwg$ + " -Esta Correto.",-,"Tentar de Novo",L_next3,"Voltar ao Menu Anterior",L_next1;

	show "^0000FF[Proprietário]^000000";
	show "Entre por favor com a senha que seus convidados podem usar.";
	next;

L_next4:
	input @pwb$;
	if(@pwb$ == "") goto L_next4;
	menu @pwb$ + "-Esta Correto.",-,"Tentar de Novo",L_next4,"Voltar ao Menu Anterior",L_next1;

	show "^0000FF[Proprietário]^000000";
	show "Deixe-me rever o contrato...";
	show "Para alugar uma casa nesta vila,";
	show "Custa: " + @costo + " Por " + @mo + " month(s).";
	show "Senha: " + @pwg$;
	show "Senha de Convidados: " + @pwb$;
	show "Você quer a casa?";
	next;
	menu "Sim",-,"Não, Eu Desisti",L_Salir;
	set @current,0;
	for (set @current, 1; @current <= @t; set @current, @current + 1) {
		if (getd("$house" + getarg(0) + @current + "_rent") != 1) goto L_Alquilar;
	}
	show "^0000FF[Proprietário]^000000";
	show "Desculpe-me amigo mais eu não tenho mais nenhuma casa disponível.";
	show "Volte por favor um outro dia.";
	cutin "", 255;
	close;

L_Alquilar:
	if (Zeny < @costo) goto L_NoZeny;
	set Zeny, Zeny - @costo;
	setd "$house" + getarg(0) + @current + "_rent", 1;
	setd "$house" + getarg(0) + @current + "_user$",strcharinfo(0);
	setd "$house" + getarg(0) + @current + "_passwort$",@pwg$;
	setd "$house" + getarg(0) + @current + "_userps$",@pwb$;
	setd "$house" + getarg(0) + @current + "_buy_day",gettime(5);
	setd "$house" + getarg(0) + @current + "_buy_month",gettime(6) + @mo;
	setd "$house" + getarg(0) + @current + "_buy_year",gettime(7);
	setd "$house" + getarg(0) + @current + "_accesos",0;

	if (getd("$house" + getarg(0) + @current + "_buy_month") > 12) {
		setd "$house" + getarg(0) + @current + "_buy_year", getd("$house" + getarg(0) + @current + "_buy_year") + 1;
		setd "$house" + getarg(0) + @current + "_buy_month", getd("$house" + getarg(0) + @current + "_buy_month") - 11;
	}
	
	show "^0000FF[Proprietário]^000000";
	show "Parabéns " + strcharinfo(0)+"!";
	show "Você alugou com sucesso uma casa!";
	show "O Número de Sua Casa é " + @current + ".";
	show "Faça Bom Proveito!";
	cutin "", 255;
	close;

L_Salir:
	show "^0000FF[Proprietário]^000000";
	show "Sem Problemas, Retorne Quando Mudar de Idéia.";
	cutin "", 255;
	close;

L_NoZeny:
	show "^0000FF[Proprietário]^000000";
	show "Hein? Desculpe mais você não tem zeny suficiente para alugar uma de minhas Casas.";
	show "Por favor retorne quando tiver o suficiente.";
	cutin "", 255;
	close;
}

//============================================================ 
//= Função do quadro indicador (proprietários das casas e opções do gm)
//= (identificação da casa, custo da propriedade, X, Y)
//============================================================ 

function	script	rent_entrada	{
	if (getd("$house" + getarg(0) + "_rent") == 1) 
		goto L_Inicio;

	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Esta casa está disponível para aluguel!";
	close;

L_Inicio:
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Esta Casa Pertence a ^0000FF'" + getd("$house" + getarg(0) + "_user$") + "'.^000000";
	
	if (getgmlevel())
		show "Acesado ^0000FF" + getd("$house" + getarg(0) + "_accesos") + "^000000 tempo.";
		
	show "Você deseja entrar?";
	next;
	
	menu "Sim",L_Accesar,"Manutenção",L_Conf,"Não",-;
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "....";
	close;
	
L_Accesar:
	if (getgmlevel()) 
		goto L_Acceso; // Access for GMs without the key

	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Entre por favor com a senha de proprietário ou de convidado.";
	next;
	
	input @pw$;
	if ((@pw$ != getd("$house" + getarg(0) + "_passwort$")) && (@pw$ != getd("$house" + getarg(0) + "_userps$")))
		goto L_ErrorClave;

L_Acceso:
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Correto, Pode entrar...";
	close2;
	
	setd "$house" + getarg(0) + "_access",getd("$house" + getarg(0) + "_accesos") + 1;
	warp "rent" + getarg(0) + ".gat",getarg(2),getarg(3);
	end;

L_Conf:
	if (getgmlevel()) goto
		L_ConfGM; // Alcance para GMs sem a chave

	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Por favor entre com a Senha da Propriedade.";
	next;
	input @pw$;
	if (@pw$ != getd("$house" + getarg(0) + "_passwort$"))
		goto L_ErrorClave;

L_ConfGM:
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "O que você quer fazer?";
	next;

L_MMenu:
	menu "Mudar Minha Senha",L_CambioPW,"Muda senha de convidado",L_CambioGPW,"Extender Contrato",L_Extender,"Mudar Dono",L_Owner,"Liberar Propriedade",L_Liberar,"Nada",-;
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Ok, Nos vemos em breve.";
	close;

L_Extender:
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Você deseja estender seu contrato para um outro mês? (Costo " + getarg(1) + " zeny)";
	show "Esta Correto?";
	next;
	menu "Sim",L_DExtender,"Não",-;
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Bem...";
	next;
	goto L_MMenu;

L_DExtender:
	if (zeny < getarg(1)) 
		goto L_NoZeny;

	if (gettime(6) < (getd("$house" + getarg(0) + "_buy_month") - 1))
		goto L_NoExt;

	setd "$house" + getarg(0) + "_buy_month", getd("$house" + getarg(0) + "_buy_month") + 1;
	if (getd("$house" + getarg(0) + "_buy_month") > 12) {
		setd "$house" + getarg(0) + "_buy_month", getd("$house" + getarg(0) + "_buy_month") - 12;
		setd "$house" + getarg(0) + "_buy_year", getd("$house" + getarg(0) + "_buy_year") + 1;
	}
	set Zeny, Zeny - getarg(1);
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Seu contrato foi extendido com sucesso.";
	close;

L_NoZeny:
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Você não tem zeny suficiente!";
	show "Por favor volte quando tiver zeny suficiente.";
	close;

L_NoExt:
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Você esta com um contrato máximo. Por favor volte quando faltar menos de 1 mês.";
	close;

L_CambioPW:
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Por favor entre com sua senha nova";
	next;
	input @pw$;
	setd "$house" + getarg(0) + "_passwort$", @pw$;
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Sua senha nova é: " + @pw$ + ".";
	next;
	goto L_MMenu;

L_CambioGPW:
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Por favor entre com a senha nova de convidado.";
	next;
	input @pw$;
	setd "$house" + getarg(0) + "_userps$", @pw$;
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Sua senha nova de convidado é: " + @pw$ + ".";
	next;
	goto L_MMenu;

L_ErrorClave:
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "A senha esta incorreta!";
	close;

L_Owner:
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Locatário Recente: '" + getd("$house" + getarg(0) + "_user$") + "'";
	show "Novo Locatário: '" + strcharinfo(0) + "'";
	show "Esta Correto?";
	next;
	menu "Sim, Mude",L_DOwner,"Não...",-;
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Bem...";
	next;
	goto L_MMenu;
	
L_DOwner:
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	setd "$house" + getarg(0) + "_user$",strcharinfo(0);
	show "A casa agora tem um novo locatário.";
	show "Por favor mude as senhas.";
	next;
	goto L_MMenu;

L_Liberar:
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Você quer reincidir o contrato e liberar a casa?";
	show "Não terá seu dinheiro de volta.";
	next;
	menu "Sim, quero liberar a casa",L_DLiberar,"Não...",-;
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "Bem...";
	next;
	goto L_MMenu;

L_DLiberar:
	show "^0000FF[Propriedade " + getarg(0) + "]^000000";
	show "A propriedade foi liberada para um novo locatário.";
	setd "$house" + getarg(0) + "_rent", 0;
	killmonsterall "rentin" + getarg(0) + ".gat";
	close;
}

//============================================================ 
//= Função de controle de arvores de maçãs
//= (id da casa)
//============================================================ 

function	script	rent_manzano	{
	if (getd("$@Manzanas" + getarg(0)) > 0) {
		setd "$@Manzanas" + getarg(0), getd("$@Manzanas" + getarg(0)) - 1;
		specialeffect2 363;
		getitem 512, 1;
	}
	end;
}

//============================================================ 
//= Função para controlar o PvP.
//============================================================ 

function	script	rent_pvp	{
	if (getmapxy(@mapa$,@mapx,@mapy,0,strcharinfo(0)) != 0) end;
	show "[Controle PvP]";
	show "O que você deseja fazer?";
	next;
	menu "Ativar PVP",L_PvpOn,"Desativar PVP",L_PvpOff,"Nada",-;
	show "[Controle PvP]";
	show "Bom Dia.";
	close;

L_PvpOn:
	show "[Controle PvP]";
	show "O PVP esta ativado.";
	pvpon @mapa$;
	close;

L_PvpOff:
	show "[Controle PvP]";
	show "O PVP esta desativado";
	pvpoff @mapa$;
	close;
}

//============================================================ 
//= Cama!!!!
//= (id da casa,X,Y)
//============================================================ 

function	script	rent_camas	{
	show "Desja descançar?";
	menu "Sim",-,"Não",L_No;
	close2;
	sc_start SC_BLIND,500000,1;
	emotion e_yawn,1;
	sleep2(4000);
	
	warp "rentin" + getarg(0) + ".gat",getarg(1),getarg(2);
	percentheal 100,100;
	sc_end SC_BLIND;
	end;
L_No:
	close;
}

//============================================================ 
//= Função do piano
//= (id da casa)
//============================================================ 

function	script	rent_pianoStart	{
	if (getmapxy(@mapa$,@mapx,@mapy,0,strcharinfo(0)) != 0) end;
	show "[Piano Automático]";
	if (getd("$@Piano" + getarg(0)) > 0) {
		show "Espere um pouco até que a canção termine ou que o piano esteja preparado outra vez.";
		close;
	}
	show "[Piano]";
	show "Aviso: Minhas funções ainda não estão completamente implementadas, Aguarde ...";
	show "Escolha por favor uma canção.";
	set @Tema, select ("Música 01","Caos da eternidade","Música 03","Música 04","Bragis Poema","Música 06","Anel de Nibelungen","Música 08","Música 09","Música 10","Não me esqueça não","Ao abismo","Música 13","Assassino do por do sol","Música 15","Música 16","Música 17","Música 18","Música 19","Nada");
	if (@Tema >= 20) close;
	if (@Tema < 10) set @Tema$, "m0" + @Tema + ".wav";
	else set @Tema$, "m" + @Tema + ".wav";
	close2;
	if (getd("$@Piano" + getarg(0)) <= 0) {
		// Tocar o Tema Escolhido
		setd "$@Piano" + getarg(0), 1; // Reproduzindo
		initnpctimer;
		switch (@Tema) {
			case 14: soundeffectall "assassin_of_sunset.wav",0,24,@mapa$,0,0,50,50; break;
			case 12: soundeffectall "in_to_the_abyss.wav",0,24,@mapa$,0,0,50,50; break;
			case 11: soundeffectall "dont_forget_me_not.wav",0,24,@mapa$,0,0,50,50; break;
			case 7:  soundeffectall "ring_of_nibelungen.wav",0,24,@mapa$,0,0,50,50; break;
			case 5:  soundeffectall "bragis_poem.wav",0,24,@mapa$,0,0,50,50; break;
			case 2:  soundeffectall "chaos_of_eternity.wav",0,24,@mapa$,0,0,50,50; break;
			default: soundeffectall @Tema$,0,24,@mapa$,0,0,50,50; break;
		}
	}
	end;
}

function	script	rent_pianoStop	{
	emotion e_no1;
	stopnpctimer;
	setd "$@Piano" + getarg(0), 0; // Fim das Músicas
	end;
}

//============================================================ 
//= Armário
//============================================================ 

function	script	rent_armario	{
	show "[Armazem]";
	show "Deseja usar o Armazém?";
	menu "Sim",-,"Não",L_No;
	callfunc("F_CheckKafCode");
	close2;
	openstorage;
	end;
L_No:
	close;
}

//============================================================ 
//= Serviço de Limpesa
//============================================================ 

//============================================================ 
//= Calcule o seguinte ponto X e Y
//= (Posição X o Y)
//============================================================ 

function	script	rent_aliceXY	{
	set .@CP, getarg(0); // Posição X o Y
	set .@DST, rand(1,5); // Distância
	if (rand(2)) // Direção a ser tomada (izq der arr abj)
		set .@CP, .@CP + .@DST;
	else
		set .@CP, .@CP - .@DST;
	if (.@CP < getarg(1))
		set .@CP, .@CP + .@DST; // Se o ponto novo é menor, aquele é o mínimo
	if (.@CP > getarg(2))
		set .@CP, .@CP - .@DST; // Se o ponto novo é maior, aquele é o máximo
	return .@CP;
}

//============================================================ 
//= Esconde Alice quando o usuário é carregado
//= (Id da casa)
//============================================================ 

function	script	rent_serviceInit	{
	disablenpc "AliceR" + getarg(0) + "";
	end;
}

//============================================================ 
//= Função para o pedido de NPC
//= (Id da casa)
//============================================================ 

function	script	rent_serviceCall	{
	set @alicecost,5000;	// Variável para mudar o custo do serviço [Brainstorm]
	show "[Serviço de Limpeza]";
	if (getd("$@house" + getarg(0) + "_alice") == 0) {
		show "Você deseja ter Alice limpando por 8 horas?";
		show "Quando limpar, os insetos cessarão de aparecer.";
		show "O serviço custa 5000z.";
		show "Você gostaria de chamar Alice?";
		next;
		menu "Sim",-,"Não",L_No;
		if (Zeny < @alicecost) goto L_NoZeny;
		if (getd("$@house" + getarg(0) + "_alice") == 1) goto L_Activo;
		setd "$@house" + getarg(0) + "_alice", 1; // Activo
		set Zeny, Zeny - @alicecost;
		// Exterminio de insetos
		setd "$house" + getarg(0) + "_bugs", 0;
		killmonsterall "rentin" + getarg(0) + ".gat";
		show "[Serviço de Limpeza]";
		show "Alice estará em sua casa imediatamente.";
		enablenpc "AliceR" + getarg(0) + ""; // Ativando NPC
		donpcevent "AliceR" + getarg(0) + "::OnEmpezar"; // Iniciando Limpeza
		initnpctimer;
	} else {
		show "Você deseja despachar Alice agora?";
		next;
		menu "Sim",-,"Não",L_No;
		if (getd("$@house" + getarg(0) + "_alice") == 0) goto L_Activo;
		setd "$@house" + getarg(0) + "_alice", 0; // Desativando
		show "[Serviço de Limpeza]";
		show "Alice foi despachada, finalizado o Serviço de Limpeza.";
		stopnpctimer;
		donpcevent "AliceR" + getarg(0) + "::OnTerminar";
		disablenpc "AliceR" + getarg(0) + "";
	}
	close;

L_Activo:
	show "[Serviço de Limpeza]";
	show "Você já pediu uma Alice para limpar, você somente pode pedir uma Alice de cada vez.";
	show "Bom Dia.";
	close;

L_NoZeny:
	show "[Serviço de Limpeza]";
	show "Desculpe, mais você não tem zeny suficiente para pagar uma Alice.";
	close;

L_No:
	show "[Serviço de Limpeza]";
	show "Diga-me outra vez se você precisar de nossos serviços.";
	close;
}

//============================================================ 
//= Serviço de Kafra
//= (Id da casa)
//============================================================ 

function	script	rent_serviceFinish	{
	stopnpctimer;
	setd "$@house" + getarg(0) + "_alice", 0; // Desativado
	donpcevent "AliceR" + getarg(0) + "::OnTerminar";
	disablenpc "AliceR" + getarg(0) + "";
	end;
}

//============================================================ 
//= Velocidade de locomoção da Alice
//============================================================ 

function	script	rent_aliceInit	{
	npcspeed 100;
	end;
}

//============================================================ 
//= O começo da função de Alice, ativa o temporizador de NPC e a saudação
//============================================================ 

function	script	rent_aliceStart	{
	npctalk "Eu deixarei este lugar todo em ordem!";
	initnpctimer;
	return 0;
}

//============================================================ 
//= Movimentação da Alice
//============================================================ 

function	script	rent_aliceWalk	{
	emotion e_ho;
	getmapxy .@map$,.@x,.@y,1;
	set .@curX, callfunc("rent_aliceXY",.@x,8,35);
	set .@curY, callfunc("rent_aliceXY",.@y,5,27);
	npcwalkto .@curX, .@curY;
	stopnpctimer;
	initnpctimer;
	end;
}

//============================================================ 
//= Acontece somente quando você fala ou clica na Alice…!
//= Adicione mais dentro se você quiser (Preima)
//============================================================ 

function	script	rent_aliceTalk	{
	switch (rand(1,5)) {
		case 1: npctalk "Sim senhor(a), a limpeza esta quase completa."; break;
		case 2: npctalk "Se você quer comer algo, vá à cozinha que eu lhe prepararei um lanche…"; break;
		case 3: npctalk "Eles não me pagam o bastante por isso!"; emotion e_pif; break;
		case 4: npctalk "Bem, eu tenho muita sorte só precisarei limpar apenas esta casa hoje."; emotion e_heh; break;
		case 5: npctalk "Nossa, sua casa esta repugnante!"; emotion e_wah; break;
	}
	end;
}

//============================================================ 
//= Finalização dos Serviços da Alice
//============================================================ 

function	script	rent_aliceStop	{
	npctalk "Prontinho Senhor(a), esta tudo em ordem agora!";
	stopnpctimer;
	return 0;
}

//============================================================ 
//= Função de trocas de roupas
//= Summer 
//============================================================ 

function	script	rent_cambioropa	{
	show "[Guarda Roupas]";
	show "Escolha o estilo de roupa desejado...";
	menu "Normal",L_Normal,"Formal",L_Formal,"Natalina",L_Abrigo,"Verão",L_summer,"Não Trocar",-;
	close;

L_Normal:
	sc_end SC_Xmas;
	setoption Option_Wedding,0;
	sc_end SC_Summer;
	close;

L_Formal:
	sc_end SC_Xmas;
	sc_end SC_Summer;
	setoption Option_Wedding,1;
	close;

L_Abrigo:
	setoption Option_Wedding,0;
	sc_start SC_Xmas,600000,0;
	close;
L_summer:
	sc_end SC_Xmas;
	setoption Option_Wedding,0;
	sc_start SC_Summer,600000,0;
	close;
}

image.thumb.png.8f7ecca2a1b99a300d44b841b5cf289b.png

  • Like 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  35
  • Topics Per Day:  0.01
  • Content Count:  107
  • Reputation:   27
  • Joined:  02/12/14
  • Last Seen:  

Talvez o problema seja falta de quebra de linhas.

Aonde está:

		switch (@Tema) {
			case 14: soundeffectall "assassin_of_sunset.wav",0,24,@mapa$,0,0,50,50; break;
			case 12: soundeffectall "in_to_the_abyss.wav",0,24,@mapa$,0,0,50,50; break;
			case 11: soundeffectall "dont_forget_me_not.wav",0,24,@mapa$,0,0,50,50; break;
			case 7:  soundeffectall "ring_of_nibelungen.wav",0,24,@mapa$,0,0,50,50; break;
			case 5:  soundeffectall "bragis_poem.wav",0,24,@mapa$,0,0,50,50; break;
			case 2:  soundeffectall "chaos_of_eternity.wav",0,24,@mapa$,0,0,50,50; break;
			default: soundeffectall @Tema$,0,24,@mapa$,0,0,50,50; break;
		}

 

Tente trocar por:

		switch (@Tema) {
			case 14:
			soundeffectall "assassin_of_sunset.wav",0,24,@mapa$,0,0,50,50;
			break;
			
			case 12:
			soundeffectall "in_to_the_abyss.wav",0,24,@mapa$,0,0,50,50;
			break;
			
			case 11:
			soundeffectall "dont_forget_me_not.wav",0,24,@mapa$,0,0,50,50;
			break;
			
			case 7:
			soundeffectall "ring_of_nibelungen.wav",0,24,@mapa$,0,0,50,50;
			break;
			
			case 5:
			soundeffectall "bragis_poem.wav",0,24,@mapa$,0,0,50,50;
			break;
			
			case 2:
			soundeffectall "chaos_of_eternity.wav",0,24,@mapa$,0,0,50,50;
			break;
			
			default:
			soundeffectall @Tema$,0,24,@mapa$,0,0,50,50;
			break;
		}

 

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  8
  • Topics Per Day:  0.01
  • Content Count:  20
  • Reputation:   1
  • Joined:  10/24/20
  • Last Seen:  

49 minutes ago, luizragna said:

Talvez o problema seja falta de quebra de linhas.

Aonde está:


		switch (@Tema) {
			case 14: soundeffectall "assassin_of_sunset.wav",0,24,@mapa$,0,0,50,50; break;
			case 12: soundeffectall "in_to_the_abyss.wav",0,24,@mapa$,0,0,50,50; break;
			case 11: soundeffectall "dont_forget_me_not.wav",0,24,@mapa$,0,0,50,50; break;
			case 7:  soundeffectall "ring_of_nibelungen.wav",0,24,@mapa$,0,0,50,50; break;
			case 5:  soundeffectall "bragis_poem.wav",0,24,@mapa$,0,0,50,50; break;
			case 2:  soundeffectall "chaos_of_eternity.wav",0,24,@mapa$,0,0,50,50; break;
			default: soundeffectall @Tema$,0,24,@mapa$,0,0,50,50; break;
		}

 

Tente trocar por:


		switch (@Tema) {
			case 14:
			soundeffectall "assassin_of_sunset.wav",0,24,@mapa$,0,0,50,50;
			break;
			
			case 12:
			soundeffectall "in_to_the_abyss.wav",0,24,@mapa$,0,0,50,50;
			break;
			
			case 11:
			soundeffectall "dont_forget_me_not.wav",0,24,@mapa$,0,0,50,50;
			break;
			
			case 7:
			soundeffectall "ring_of_nibelungen.wav",0,24,@mapa$,0,0,50,50;
			break;
			
			case 5:
			soundeffectall "bragis_poem.wav",0,24,@mapa$,0,0,50,50;
			break;
			
			case 2:
			soundeffectall "chaos_of_eternity.wav",0,24,@mapa$,0,0,50,50;
			break;
			
			default:
			soundeffectall @Tema$,0,24,@mapa$,0,0,50,50;
			break;
		}

 

image.thumb.png.e1b51ff39b8ed85182bcccb1b1615641.pngpior que já tentei isso tbm e ainda persiste no erro

 

Link to comment
Share on other sites

  • 1 year later...

  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  2
  • Reputation:   2
  • Joined:  05/19/20
  • Last Seen:  

On 10/23/2020 at 11:44 PM, Kassio Felix said:

image.thumb.png.e1b51ff39b8ed85182bcccb1b1615641.pngpior que já tentei isso tbm e ainda persiste no erro

 

 

Provável já ter resolvido, ou desistido.

No caso do rAthena, o erro está no comando soundeffectall, *soundeffectall "<effect filename>",<type>{,"<map name>"}{,<x0>,<y0>,<x1>,<y1>}; 

Segundo o GitHub do rAthena

Onde se vê:

Quote
		switch (@Tema) {
			case 14: soundeffectall "assassin_of_sunset.wav",0,24,@mapa$,0,0,50,50; break;
			case 12: soundeffectall "in_to_the_abyss.wav",0,24,@mapa$,0,0,50,50; break;
			case 11: soundeffectall "dont_forget_me_not.wav",0,24,@mapa$,0,0,50,50; break;
			case 7:  soundeffectall "ring_of_nibelungen.wav",0,24,@mapa$,0,0,50,50; break;
			case 5:  soundeffectall "bragis_poem.wav",0,24,@mapa$,0,0,50,50; break;
			case 2:  soundeffectall "chaos_of_eternity.wav",0,24,@mapa$,0,0,50,50; break;
			default: soundeffectall @Tema$,0,24,@mapa$,0,0,50,50; break;
		}

 

O certo seria:

Quote
		switch (@Tema) {
			case 14: soundeffectall "assassin_of_sunset.wav",24,@mapa$,0,0,50,50; break;
			case 12: soundeffectall "in_to_the_abyss.wav",24,@mapa$,0,0,50,50; break;
			case 11: soundeffectall "dont_forget_me_not.wav",24,@mapa$,0,0,50,50; break;
			case 7:  soundeffectall "ring_of_nibelungen.wav",24,@mapa$,0,0,50,50; break;
			case 5:  soundeffectall "bragis_poem.wav",24,@mapa$,0,0,50,50; break;
			case 2:  soundeffectall "chaos_of_eternity.wav",24,@mapa$,0,0,50,50; break;
			default: soundeffectall @Tema$,24,@mapa$,0,0,50,50; break;
		}

 

 

  • Like 1
Link to comment
Share on other sites

  • 1 year later...

  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  71
  • Reputation:   3
  • Joined:  03/22/15
  • Last Seen:  

gostei da ideia, vou aderir

Edited by Heero12
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
Reply to this topic...

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