Jump to content
Sign in to follow this  
Senos

Script Intermediário (Aula 5)

Recommended Posts

Script Intermediário! - 5

Lista de Aulas:

Aula 1: http://herc.ws/board/topic/199-script-intermedi%C3%A1rio-aula-1/

 
Bom, nesta aula estarei ensinando sobre o comando attachrid e detachrid, são comandos mais complexos, porém entendíveis para aqueles que tem atenção na aula e uma boa noção já de script, que já manipulam suas lógicas para fazer da maneira que acha melhor e correto. Irei iniciar então o assunto da aula, e nela criar exemplos, explicações, e explicar a sintaxe do comando.

Primeiro assunto da aula:
- Attachrid

Sintaxe do comando:
attachrid(<ID Da Conta>);

 

A função básica desta sintaxe é anexar o RID do jogador ao NPC (script), ou seja, você pode forçar o jogador a executar as funções do npc.

Vejamos um exemplo:

-	script	Olá	-1,{	OnOla:		attachrid(2000001);		mes "Olá";		mes "Você foi forçado a ver o olá do script! ^~";	close;}


Agora caso aplicarmos desta forma, teremos um problema. O jogador pode estar offline, então poderá gerar aquele erro no map-server "Player not attached (Jogador não atachado, não encontrado)". Para resolvermos esse problema, teremos que fazer uma verificação, veja:

-	script	Olá	-1,{	OnOla:		if (!attachrid(getcharid(3,"Nick_do_Jogador")) {			// O jogador está offline, logo já evitaremos o erro			// do player not attached.			end;		}		//Caso o jogador esteja online:		mes "Olá";		mes "Você foi forçado a ver o olá do script! ^~";		close;}

 

O comando attachrid retorna 0 se o jogador estiver offline e 1 para online. Pegamos no snippet feito, o account_id do jogador pelo nome/nick dele.


Esse comando é de grande utilidade pois podemos criar sistemas com tempos, no qual podemos anexar o jogador ao tempo com seu limite. Podemos criar loops em função do attachrid para anúncios, verificar se o jogador está online não, tudo isso ligado a apenas um jogador (o jogador anexado). Pegar o nome de quem matou ou morreu, aplicar um comando neste unico jogador, etc...

Alguns exemplos com attachrid:

 

1. Primeiro exemplo:

OnPCDieEvent:		set .BaseLevel, BaseLevel;	attachrid(killedrid); // Verifica todos os jogadores que matou o outro [Killerdrid = variável pronta para jogadores que matam].	set .exp, (100*.BaseLevel/BaseLevel); // No caso isso dará um bônus baseado no BaseLevel do cara multiplicado 100x.	getexp .exp, .exp;end;

 

Dará experiência a um jogador que matou o outro.

 

2. Segundo exemplo:

	mes "Gostaria de participar do evento?";	if (select("Sim:Não")==2) close;	next;	set $@rids_salvos[.i], getcharid(3);	set .i, .i +1;	warp "",0,0;	end;

 

Isso salvará o rid do jogador no script, para que possa utilizar posteriormente, caso queira limpar o rid salvo, só fazer:

OnPcLogouEvent:	set $@rids_salvos[.i], 0;end;

 

Bom, aí no caso quando o jogador deslogar a variável $@rids_salvos será zerada, e não terá mais valor. Mas aí vai de acordo como você quiser, eu coloquei para quando o jogador deslogar, você bota opcionalmente como você quiser, foi apenas um exemplo.
 

 

Segundo assunto:
- Detachrid
 

Detachrid faz o contrário do attachrid, esse dexanexa o jogador do script. Então comandos para jogadores que necessitam de attachs, não passam mais a funcionar. Como forçar o jogador a falar com o script, ou por exemplo você atachar ele ao script, e no final desanexá-lo, você terá que anexá-lo denovo para usar funções que anexam ele ao script, caso queira criar funções dos exemplos que eu fiz.

 
Não tenho muito oque dizer sobre este comando, é básicamente isso, e sintaxe dele é simplesmente:
detachrid;

 

Bom, é simplesmente isso, um abraço!
Wolf.

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

×   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...
Sign in to follow this  

×
×
  • Create New...

Important Information

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