Mostrando postagens com marcador ::: Scripts. Mostrar todas as postagens
Mostrando postagens com marcador ::: Scripts. Mostrar todas as postagens

::: Criando uma Porta com abertura Lateral (sliding)

Posted by VOITENA Millet | Posted in , , | Posted on 14.8.10

Olá...

Neste tutorial iremos criar uma porta que será aberta Lateralmente por colisão ou por toque, ou seja, esta porta abrirá com você clicando ou apenas se aproximando dela.

Início do Tutorial:

Crie um objeto (prim) e edite ele para termos um formato de porta com as seguintes dimensões:
Na aba Objeto edite para :
Tamanho (metros):
X = 2.000
Y = 0.100
Z = 3.000


Agora vamos aplicar a textura em nossa porta, usaremos a mesma textura do outro tutorial de porta que consta no link abaixo:
http://sltutoriais.blogspot.com/2010/03/criando-um-porta.html


Agora salve este textura em seu computador e leve-a para o SL para aplicarmos como teste em nossa porta, lembre que, você poderá trocar a textura da porta conforme sua necessidade esta textura é apenas para teste caso você não possua nenhuma textura no inventário de seu avatar.

Obs.: Lembre que cada imagem trazida o SL lhe custará L$ 10,00 (dez lindens).


Na aba Conteúdo crie um novo script e renomeie para Script Porta Lateral, faça uma cópia deste script para seu inventário, coloque-o na pasta scripts.

Copie o Script a baixo e cole dentro deste arquivo.


// Início Script

float delay = 10.0; // tempo para auto fechamento da porta em segundos deixe 0.0 para nao fechar automaticamente
vector delta = <2.0, 0.0, 0.0>; // distancia lateral para abertura de porta X-Y-Z sendo X(lateral) - Y(profundidade) - Z(altura)
vector closed_position;
float volume = 0.5; // 0.0 desligado, 1.0 volume baixo

key open_sound = "cb340647-9680-dd5e-49c0-86edfa01b3ac";
key close_sound = "e7ff1054-003d-d134-66be-207573f2b535";

default {
state_entry() {
closed_position = llGetPos();
state closed;
}
}
state closed {

state_entry() {
llTriggerSound(close_sound, volume);
llSetPos(closed_position);
}
touch_start(integer total_number) {
state open;
}
collision_start(integer total_number)
{
state open;
}
}
state open {
state_entry() {
llTriggerSound(open_sound, volume);
llSetPos(closed_position + delta);
llSetTimerEvent(delay);
}
touch_start(integer total_number) {
state closed;
}
collision_start(integer total_number)
{
}
timer()
{
llSetTimerEvent(0.0);
state closed;
}
}

// Final Script


Após isso feito salve seu script.

Pronto, temos nossa construida e pronta para uso, renomeie este objeto para Porta Lateral, e deixe com as opções Copiar e Modificar, assim você poderá fazer várias copias desta porta e aplicar conforme suas necessidades.


Lembre de sempre resetar o script após posicionar a porta, pois este script sempre memorizará sua posição inicial, logo após definir sua posição definitiva, resete o script.
Para isso abra o script dentro do seu Objeto Porta Lateral, e clique em Resetar.

Espero que este tutorial tenha ajudado vocês.

Sucesso a Todos!


::: Criando uma porta

Posted by VOITENA Millet | Posted in , | Posted on 14.3.10

Olá...

Neste tutorial iremos criar uma porta que será aberta por colisão ou por toque, ou seja, esta porta abrirá com você clicando ou apenas se aproximando dela.

Use este script ao construir sua casa, em breve iremos desenvolver um tutorial de construção de casas utilizando o mínimo possivel de objetos.

Início do Tutorial:


Crie um objeto (prim) e edite ele para termos um formato de porta.


Na aba Objeto edite para :
Tamanho (metros):
X = 0.200
Y = 3.000
Z = 3.000

Recorte Inicio e Final:
I = 0.055
F = 0.375


Na aba Conteúdo crie um novo script e renomeie para Script Porta.

Copie o Script a baixo e cole dentro deste arquivo.

// Início Script

float delay = 10.0;
float direction = 1.0;
float volume = 0.5;

key open_sound = "cb340647-9680-dd5e-49c0-86edfa01b3ac";
key close_sound = "e7ff1054-003d-d134-66be-207573f2b535";

default {

state_entry() {
state open;
}
}

state closed {
state_entry() {
llTriggerSound(close_sound, volume);
llSetRot(llEuler2Rot(<0,0, direction * PI_BY_TWO>) * llGetRot());

}
touch_start(integer total_number) {
state open;
}
collision_start(integer total_number)
{
state open;
}

timer()
{
llSetTimerEvent(0.0);
}
}

state open {
state_entry() {
llTriggerSound(open_sound, volume);
llSetRot(llEuler2Rot(<0,0, direction * PI_BY_TWO>) * llGetRot());

llSetTimerEvent(delay);
}

on_rez(integer start_param) {
state closed;
}

touch_start(integer total_number) {
state closed;
}
collision_start(integer total_number)
{
}
timer()
{
llSetTimerEvent(0.0);
state closed;
}
}

// Final Script


Após isso feito salve seu script.


Agora salve este textura em seu computador e leve-a para o SL para aplicarmos como teste em nossa porta, lembre que, você poderá trocar a textura da porta conforme sua necessidade esta textura é apenas para teste caso você não possua nenhuma textura em seu avatar.

Lembre que cada imagem trazida o SL lhe custará L$ 10,00 (dez lindens).


Na aba Textura, clicando no quadrado em diz Textura, você poderá encontrar a textura que trouxemos para o SL, na janela que abrir digite Textura Porta, selecione-a e a seguir vá ao botão Selecionar.

Para equalizar sua textura fique atento que você terá várias faces da porta:
Frente, traz, lado direito, lado esquerdo, cima e baixo.
Vamos aos valores destas imagem para melhor apresentaçao da porta.


Ainda na Aba Textura, marque editar textura e clique na face da frente da porta, vamos inserir os seguintes valores onde diz Repetir por Face.
Na face da frente:
Horizontal (U) = 1.000
HorizoVertical (V) = 1.000

Na face de traz de sua porta:
Horizontal (U) = 2.000 (maque o Flip)
HorizoVertical (V) = 1.000
Deslocamento:
Horizontal (U) = 0.500
HorizoVertical (V) = 0.000

Nas demais faces: (laterais superior e inferior)
Remova a textura e aplique uma cor sólida no meu caso usei a cor Preta.

Pronto, temos nossa contruida e pronta para uso, renomeie este objeto para Porta, e deixe com as opções Copiar e Modificar, assim você poderá fazer várias copias desta porta e aplicar conforme suas necessidades, para fazer a porta abrir no outro sentido, basta rotacioná-la na vertical em 180º Graus.

Espero q este tutorial tenha ajudado vocês.

Sucesso a todos!

::: Criando uma Pose Ball

Posted by VOITENA Millet | Posted in | Posted on 11.2.10

Olá..

Neste tutorial vamos ver como criar uma Bola de Pose (Pose Ball), este recuso servirá para que você possa ter a indepêndencia de criar um objeto (prim) quer possa criar uma situação (pose) específica, apartir das que você possua em seu inventário.

Início do Tutorial:


Antes de tudo vamos criar nossa Bola que ira comportar o script e a pose, para isso com o botão da direita do mouse vamos criar uma esfera com as seguintes configurações:

Tamanho:
X= 0.200
Y= 0.200
Z= 0.200

Textura:
Textura = branco
Cor = (use a cor que desejar)
Brilho = baixo

Nossa bola esta criada agora vamos ver o script e a animação a ser inserida na aba Conteúdo.

Crie um novo script e renomei-o para Pose Ball, agora copie o script abaixo, volte ao Second Life, edite o cript subistituindo todo conteúdo do script cxriado na esfera, pelo script abaixo.

// Início Script //

string sitAnimation = "A";

default {
on_rez(integer start_param) {
llResetScript();
}

state_entry() {
llSetText("Pose", <1,1,1>, 1);
llSitTarget( <0,0,0.75>, ZERO_ROTATION );

if (sitAnimation == "") {
sitAnimation = llGetInventoryName(INVENTORY_ANIMATION, 0);

if (sitAnimation == "") {
sitAnimation = "sit";
}
}
}

changed(integer change) {
if (change & CHANGED_LINK) {
key avatar = llAvatarOnSitTarget();
if ( avatar != NULL_KEY ) {
llRequestPermissions(avatar,PERMISSION_TRIGGER_ANIMATION);
}
}
}

run_time_permissions(integer parm) {
if(parm == PERMISSION_TRIGGER_ANIMATION) {
llStopAnimation("sit");
llStartAnimation(sitAnimation);
state sitting;
}
}
}

state sitting {
state_entry() {
}

collision_start (integer total_number) {
}

changed(integer change) {
if (change & CHANGED_LINK) {
llStopAnimation(sitAnimation);
llResetScript();
}
}

}

// Final Script //



Variáveis do Script passiveis de alterações:
string sitAnimation = "A";
Sendo "A" o nome de sua pose, ou seja subistitua este nome pelo nome de sua pose que será inserida na pose ball.

llSetText("Pose", <1,1,1>, 1);
Sendo "Pose" o texto a ser mostrado sobre sua esfera (texto flutuando) e <1,1,1> a cor de seu texto flutuante.

Dica: Caso não queira que apareça texto algum em sua pose ball, exclua o texto Pose, deixando somente as aspas (" ")

Agora com seu script e sua pose inseridas em sua Pose Ball clique com o botão da direita e sente nela.


Ao sentar perceba que seu avatar não está na posição ideal, para isso rotacione a esfera até achar aposição ideal.

Com a posição definida renomeie seu objeto e recolha para seu intério, em breve postarei outro tutorial explicando como ocultar a esfera quando em uso.

Espero que este tutorial tenha sido de ajuda.

Sucesso a todos!

Criando um Teleporte

Posted by VOITENA Millet | Posted in | Posted on 9.2.10

Olá...

Neste tutorial vamos criar um Teleporte, quer servirá para vocês se locomoverem no Second Life com apenas um clique percorer uma grande distância, o Teleporte poderá por exemplo, enviar um avatar para um determinado local de sua casa, loja ou terreno.

Início do Tutorial:


Primeiro vamos criar um Objeto (prim) quer servirá de Teleporte, crie o prim na forma, cor e textura desejada.


Na Aba Conteúdo de seu Objeto, crie um Novo Script, copie e cole o Script abaixo, renomenado este novo script para Teleporte.

// Início do Script //

key lastAVkey = NULL_KEY;
string fltText = "Teleporte UP";
vector dest = <35,163,261>;
default
{
state_entry()
{
llSetSitText("Piscina");
llSetText(fltText, <1,1,1>, 1);
llSitTarget(dest-llGetPos(), <0,0,0,1>);
}
touch_start(integer i)
{
llSay(0,"Right click me and chose 'Teleport'");
}
changed(integer change)
{
key currentAVkey = llAvatarOnSitTarget();
if (currentAVkey != NULL_KEY && lastAVkey == NULL_KEY)
{
lastAVkey = currentAVkey;
if (!(llGetPermissions() & PERMISSION_TRIGGER_ANIMATION))
llRequestPermissions(currentAVkey,PERMISSION_TRIGGER_ANIMATION);
llUnSit(currentAVkey);
llStopAnimation("sit");
llResetScript();
}
}
}

// Final do Script //


Variáveis do Script:
Onde diz : Teleporte UP - você poderá substituir para o texto que desejar, pois esta variável do script será o Texto que ficará suspenso sobre o Objeto, identificando assim o destino do Teleporte, neste caso este teleporte ira levar seu avatar a um destino Acima e assim você pode denominar conforme sua necessidade.

Você poderá renomar para os seguintes exemplos:
Quarto, Sala, Piscina, etc... no caso de ser casa.
Cabelos, Sapatos, Skins , etc... no caso de ser utilizado em uma loja.

Na linha:
llSay(0,"Right click me and chose 'Teleport'");
Esta linha diz a menssagem de alerta que aparecerá no seu chat, alertando para utilizar o botão da direita de seu mouse para acionar o teleporte, não é necessário alterar.


Onde diz : Piscina - você poderá substituir para o texto que desejar, pois esta variável do script será o Texto que ficará aparecerá em seu menu, e assim sinalizando o destino de seu Teleporte.


vector dest = <35,163,261>;
Muita atenção nesta linha de comando, pois aqui será inserido o destino de seu teleport.

Para conseguir o destino exato de seu avatar, no menu inferior procure o botão Mapa, clique nele, abrirá a janela do mapa de localizaçao atual de seu avatar.

Onde diz Localização será mostrado os valores a serem aplicados no script, sempre respeitem a ordem dos valores.
Para alterar os valores para o destino de seu teleporte, vá com seu avatar até o local desejado de DESTINO, abra o mapa e onde diz Localização, copie os valores a serem inseridos em seu teleporte.
Digamos que este valor mostrado na tela seja onde está localizada uma piscina em nossa casa, e para seu avatar nao ter que atravessar toda sua casa ou terreno você queira fazer um Teleporte para isso copie oa valores e substitua na segunte linha do script:
vector dest = <35,163,261>; com os valores da localização de sua piscina.

E este procedimento você deverá fazer para qualquer Teleporte quer você necessite, seja casa, loja ou ilha, assim sua locomoção será mais rápida.

Obs: A distância máxima de cada teleporte sera de no máximo 250 metros, logo estubem onde posicionar seus teleportes.

Espero que este tutorial tenha ajudado vocês.

Sucesso a todos!

Criando um Pose Edit

Posted by VOITENA Millet | Posted in | Posted on 19.1.10

Olá..

Neste tutorial veremos como você pode criar um Pose Edit (pose para edição), muito útil para termos em nossa casa ou darmos de brinde para clientes de lojas ou amigos, ou mesmo deixarmos em nossa loja, pois geralmente aguns itens que adquirimos no SL não se encaixam perfeitamente em nossos avatares e para isso sempre temos que reposicioná-los e este Pose edite deixa seu avatar em posição de Editar Aparência, o que muito auxilia na hora de posicionarmos ou ajustarmos ítens que anexamos em nossos avatares.

Aqui nós iremos construir nossa base usando um objeto e aplicando o script.

Início do Tutorial:

Primeiro vamos criar um prim (objeto) em forma cilíndrica e acertar suas dimensões na aba Objeto.
X - 0.500
Y - 0.500
Z - 0.100

Depois iremos afinar seu topo deixando em forma de cone, para isso vamos procurar o item Afinar e definir os seguintes valores.
X - 0.20
Y - 0.20

Agora iremos dar uma personalidade a nossa Base, na aba Textura escolha a textura que desejar em seu inventario ou no meu caso deixe sem textura alguma e trabalhe somente com cores.
Note que marquei a opção Selecionar Textura, isso permite q eu trabalhe com cores e/ou texturas idependentes em cada face do objeto (prim - primitiva).
Com a opção Selecionar Textura marcada, clique em cada face de seu objeto para alterar sua cor e/ou textura, no meu caso deixei o topo verde e a lateral preta.

Depois de editado sua base, chegou a hora de inserir o script nela, na aba Conteúdo, clique em Novo Script e renomeie ele para Edita Pose.
Feito isso abra este novo script (botao da direita mouse sobre o script Abrir), apague todo seu conteúdo copie e cole o script abaixo.

// Início do Script //

key mkLoungingAgentKey = NULL_KEY;
integer miPermissionsAcquired = FALSE;

default
{
state_entry()
{

vector vLoungeTarget = <0.00, 0.00, 1.00>;

rotation rX;
rotation rY;
rotation rZ;
rotation r;


rX = llAxisAngle2Rot( <1,0,0>, 0 * DEG_TO_RAD);
rY = llAxisAngle2Rot( <0,1,0>, 0 * DEG_TO_RAD);
rZ = llAxisAngle2Rot( <0,0,1>, 0 * DEG_TO_RAD);

r = rX * rY * rZ;

llSetSitText( "Pose" );

llSitTarget( vLoungeTarget, r );
}

changed(integer change)
{
if (change & CHANGED_LINK)
{
key agent = llAvatarOnSitTarget();
if ( mkLoungingAgentKey == NULL_KEY && agent != NULL_KEY )
{

mkLoungingAgentKey = agent;
llRequestPermissions(mkLoungingAgentKey,PERMISSION_TRIGGER_ANIMATION);
}
else if ( mkLoungingAgentKey != NULL_KEY && agent == NULL_KEY)
{

if ( miPermissionsAcquired )
{

llStopAnimation("turn_180");

}

llResetScript();
}
}
}

run_time_permissions(integer parm)
{
if(parm == PERMISSION_TRIGGER_ANIMATION)
{

miPermissionsAcquired = TRUE;

llStopAnimation("sit");

llStartAnimation("turn_180");
}
}
}

// Final do Script //


Depois de aplicado o script clique no botão Salvar.
Note que apareceu a seguinte menssagem na caixa de texto logo após o script.

Compile Sucessfull!
Save Complete.

Esta menssagem diz que a compilação e o processo de salvação de seu script obtiveram sucesso e ele esta pronto para o uso.

Agora vá na aba Comum e renomeie seu objeto para Pose Edit.


Feche a janela do Script e a do seu objeto, e com o botão da direita do mouse, aparecerá o menu circular, vá em Pose.


E pronto! agora você tem sua própria base para editar vertuários em seu avatar.
Agora você também pode presentear seus clientes e amigos com com este objeto.

Espero que este tutorial possa ter ajudado em algo.

Sucesso a todos!

Criando um Pose Stand para Fotos

Posted by VOITENA Millet | Posted in | Posted on 10.1.10

Olá..

Neste tutorial irei ensinar vocês a fazer um Pose Stand para ser usado em fotos dentro do Second Life, com este Stand você poderá ter seu próprio estúdio em casa.

Inserindo assim as poses que desejarem, e assim manter a originalidade de sua foto, lembrem de uma regra básica, qualidade X quantidade de poses dentro de seu Stand.

De nada vai adiantar você ter 300 poses, sendo destas apenas umas 20 serão realmente boas. Ensinarei também a inserir poses em seu Stand, para assim você poder ficar independente e livre para criar quanta Pose Stands julgar necessário, pode ter um Stand para poses femininas outro para masculinas e assim por diante.

Vamos iniciar construindo a base de seu Pose Stand:


Primeiro crie um cilindro com as seguintes especificações conforme imagem acima.
Na aba objeto edite o tamanho para:
X - 0.500
Y - 0.500
Z -0.100

Ao lado de onde você editou o tamanho do objeto tem uam caixa chamada AFINAR nos valores X e Y insira os valores X = 0.20 e Y = 0.20.

Na aba Textura deixe ela Branca.

Ainda editando o objeto, iremos para aba Conteúdo e iremos inserir um Novo Script clicando no botão respectivo.
Dentro da pasta Contents aparecerá um arquivo com o nome New Script, abra-o clicando duas vezes sobre ele.

Com a janela de ediçao de script aberta, selecione todo o conteúdo existe nele e APAGUE-O.

Agora copie o script abaixo desde onde diz //início do scripta até //fim do script.

________________________

// início do script

// Animation Stand (Stand Script)
// by Teddy Wishbringer

vector animation_offset = <0,0,2>; // Posição do avatar no Pad de Pose
string base_float_text = "";
vector color_float_text = <100,100,100>; // Cor do Texto Flutuante
float alpha_float_text = 1.0;
integer animation_qty;
integer animation_current;
string animation_name;
string new_animation_name;
string float_text;
key avatar;
update_inventory()
{
llSetText("Updating animation list...", color_float_text,alpha_float_text);
animation_qty = llGetInventoryNumber(INVENTORY_ANIMATION);
if (animation_qty > 0)
{
llWhisper(0, "Total animations loaded in this stand: " + (string)animation_qty);
set_anim(0);
}
else
{
llSetText("No Animations Found.. Offline", color_float_text,alpha_float_text);
}
}
set_anim(integer inventory_number)
{
new_animation_name = llGetInventoryName(INVENTORY_ANIMATION,inventory_number);
float_text = base_float_text + new_animation_name + "\n(" + (string)(animation_current + 1) + " of " + (string)animation_qty + ")";
llSetText(float_text, color_float_text,alpha_float_text);
avatar = llAvatarOnSitTarget();
if (avatar != NULL_KEY)
{
llStopAnimation(animation_name);
llStartAnimation(new_animation_name);
}
animation_name = new_animation_name;
}
default
{
on_rez(integer num)
{
llResetScript();
}
state_entry()
{
update_inventory();
if (animation_qty > 0)
{
llSetSitText("Pose");
llSitTarget(animation_offset,ZERO_ROTATION);
animation_name = llGetInventoryName(INVENTORY_ANIMATION, 0);
set_anim(animation_current);
}
}
touch_start(integer num)
{
string where = llGetLinkName(llDetectedLinkNumber(0));
if (where == "avancar") // Botão de avancar uma pose
{
animation_current++;
if ((animation_current + 1) > animation_qty)
{
animation_current = 0;
}
set_anim(animation_current);
}
else if (where == "voltar") // Botão de voltar uma pose
{
animation_current--;
if (animation_current < 0)
{
animation_current = animation_qty - 1;
}
set_anim(animation_current);
}
}
changed(integer change)
{
if (change & CHANGED_INVENTORY)
{
update_inventory();
}
if (change & CHANGED_LINK)
{
avatar = llAvatarOnSitTarget();
if(avatar != NULL_KEY) // Is that changed link an avatar?
{
llRequestPermissions(avatar,PERMISSION_TRIGGER_ANIMATION);
}
else
{
if (llGetPermissionsKey() != NULL_KEY)
{
llStopAnimation(animation_name);
}
}
}
}
run_time_permissions(integer perm)
{
if (perm & PERMISSION_TRIGGER_ANIMATION)
{
llStopAnimation("sit");
llStartAnimation(animation_name);
}
}
}

//fim do script

COLE dentro da Janela de script no SL e clique em Salvar.

Renomeie o Script em seu objeto para Pose Fotos e depois insira as poses que você já possua em seu inventário na mesma pasta o objeto.

Atenção: algumas poses podem ser No Copy (não copiaveis) ao serem inseridas no seu Pose Stand elas podem sair de seu inventário e ficarem somente no objeto.


Agora crindo mais 2 objetos agora na forma de PRISMA faremos as setas de avancar e voltar poses.

Sim é avancar memso sem cedinha, pois a linguagem de programaçao nao reconhece caracteres especiais, logo o nome das setas devem ser.
voltar e avancar
(tudo em caixa baixa)

Tamanho dos Objetos (setas) X- 0.200 Y -0.100 Z -0.200

Depois de construídas as formas, edite as cores sendo, avancar Verde, e voltar Vermelho, não esquecendo que as setas devem estar apontando para fora do objeto central.

Depois de construídas e posicionadas as formas, vamos uní-las e renomera para Pose Stand.

Unindo as formas:
1 - Mantenha a tecla CRTL pressionada e com o botão da ESQUERDA do mouse clique na seta da Esquerda depois na da Direita e por último na forma Circular Branca.

2 - Depois das três formas selecionadas usando o teclado pressione CRTL + L (tecla control depois a tecla "L" ) isso deve unir as formas, observe que as setas tem um contorno em Azul e a forma em cilindro central com o contorno amarelo, isso significa que foram unidas com sucesso.

Agora basta renomer a forma unida para Pose Stand.

Pronto agora você tem seu Pose Stand Particular, para usá-lo, clique nele com o botão da DIREITA do mouse e no menu vá em Pose e boas fotos.

Espero que este Tutorial tenha sido útil, qualquer problema postem aqui.

Sucesso a Todos!

Tutoriais mais consultados: