Jump to content
  • 0

System Presence PM


brunoshp

Question


  • Group:  Members
  • Topic Count:  64
  • Topics Per Day:  0.01
  • Content Count:  180
  • Reputation:   7
  • Joined:  12/19/12
  • Last Seen:  

How can I make the script Twilight, send 1 pm when the player missing 30 minutes to get presence? or when completing the 60 minutes to warn the player who completed the presence??
Thankful since already!
//Presence v1.1
//by x Twilight

prontera,150,150,5	script	Presença	811,{

set @npc$,"[^ff9900 "+StrNpcInfo(1)+" ^000000]";

	mes @npc$;
	mes ""+strcharinfo(0)+", bem-vind"+(Sex?"o":"a")+" ao sistema de presença.";
	mes "O que deseja fazer hoje?";
	if(getgmlevel() >= 80) set .@m$,"Configurar sistema";
	switch(select("Marcar frequência","Trocar meus pontos","Ver meus pontos",.@m$,"Informações","Sair"))
	{
		case 1:
		next;
		mes @npc$;
		if(!#counting)
		{
			set #online_time, gettimetick(2) + $time;
			set #counting,1;
			mes "Tempo marcado, volte dentro de "+((#online_time-gettimetick(2))/60)+" minuto(s)!";
			close2;
			dispbottom "Para verificar o tempo que resta, mande uma MP para npc:"+strnpcinfo(1)+".";
			end;
		}
		if(#online_time >= gettimetick(2))
		{	
			mes "Você ainda deve aguardar "+((#online_time-gettimetick(2))/60)+" minuto(s).";
			close;
		}
		mes "Receba agora seu ponto de presença.";
		set #point_presence,#point_presence + $point;
		set #counting,0;
		close;

		case 2:
		next;
		mes @npc$;
		mes "Escolha um item";
		mes "^ff0000[Preço]^000000 - Quantidade x Item";
		callsub OnItemRemaker;
		set .@Choose,$@Choose;
		next;
		mes @npc$;
		mes "Item escolhido: ^ff0000"+GetItemName($presence_id[.@Choose])+"^000000";
		mes "Quantidade do item: ^ff0000"+getd("$presenceamount_"+.@Choose+"["+.@num+"]")+"^000000";
		mes "Preço: ^ff0000"+getd("$presencepoint_"+.@Choose+"["+.@num+"]")+"^000000";
		if(select("Comprar:Cancelar") == 2)
		{
			next;
			mes @npc$;
			mes "Volte quando quiser.";
			close;
		}
		if(#point_presence < getd("$presencepoint_"+.@Choose+"["+.@num+"]"))
		{
			next;
			mes @npc$;
			mes "Você não tem a quantidade necessária de pontos.";
			close;
		}
		set #point_presence,#point_presence - getd("$presencepoint_"+.@Choose+"["+.@num+"]");
		getitem $presence_id[.@Choose], getd("$presenceamount_"+.@Choose+"["+.@num+"]");
		close;

		case 3:
		next;
		mes @npc$;
		mes "Atualmente você possui "+#point_presence+" pontos de frequência.";
		close;

		case 4:
		switch(select("Adicionar item:Remover item:Remover todos os itens:Alterar tempo de espera:Alterar quantidade de pontos ganhos:Voltar"))
		{
			case 1:
			next;
			mes @npc$;
			mes "Você escolheu 'Adicionar item'.";
			mes "Por favor, digite o ID do item que o jogador poderá comprar com pontos de frequência.";
			input .@getitem[0];
			next;
			mes @npc$;
			mes "Por favor, digite a quantidade desse item.";
			input .@amount[0];
			next;
			mes @npc$;
			mes "Agora digite quantos pontos de frequência serão necessários para o jogador comprar esse item.";
			input .@point[0];
			next;
			mes @npc$;
			mes "Item: ^ff0000"+GetItemName(.@getitem[0])+"^000000";
			mes "Quantidade: ^ff0000"+.@amount[0]+"^000000";
			mes "Preço: ^ff0000"+.@point[0]+"^000000";
			if(select("Cancelar:Confirmar") == 1) { callsub OnExit; }
			next;
			mes @npc$;
			set .@QuestId,0;
			set .@Size,getarraysize($presence_id);
			set .@loop,1;
			set .@num,0;
			while(.@loop)
			{
				if($presence_id[.@num] == 0 || .@num == .@size)
					set .@loop,0;
				else
					set .@num, .@num + 1;
			}
			set .@QuestId, .@num;
			set $presence_id[.@QuestId],.@getitem[0];
			setd "$presenceamount_"+.@QuestId+"[0]",.@amount[0];
			setd "$presencepoint_"+.@QuestId+"[0]",.@point[0];
			set .@Size,getarraysize(.@getitem);
			for(set .@num, 1; .@num <= .@Size; set .@num, .@num + 1)
				setd "$presenceq_"+.@QuestId+"["+.@num+"]",.@getitem[.@num];
				setd "$presenceamount_"+.@QuestId+"["+.@num+"]",.@amount[.@num];
				setd "$presencepoint_"+.@QuestId+"["+.@num+"]",.@point[.@num];
			mes "Item adicionado.";
			close;

			case 2:
			callsub OnItemRemaker;
			set .@Choose,$@Choose;
			next;
			mes @npc$;
			mes "Gostaria de remover o item ^ff0000"+GetItemName($presence_id[.@Choose])+"^000000?";
			if(select("Não:Sim") == 1) { callsub OnExit; }
			next;
			mes @npc$;
			set .@Size,getarraysize(getd("$presenceq_"+.@Choose));
			for(set .@num,1; .@num < .@Size; set .@num,.@num + 1)
			{
				setd "$presenceq_"+.@Choose+"["+.@num+"]",0;
				setd "$presenceamount_"+.@Choose+"["+.@num+"]",0;
				setd "$presencepoint_"+.@Choose+"["+.@num+"]",0;
			}
			set $presence_id[.@Choose],0;
			setd "$presenceamount_"+.@Choose+"[0]",0;
			setd "$presencepoint_"+.@Choose+"[0]",0;
			mes "Item removido.";
			close;

			case 3:
			next;
			mes @npc$;
			mes "Deseja remover todos os itens de troca?";
			if(select("Não:Sim") == 1) { callsub OnExit; }
			next;
			mes @npc$;
			set .@Size,getarraysize($presence_id);
			for(set .@num,0; .@num < .@Size; set .@num, .@num + 1)
			{
				set .@Size2,getarraysize(getd("$presenceq_"+.@num));
				for(set .@num2,1; .@num2 < .@Size2; set .@num2, .@num2 + 1)
				{
					setd "$presenceq_"+.@num+"["+.@num2+"]",0;
					setd "$presenceamount_"+.@num+"["+.@num2+"]",0;
					setd "$presencepoint_"+.@num+"["+.@num2+"]",0;
				}
				set $presence_id[.@num],0;
				setd "$presenceamount_"+.@num+"[0]",0;
				setd "$presencepoint_"+.@num,0;
			}
			mes "Todos os itens foram removidos.";
			close;

			case 4:
			next;
			mes @npc$;
			mes "Você escolheu 'Alterar tempo de frequência'.";
			mes "Por favor, digite o novo tempo que o jogador precisará ficar online para retirar seu ponto de frequência. [em segundos]";
			input @time_digit;
			next;
			mes @npc$;
			mes "Novo tempo em segundos: ^ff0000"+@time_digit+"^000000";
			mes "Novo tempo em minutos: ^ff0000"+@time_digit/60+"^000000";
			if(select("Cancelar:Confirmar") == 1) { callsub OnExit; }
			next;
			mes @npc$;
			set $time,@time_digit;
			set $new_time,1;
			mes "Tempo de espera alterado.";
			close;

			case 5:
			next;
			mes @npc$;
			mes "Você escolheu 'Alterar quantidade de pontos ganhos'.";
			mes "Digite a nova quantidade de pontos que o jogador ganhará ao marcar frequência.";
			input @point_digit;
			next;
			mes @npc$;
			mes "Nova quantidade de pontos: ^ff0000"+@point_digit+"^000000";
			if(select("Cancelar:Confirmar") == 1) { callsub OnExit; }
			next;
			mes @npc$;
			mes "Quantidade de pontos alterada.";
			set $point,@point_digit;
			set $new_point,1;
			close;

			case 6:
			callsub OnExit;
		}
	case 5:
	next;
	mes @npc$;
	mes "Aqui você poderá ganhar pontos por tempo online no servidor.";
	next;
	mes @npc$;
	mes "A cada "+$time/60+" minutos, você ganhará "+$point+" ponto(s).";
	next;
	mes @npc$;
	mes "Você pode trocar os pontos acumulados por itens.";
	mes "Aproveite!";
	close;

	case 6:
 	callsub OnExit;
	}

OnItemRemaker:
	set .@Size,getarraysize($presence_id);
	set .@Size2,getarraysize(getd("$presenceamount_"+.@num));
	for(set .@num,0; .@num < .@Size; set .@num, .@num + 1)
		set .@ChooseMenu$, .@ChooseMenu$+ "^ff0000["+getd ("$presencepoint_"+.@num+"["+.@num2+"]")+"]^000000"+" - "+getd ("$presenceamount_"+.@num+"["+.@num2+"]")+"x "+GetItemName(getd("$presence_id"+"["+.@num+"]"))+"^000000:";
	set .@ChooseMenu$,.@ChooseMenu$+"Cancelar";
	set $@Choose,select(.@ChooseMenu$)-1;
	if(($@Choose+1) > .@num) { callsub OnExit; }
	return;

OnExit:
	next;
	mes @npc$;
	mes "Estarei aqui caso precisar.";
	close;

OnWhisperGlobal:
	if(!#counting)
	{
		dispbottom "Você ainda não marcou sua presença.";
		end;
	}
	dispbottom "Faltam ainda "+((#online_time-gettimetick(2))/60)+" minuto(s).";
	end;

OnPCLogoutEvent:
	if(#counting == 1)
	{
		if(checkvending(strcharinfo(0)))
		{
			set #counting,0;
		}
		set #offline_time,#online_time - gettimetick(2);
		end;
	}
	
OnPCLoginEvent:
	if(#counting == 1)
	{
		set #online_time, gettimetick(2) + #offline_time;
		end;
	}

OnInit:
	if(!$new_time) { set $time,3600; }
	if(!$new_point) { set $point,1; }
end;
} 

 

 

 
Link to comment
Share on other sites

2 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  64
  • Topics Per Day:  0.01
  • Content Count:  180
  • Reputation:   7
  • Joined:  12/19/12
  • Last Seen:  

UP pls!

Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   616
  • Joined:  07/05/12
  • Last Seen:  

Try with addtimer

	addtimer 3000,strnpcinfo(3) +"::OnTalk";
	end;
OnTalk:
	dispbottom "Already 3 secs";
	end;
  • Upvote 1
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...