Difference between revisions of "No sensor/fr"
Jump to navigation
Jump to search
Gally Young (talk | contribs) (fixes) |
Gally Young (talk | contribs) m (ooops) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
{{LSL_Event/fr | {{Issues/SVC-2409/fr}}{{LSL_Event/fr | ||
|event_id=14|event_delay|event=no_sensor | |event_id=14|event_delay|event=no_sensor | ||
|event_desc=Evènement généré par | |event_desc=Evènement généré par [[llSensor/fr|llSensor]] ou [[llSensorRepeat/fr|llSensorRepeat]]. | ||
|constants | |||
|spec | |||
|caveats= | |||
*sensor/no_sensor ne sont pas toujours la meilleur solution pour : | |||
** Déterminer si quelque chose a été détruit. Utilisez plutôt [[llGetObjectDetails/fr|llGetObjectDetails]] cf. la section des [[#Useful Snippets|Les Truc&Astuces]]. | |||
**Pour déterminer si un avatar est dans la région. Utilisez plutôt [[llGetAgentSize/fr|llGetAgentSize]] | |||
|examples= | |||
< | <lsl> | ||
//Liste tous les avatars dans le périmètre | //Liste tous les avatars dans le périmètre | ||
default { | default { | ||
Line 12: | Line 18: | ||
sensor(integer num) { | sensor(integer num) { | ||
integer i = 0; | integer i = 0; | ||
do { | |||
llOwnerSay(llDetectedName(i) + " est à " + (string)llVecDist(llGetPos(), llDetectedPos(i)) + "m."); | llOwnerSay(llDetectedName(i) + " est à " + (string)llVecDist(llGetPos(), llDetectedPos(i)) + "m."); | ||
i++; | i++; | ||
} | } while (++i < num) | ||
} | } | ||
no_sensor() { | no_sensor() { | ||
Line 21: | Line 27: | ||
} | } | ||
} | } | ||
</ | </lsl> | ||
|helpers= | |||
<lsl>//Une alternative pour déterminer si un avatar est à proximité | |||
//No sensor utilisé dans l'exemple précédent ne s'applique pas ici. | |||
integer InRange(key uuid, float distance) | |||
{ | |||
list data = llGetObjectDetails(uuid, [OBJECT_POS]); | |||
if(data == []) | |||
return 0; | |||
return llVecDist(llList2Vector(data, 0), llGetPos()) <= dist; | |||
}</lsl> | |||
|also_header|also_events | |also_header|also_events | ||
|also_functions= | |also_functions= | ||
Line 29: | Line 44: | ||
{{LSL DefineRow||[[llSensorRepeat/fr|llSensorRepeat]]|Lance un senseur avec timer.}} | {{LSL DefineRow||[[llSensorRepeat/fr|llSensorRepeat]]|Lance un senseur avec timer.}} | ||
|also_articles|also_footer | |also_articles|also_footer | ||
|notes|mode|deprecated | |notes | ||
|mode | |||
|bugs={{LSL Bug|SVC-2409|llSensorRepeat ne déclenche pas no_sensor à moins que l'évènement "sensor" soit présent.}} | |||
|deprecated | |||
|cat1=Sensor/fr | |cat1=Sensor/fr | ||
|cat2 | |cat2 | ||
|cat3 | |cat3 | ||
|cat4}} | |cat4}} |
Latest revision as of 11:10, 18 April 2009
LSL Portail Francophone | LSL Portail Anglophone | Fonctions | Évènements | Types | Operateurs | Constantes | Contrôle d'exécution | Bibliothèque | Tutoriels |
Défauts
- no_sensor ne sera pas déclenché à moins que le script ne comporte un évènement sensor ~ SVC-2409
- Un évènement sensor, même vide, est suffisant pour que no_sensor puisse être déclenché.*sensor/no_sensor ne sont pas toujours la meilleur solution pour :
- Déterminer si quelque chose a été détruit. Utilisez plutôt llGetObjectDetails cf. la section des Les Truc&Astuces.
- Pour déterminer si un avatar est dans la région. Utilisez plutôt llGetAgentSize
Exemples
<lsl> //Liste tous les avatars dans le périmètre default {
on_rez(integer i) { llSensor("", "", AGENT, 100000, 10000); } sensor(integer num) { integer i = 0; do { llOwnerSay(llDetectedName(i) + " est à " + (string)llVecDist(llGetPos(), llDetectedPos(i)) + "m."); i++; } while (++i < num) } no_sensor() { llOwnerSay("Pas d’avatars dans le périmètre."); }
} </lsl>
Codes utiles
<lsl>//Une alternative pour déterminer si un avatar est à proximité //No sensor utilisé dans l'exemple précédent ne s'applique pas ici.
integer InRange(key uuid, float distance) {
list data = llGetObjectDetails(uuid, [OBJECT_POS]); if(data == []) return 0; return llVecDist(llList2Vector(data, 0), llGetPos()) <= dist;
}</lsl>
Voir aussi
Fonctions
• | llSensor | – | Lance un senseur. | |
• | llSensorRepeat | – | Lance un senseur avec timer. |
Notes complémentaires
Problèmes
SVC-2409 | A | llSensorRepeat ne déclenche pas no_sensor à moins que l'évènement sensor soit présent. |
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.