Aide pour Menu Altitude Rez

Répondre
Partager Rechercher
Bonjour j'aimerais pour parfois être plus tranquille quand je build , pouvoir quand je clic sur sur cube ou je suis assise qu'il y est un menu avec plusieurs altitude pour me monter ou descendre a l'altitude choisie .

J'ai trouver se script qui marche bien mais je suis obligée de changer manuelement l'altitude dans le script , et du coup si il pouvais y avoir un menu avec plusieurs almtitude se serais bien plus simple .

Voila si un de vous a un script comme cela dans son sac ^^ .

L'avantage du script que je post c'est que une fois arrivé a la distance il rez le 1er objet que j'ai mis dans le cube ou je m'assoie . du coup il rez une plateforme .

merci d'avance

//High Altitude Rezzer
//Creator: Jesse Barnett
integer target_height = 4090;//Set the elevation you want to go to here. Maximum you can rez objects is 4096.
float zSpeed = 500.0;
vector x;
vector w;
list grnd;
vector ground;
vector rez_obj_offset = <0.0, 0.0, -0.5>;
//Adjust this as necessary for postion of
//rezzed object in relation to vehicle. (no more then 10.0 in any axis)
default{
on_rez(integer start_param) {
llResetScript();
}
state_entry(){
grnd = [];
grnd += llGetPos();
ground = llList2Vector(grnd, 0);
vector pos = llGetPos();
llSetStatus(STATUS_ROTATE_X | STATUS_ROTATE_Y | STATUS_ROTATE_Z, FALSE);
if(pos.z >= (target_height - 5)){
state descend;
}
llSetText("Sit and touch to ascend", <0,0,0>,1.0);
}
touch_start(integer total_number){
llSetStatus(STATUS_PHYSICS, TRUE);
x = llGetPos();
x.z = target_height;
llTarget(x,50);
}
not_at_target(){
llApplyImpulse(llGetMass()*<0,0,zSpeed>,FALSE);
}
at_target(integer ascend, vector target, vector cPos){
llTargetRemove(ascend);
llMoveToTarget(target,1);
llSetTimerEvent(5.0);
}
timer(){
vector pos = llGetPos();
if(pos.z >= (target_height - 1)){
llStopMoveToTarget();
llApplyImpulse(-llGetMass()*llGetVel(),FALSE);
llSetStatus(STATUS_PHYSICS, FALSE);
llRezObject(llGetInventoryName(INVENTORY_OBJECT, 0), llGetPos() + rez_obj_offset, ZERO_VECTOR, ZERO_ROTATION, 42);
state descend;
}
}
}
state descend{
state_entry() {
vector pos = llGetPos();
llSetStatus(STATUS_ROTATE_X | STATUS_ROTATE_Y | STATUS_ROTATE_Z, FALSE);
if(pos.z <= (ground.z + 5)){
state default;
}
llSetText("Sit and touch to descend", <0,0,0>,1.0);
}
touch_start(integer total_number){
llSetStatus(STATUS_PHYSICS, TRUE);
w = llGetPos();
w.z = ground.z;
llTarget(w,50);
}
not_at_target(){
llApplyImpulse(llGetMass()*<0,0,-500>,FALSE);
}
at_target(integer descend, vector target2, vector Pos){
llTargetRemove(descend);
llMoveToTarget(target2,1);
llSetTimerEvent(5.0);
}
timer(){
vector pos = llGetPos();
if(pos.z <= (ground.z + 1)){
llStopMoveToTarget();
llApplyImpulse(-llGetMass()*llGetVel(),FALSE);
llSetStatus(STATUS_PHYSICS, FALSE);
llSetPos(ground);
state default;
}
}
}
Assez vieux ton script....teste ça...



list ordonne_boutons(list boutons)
{
return llList2List(boutons, -3, -1) + llList2List(boutons, -6, -4)
+ llList2List(boutons, -9, -7) + llList2List(boutons, -12, -10);
}

list choix=["+500", "+1000", "+2000","-500", "-1000", "-2000"];

vector startpos;
vector endpos;

key owner;

integer ecoute;
integer canal;


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

state_entry()
{
canal = (integer)("0xA" + llGetSubString((string)llGetKey(), 0,6 ));
owner = llGetOwner();
llSitTarget(<0.0,0.0,0.1>,ZERO_ROTATION);
}

touch_start(integer total_number)
{
llListenRemove(ecoute);
llSetTimerEvent(0.0);
startpos = llGetPos();
endpos = <startpos.x,startpos.y,endpos.z>;
ecoute = llListen(canal, "", owner, "");
llDialog(owner,"Tu veux planer à quelle altitude ? :\n",ordonne_boutons(choix),canal);
llSetTimerEvent(30.0);
}

listen(integer canal, string nom, key id, string msg)
{
llSetTimerEvent(0.0);
if(startpos.z + (integer)msg >4090)
{
endpos.z = 4090;
llOwnerSay("Tu vises trop haut....");
}
if(startpos.z + (integer)msg <22)
{
endpos.z = 22;
llOwnerSay("T' es au fond, arrête de creuser....");
}
else
endpos.z = startpos.z + (integer)msg;
}

changed(integer change)
{
if(change & CHANGED_LINK)
{
key avat = llAvatarOnSitTarget();
if(avat != NULL_KEY)
{
llListenRemove(ecoute);
llSetRegionPos(endpos);
llSleep(0.3);
llRezObject(llGetInventoryName(INVENTORY_OBJECT, 0), llGetPos() + <0.0,0.0,-1.0>*llGetRot(), <0.0,0.0,0.0>,llEuler2Rot(< 0.0,0.0,0.0> * DEG_TO_RAD)*llGetRot(),canal);
llSleep(0.3);
llUnSit(avat);
}
}
}

timer()
{
llSetTimerEvent(0.0);
llOwnerSay("trop lent banane! recommence!");
llListenRemove(ecoute);
}
}
bonjour Menthal merci pour ton aide ,

un petit problème quand je met le script dans le cube et m'assoie dessus il m'envoie directement dans le décor , j'ai du mal a comprendre pourquoi ^^
Yaka demander...




list ordonne_boutons(list boutons)
{
return llList2List(boutons, -3, -1) + llList2List(boutons, -6, -4)
+ llList2List(boutons, -9, -7) + llList2List(boutons, -12, -10);
}

list choix=["+500", "+1000", "+2000","-500", "-1000", "-2000"];

vector startpos;
vector endpos;

key owner;
key avat;

integer ecoute;
integer canal;


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

state_entry()
{
canal = (integer)("0xA" + llGetSubString((string)llGetKey(), 0,6 ));
owner = llGetOwner();
llSitTarget(<0.0,0.0,0.1>,ZERO_ROTATION);
}

changed(integer change)
{
if(change & CHANGED_LINK)
{
avat = llAvatarOnSitTarget();
if(avat == owner)
{
state marche;
}
else
{
llSay(0,"lève ton cul blaireau, c 'est pas ton cube !!");
}
}
}
}


state marche
{
state_entry()
{
}

touch_start(integer total_number)
{
if(llDetectedKey(0) == owner)
{
llListenRemove(ecoute);
llSetTimerEvent(0.0);
startpos = llGetPos();
endpos = <startpos.x,startpos.y,endpos.z>;
ecoute = llListen(canal, "", owner, "");
llDialog(owner,"Tu veux planer à quelle altitude ? :\n",ordonne_boutons(choix),canal);
llSetTimerEvent(30.0);
}
else
{
llSay(0,"Touche pas le cucube boloss, c 'est pour les grands !!");
}
}

listen(integer canal, string nom, key id, string msg)
{
llSetTimerEvent(0.0);
if(startpos.z + (integer)msg >4090)
{
endpos.z = 4090;
llOwnerSay("Tu vises trop haut....");
}
if(startpos.z + (integer)msg <22)
{
endpos.z = 22;
llOwnerSay("T' es au fond, arrête de creuser....");
}
else
{
endpos.z = startpos.z + (integer)msg;
}
llSleep(0.3);
llSetRegionPos(endpos);
llSleep(0.3);
llRezObject(llGetInventoryName(INVENTORY_OBJECT, 0), llGetPos() + <0.0,0.0,-1.0>*llGetRot(), <0.0,0.0,0.0>,llEuler2Rot(< 0.0,0.0,0.0> * DEG_TO_RAD)*llGetRot(),canal);
llSleep(0.3);
llUnSit(avat);
state default;

}

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

timer()
{
llSetTimerEvent(0.0);
llOwnerSay("trop lent banane! recommence!");
llListenRemove(ecoute);
}
}


Dernière modification par MenthalOH ; 27/11/2020 à 10h23.
un amour .... merci merci merci encore merci

et pour etre encore plus chiante lol j'ai mis sur ma plateforme build quand elle rez un bouton a clic qui change la texture du sol ca c'est nickel mais pense tu possible de mettre un bouton quand j'ai fini de build qui détruit ma plateforme sans que j'ai besoin de la prendre dans mon inventaire ... un espèce de kill objet quand je clic ?

avec ca ma plateforme sera fini ^^ milles merci
Alors là, ça devient de plus en plus balaise puisqu'il suffit d' ajouter un petit prim peint en rouge, mais pas en prim racine, et d' y mettre ça...


default
{
touch_start(integer total_number)
{
if(llDetectedKey(0) == llGetOwner())
llDie();
else
llSay(0, "Touche pas p'tit con, ça va faire boum !!");
}
}
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés