Advertisement
Guest User

Untitled

a guest
Jan 26th, 2020
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 29.44 KB | None | 0 0
  1. //====================================
  2. // ed. 2019.08.28
  3. // Lighting (spec and norm) options from menu.
  4. //
  5. // edited 20190809.15
  6. // Collar and Muzzle options
  7. //
  8. // edited 190209.15
  9. //====================================
  10.  
  11. integer menu_chan;
  12. integer lh;
  13. integer isSound=TRUE;
  14. integer range=5;
  15. key OWNER;
  16.  
  17. list colors_= ["Red_","Green_","Blue_","Yellow_","Orange_","Pink_","Purple_","Cyan_","White_","Grey_", "Black_"];
  18. list colors_vect=[<1,0,0>,<0,1,0>,<0,0,1>,<1,1,0>, <1,.5,0>, <1,0,1>,<.5,0,1>,<0,1,1>,<1,1,1>,<.5,.5,.5>,<0,0,0>];
  19. string pet_name="Dog";
  20. vector color_vector=<.5,.5,.5>;
  21. integer isNameOn=FALSE;
  22.  
  23.  
  24. integer collar_state=TRUE;
  25. string collar_texture;
  26.  
  27. integer muzzle_state=FALSE;
  28. string muzzle_texture1;
  29. string muzzle_texture2;
  30.  
  31. list statics=["Static_1","Static_2","Static_3","Static_4","Static_5","Static_6","Static_7"];
  32.  
  33.  
  34. DisplayName()
  35. {
  36. if (isNameOn) llSetLinkPrimitiveParamsFast(2,[PRIM_TEXT,pet_name,color_vector,1]);
  37. else llSetLinkPrimitiveParamsFast(2,[PRIM_TEXT,"", color_vector,0]);
  38. }
  39.  
  40.  
  41. ///////////////////////////////////////////////////////
  42. OwnerSay(string aText) {
  43.  
  44. }
  45.  
  46. /*// Face map
  47. integer FUR_FACE=0;
  48. integer HEAD_FACE=2;
  49. integer LEG_FACE=4;
  50. integer EYE_FACE=1;
  51. integer MUZZLE_FACE=6;
  52. integer MUZZLE_FACE2=7;
  53. integer COLLAR_FACE=1;*/
  54.  
  55. // Face map
  56. integer FUR_FACE=0;
  57. integer HEAD_FACE=3;
  58. integer LEG_FACE=5;
  59. integer EYE_FACE=2;
  60. integer MUZZLE_FACE=6;
  61. integer MUZZLE_FACE2=7;
  62. integer COLLAR_FACE=1;
  63.  
  64.  
  65. ///////////////////////////////////////////////////////
  66. // UUID of texture HERE:
  67. string FurCream ="ea8bf2cf-21e0-db31-a87d-5bd88397e705";
  68. string FurBlack ="eafc3dc6-4d60-5d4f-0f26-1b4e2803f918";
  69. string FurWhite ="bd07ae55-1f55-971e-c102-baa283637bb1";
  70.  
  71. string HeadCream ="17759ab0-9256-2f1e-2b46-5191172cc290";
  72. string HeadBlack ="6af4c532-a849-7776-366b-7110f43f358c";
  73. string HeadWhite ="acd6f4f1-dfba-84bd-a43b-2e78f12d5b51";
  74.  
  75. string LegCream ="5424db70-f50e-a8b9-3a73-69773ca58ec5";
  76. string LegBlack ="47138c8b-7ca0-0a51-bed8-1f49d2421536";
  77. string LegWhite ="4836c2d5-b51b-e801-99f1-b08fd3bb917b";
  78.  
  79. //eyes
  80. string EyeSmall ="f23a1b50-b680-3428-d6ff-65e0eeac49a3";
  81. string EyeMedium ="1f076e68-d550-facc-c838-48ce134000ce";
  82. string EyeBig ="ec471d0c-69c5-f0b0-3650-4be3f7d84856";
  83. //Muzzle
  84. string MuzzleText_1 ="0243aade-1617-dc1c-c6e4-5b66c5f5cfba";
  85. string MuzzleText_2 ="8ed72ac0-4ab3-daee-2014-f71f3162f1c6";
  86. string MuzzleText_3 ="ce3a2e57-7e22-f22f-dc63-323875f1c179";
  87. string MuzzleText_4 ="9960c7da-df9d-149b-2b9e-5cf368824de6";
  88. string MuzzleText_5 ="01da3b37-7390-a0ca-fb1b-7a4fefb427f4";
  89. string MuzzleText_6 ="6d2850be-6615-2b38-52d1-c1992aaec9d4";
  90. string MuzzleText_7 ="911327bd-7b8e-a96e-248e-086d341aa4d0";
  91.  
  92. string MuzzleText2_1 ="e3c6ab43-b0a3-1eb8-0dce-efc2d7113de2";
  93. string MuzzleText2_2 ="5efbe52d-ec62-3327-87c5-3cdf1ef6b253";
  94. string MuzzleText2_3 ="938512e4-4bc8-a6ac-26d5-ee6f63ba997f";
  95. string MuzzleText2_4 ="02bbdc6d-4816-feec-e766-a2c6e4d45bd5";
  96. string MuzzleText2_5 ="0759cf88-9186-1021-1304-4ad0493dfacd";
  97. string MuzzleText2_6 ="d41c1a2a-61fe-c0c2-c291-389076d4a25f";
  98. string MuzzleText2_7 ="ab0f79d3-0941-85d5-6bbe-7c65085bb380";
  99.  
  100. //Muzzle
  101. string CollarText_1 ="e3c6ab43-b0a3-1eb8-0dce-efc2d7113de2";
  102. string CollarText_2 ="5efbe52d-ec62-3327-87c5-3cdf1ef6b253";
  103. string CollarText_3 ="938512e4-4bc8-a6ac-26d5-ee6f63ba997f";
  104. string CollarText_4 ="02bbdc6d-4816-feec-e766-a2c6e4d45bd5";
  105. string CollarText_5 ="0759cf88-9186-1021-1304-4ad0493dfacd";
  106. string CollarText_6 ="d41c1a2a-61fe-c0c2-c291-389076d4a25f";
  107. string CollarText_7 ="ab0f79d3-0941-85d5-6bbe-7c65085bb380";
  108.  
  109.  
  110. Particules()
  111. {
  112. integer effectFlags=0;
  113.  
  114. // Color Secelection Variables
  115. ///////////////////////////////////////////////////////
  116. integer colorInterpolation = TRUE;
  117. vector startColor = <0.8,0.8,1.0>;
  118. vector endColor = <.8,0.0,0.0>;
  119. float startAlpha = 1.;
  120. float endAlpha = 1.;
  121. integer glowEffect = TRUE;
  122.  
  123.  
  124. // Size & Shape Selection Variables
  125. ///////////////////////////////////////////////////////
  126. integer sizeInterpolation = TRUE;
  127. vector startSize = <0.1, 0.1, 0.0>;
  128. vector endSize = <0.1, 0.1, 0.0>;
  129.  
  130.  
  131. // Timing & Creation Variables Variables
  132. ///////////////////////////////////////////////////////
  133.  
  134.  
  135. float particleLife = 1.;// Lifetime of one particle (seconds)
  136. float SystemLife = .0;// Lifetime of the system 0.0 for no time out (seconds)
  137. float emissionRate = 0.03;// Number of seconds between particle emissions
  138. integer partPerEmission = 15;// Number of seconds between particle emissions
  139.  
  140.  
  141. // Angular Variables
  142. ///////////////////////////////////////////////////////
  143.  
  144. float radius = (float)range;
  145. float angleBegin = PI_BY_TWO;
  146. float angleEnd = PI_BY_TWO;
  147. vector omega = <0.0, 0.0, 3>;
  148.  
  149.  
  150. ///////////////////////////////////////////////////////
  151. // Movement & Speed Variables
  152. ///////////////////////////////////////////////////////
  153. // The minimum speed a particle will be moving on creation
  154. float minSpeed =0.;
  155. // The maximum speed a particle will be moving on creation
  156. float maxSpeed = 0.;
  157. // Global acceleration applied to all particles
  158. vector acceleration = <0.0,0.0, 0.0>;
  159.  
  160.  
  161. // Pattern Selection
  162. integer pattern = PSYS_SRC_PATTERN_ANGLE_CONE ;
  163.  
  164. // The following block of if statements is used to construct the mask
  165. if (colorInterpolation) effectFlags = effectFlags|PSYS_PART_INTERP_COLOR_MASK;
  166. if (sizeInterpolation) effectFlags = effectFlags|PSYS_PART_INTERP_SCALE_MASK;
  167. if (glowEffect) effectFlags = effectFlags|PSYS_PART_EMISSIVE_MASK;
  168.  
  169. llParticleSystem([
  170. PSYS_PART_FLAGS, effectFlags,
  171. PSYS_SRC_PATTERN, pattern,
  172. PSYS_PART_START_COLOR, startColor,
  173. PSYS_PART_END_COLOR, endColor,
  174. PSYS_PART_START_ALPHA, startAlpha,
  175. PSYS_PART_END_ALPHA, endAlpha,
  176. PSYS_PART_START_SCALE, startSize,
  177. PSYS_PART_END_SCALE, endSize,
  178. PSYS_PART_MAX_AGE, particleLife,
  179. PSYS_SRC_ACCEL, acceleration,
  180. // PSYS_SRC_TEXTURE, texture,
  181. PSYS_SRC_BURST_RATE, emissionRate,
  182. PSYS_SRC_ANGLE_BEGIN, angleBegin,
  183. PSYS_SRC_ANGLE_END, angleEnd,
  184. PSYS_SRC_BURST_PART_COUNT, partPerEmission,
  185. PSYS_SRC_BURST_RADIUS, radius,
  186. PSYS_SRC_BURST_SPEED_MIN, minSpeed,
  187. PSYS_SRC_BURST_SPEED_MAX, maxSpeed,
  188. PSYS_SRC_MAX_AGE, SystemLife,
  189. // PSYS_SRC_TARGET_KEY, target,
  190. PSYS_SRC_OMEGA, omega ]);
  191.  
  192. }
  193. string print_son()
  194. {
  195. if (isSound) return "\n✔ sound";
  196. return "\n✗ sound";
  197. }
  198.  
  199.  
  200.  
  201. integer mode=0;
  202. integer prev_mode=0;//return after static mode
  203. integer MODE_IDLE=0;
  204. integer MODE_WANDER=1;
  205. integer MODE_FOLLOW=2;
  206. integer MODE_STATIC=3;
  207.  
  208. string print_mode()
  209. {
  210. if (mode ==MODE_IDLE) return "\n ✔ idle";
  211. if (mode ==MODE_WANDER) return "\n ✔ wandering around";
  212. if (mode ==MODE_FOLLOW) return "\n ✔ following owner";
  213. if (mode ==MODE_STATIC) return "\n ✔ static";
  214. return "\n??? mode";
  215. }
  216.  
  217. string static_state()
  218. {
  219. if (mode ==MODE_STATIC) return "\n ✔ static";
  220. return "";
  221. }
  222.  
  223. // MENUS ----------------------------------------------------------------
  224. integer menu_i=0;
  225.  
  226.  
  227. integer MENU_MAIN=0;
  228.  
  229. string BTN_STATIC="Static poses";
  230. string BTN_NORMSPEC="Normal Map";
  231. Menu()
  232. {
  233. menu_i=MENU_MAIN;
  234. list buttons;
  235. string msg="\Menu Dog"+print_son();
  236. if (llGetAttached())
  237. {
  238. buttons=["Collar","Muzzle","Sound","Name",BTN_STATIC];
  239. msg+=static_state();
  240. }
  241. else
  242. {
  243. buttons=["Collar","Muzzle","Name","Sound","Range","Activity",BTN_STATIC];
  244. msg+=print_mode();
  245. }
  246. llDialog(llGetOwner(),msg,buttons,menu_chan);
  247. llSetTimerEvent(200);
  248. llParticleSystem([]);
  249. MenuBranch=0;
  250. }
  251.  
  252. integer MENU_NAME=1;
  253. MenuName()
  254. {
  255. menu_i=MENU_NAME;
  256. list buttons=["Set Name","Name Color","Main","Back"];
  257. if (isNameOn) buttons+=["Name OFF"];
  258. else buttons+=["Name ON"];
  259. llDialog(llGetOwner(),"\nMenu Name",buttons,menu_chan);
  260. llSetTimerEvent(200);
  261. }
  262. integer MENU_NAMECOLOR=2;
  263. MenuNameColor()
  264. {
  265. menu_i=MENU_NAMECOLOR;
  266. list buttons=["Main"]+colors_;
  267. llDialog(llGetOwner(),"\nMenu Name Color",buttons,menu_chan);
  268. llSetTimerEvent(200);
  269. }
  270.  
  271. integer MENU_COLOR=3;
  272. MenuColor()
  273. {
  274. menu_i=MENU_COLOR;
  275. list buttons=["Eye","Main"];
  276. llDialog(llGetOwner(),"\nMenu Color",buttons,menu_chan);
  277. llSetTimerEvent(200);
  278. }
  279. string btnFurCream ="Cream";
  280. string btnFurWhite ="White";
  281. string btnFurBlack ="Black";
  282. integer MENU_FUR=4;
  283. MenuFur()
  284. {
  285. list buttons=[btnFurCream, btnFurWhite, btnFurBlack,"Main"];
  286. llDialog(llGetOwner(),"\nChoose color of FUR",buttons,menu_chan);
  287. llSetTimerEvent(200);
  288. }
  289. string btnEyeSmall ="Small";
  290. string btnEyeMedium ="Medium";
  291. string btnEyeBig ="Big";
  292. integer MENU_EYE=5;
  293. MenuEye()
  294. {
  295. list buttons=[btnEyeSmall,btnEyeMedium, btnEyeBig,"Main"];
  296. llDialog(llGetOwner(),"\nChoose the shape of Pupil",buttons,menu_chan);
  297. llSetTimerEvent(200);
  298. }
  299.  
  300.  
  301. integer MenuBranch=0;
  302. integer COLLAR_BRANCH=1;
  303. integer MUZZLE_BRANCH=2;
  304. integer NORMSPEC_BRANCH=3;
  305.  
  306. string item(integer branch)
  307. {
  308. if (branch==COLLAR_BRANCH)return "COLLAR";
  309. if (branch==MUZZLE_BRANCH)return "MUZZLE";
  310. return"???";
  311.  
  312. }
  313. integer MENU_COLMUZ=6;
  314. MenuCollarMuzzle()
  315. {
  316. menu_i=MENU_COLMUZ;
  317. llDialog(llGetOwner(),"\n"+item(MenuBranch),["Activate","Style","Main"],menu_chan);
  318. llSetTimerEvent(200);
  319.  
  320. }
  321. integer MENU_ACTIVATE=7;
  322. MenuActivate()
  323. {
  324. menu_i=MENU_ACTIVATE;
  325. llDialog(llGetOwner(),"\nDo you want to display "+item(MenuBranch)+" ?",["ON","OFF","Main","Back"],menu_chan);
  326. llSetTimerEvent(200);
  327. }
  328.  
  329. //string btnCollar_None="No_collar";
  330. string btnCollar_1="Red";
  331. string btnCollar_2="Purple";
  332. string btnCollar_3="Pink";
  333. string btnCollar_4="Orange";
  334. string btnCollar_5="Green";
  335. string btnCollar_6="Blue";
  336. string btnCollar_7="Black";
  337. integer MENU_COLLARSTYLE=8;
  338. MenuCollarStyle()
  339. {
  340. menu_i=MENU_COLLARSTYLE;
  341. list buttons=[btnCollar_1,btnCollar_2,btnCollar_3,btnCollar_4,btnCollar_5,btnCollar_6,btnCollar_7,"Main","Back"];
  342. llDialog(llGetOwner(),"\nChoose the collar",buttons,menu_chan);
  343. llSetTimerEvent(200);
  344. }
  345.  
  346. //string btnMuzzle_None="No_muzzle";
  347. string btnMuzzle_1="Red.";
  348. string btnMuzzle_2="Purple.";
  349. string btnMuzzle_3="Pink.";
  350. string btnMuzzle_4="Orange.";
  351. string btnMuzzle_5="Green.";
  352. string btnMuzzle_6="Blue.";
  353. string btnMuzzle_7="Black.";
  354.  
  355.  
  356. integer MENU_MUZZLESTYLE=9;
  357. MenuMuzzleStyle()
  358. {
  359. menu_i=MENU_MUZZLESTYLE;
  360. list buttons=[btnMuzzle_1,btnMuzzle_2,btnMuzzle_3,btnMuzzle_4,btnMuzzle_5,btnMuzzle_6,btnMuzzle_7,"Main","Back"];
  361. llDialog(llGetOwner(),"\nChoose the muzzle",buttons,menu_chan);
  362. llSetTimerEvent(200);
  363. }
  364.  
  365.  
  366. SetTexture(string aTexture, integer face)
  367. {
  368. if (aTexture==TEXTURE_TRANSPARENT) llSetLinkPrimitiveParamsFast(1,[
  369. PRIM_COLOR,face,<1.,1.,1.>,0.,
  370. PRIM_TEXTURE, face, aTexture, <1.0, 1.0, 1.0>, <0.0, 0.0, 0.0>, 0.0]);
  371. else llSetLinkPrimitiveParamsFast(1,[
  372. PRIM_TEXTURE, face, aTexture, <1.0, 1.0, 1.0>, <0.0, 0.0, 0.0>, 0.0,
  373. PRIM_COLOR,face,<1.,1.,1.>,1. ] );
  374. //llSetLinkPrimitiveParamsFast(1,[PRIM_COLOR, face, <1,1,1>,1.0]);
  375. }
  376.  
  377. integer MENU_RANGE=10;
  378. MenuRange()
  379. {
  380. menu_i=MENU_RANGE;
  381. list buttons=["-","--","---","+","++","+++","Main"];
  382. if (range<1)range=1;
  383. if (range>100)range=100;
  384. llMessageLinked(LINK_THIS,range,"range","");
  385. Particules();
  386. llDialog(llGetOwner(),"\nRange (meters) "+(string)range,buttons,menu_chan);
  387. llSetTimerEvent(60);
  388. }
  389.  
  390. integer MENU_ACTIVITY=11;
  391. MenuActivity()
  392. {
  393. list buttons=["Idle","Wander","Follow","Main"];
  394. llDialog(llGetOwner(),"\nSet a behaviour."+print_mode(),
  395. buttons,menu_chan);
  396. llSetTimerEvent(200);
  397. }
  398.  
  399. integer MENU_STATIC=12;
  400. string BTN_STATIC_STOP="Stop";
  401. MenuStatic()
  402. {
  403. list buttons=statics;
  404. if (mode==MODE_STATIC) buttons+=[BTN_STATIC_STOP];
  405. buttons+=["Main"];
  406. if (llGetAttached()) llDialog(llGetOwner(),
  407. "\nSet a pose.\n"+static_state(),
  408. buttons,menu_chan);
  409. else llDialog(llGetOwner(),
  410. "\nSet a pose.\n"+print_mode(),
  411. buttons,menu_chan);
  412. llSetTimerEvent(200);
  413. }
  414.  
  415.  
  416. integer MENU_NORMSPEC=13;
  417. MenuNormSpec()
  418. {
  419. menu_i=MENU_NORMSPEC;
  420. string txt="\nDo you want to use normal and specular lighting features ?";
  421. if (normSpec_state) txt+="\n ✔ enhanced lighting features";
  422. llDialog(llGetOwner(),txt,["ON","OFF","Main"],menu_chan);
  423. llSetTimerEvent(200);
  424. }
  425.  
  426. // TEXTURES
  427. /*
  428. integer FUR_FACE=0;
  429. integer HEAD_FACE=3;
  430. integer LEG_FACE=5;
  431. integer EYE_FACE=2;
  432. integer MUZZLE_FACE=6;
  433. integer MUZZLE_FACE2=7;
  434. integer COLLAR_FACE=1;*/
  435.  
  436. integer normSpec_state=FALSE;
  437. UpdateNormSpec()
  438. {
  439. if (normSpec_state)
  440. {
  441. llSetLinkPrimitiveParamsFast(LINK_ROOT,[
  442. //PRIM_NORMAL, integer face, string texture, vector repeats, vector offsets, float rotation_in_radians
  443. PRIM_NORMAL, FUR_FACE,"eb7dd071-7414-c6dc-21a8-d24c5ef2ba1e",<1,1,0>,ZERO_VECTOR,0.,
  444. PRIM_NORMAL, HEAD_FACE,"b7d5a251-5e49-43bb-2b40-cee6d36548e0",<1,1,0>,ZERO_VECTOR,0.,
  445. PRIM_NORMAL, LEG_FACE,"4a41dd02-3c39-7214-24b4-20c9446582ee",<1,1,0>,ZERO_VECTOR,0.,
  446. PRIM_NORMAL, COLLAR_FACE,"67284ef3-08c6-1e7f-5985-6c809a21333c",<1,1,0>,ZERO_VECTOR,0.,
  447. //[ PRIM_SPECULAR, integer face, string texture, vector repeats, vector offsets, float rotation_in_radians, vector color, integer glossiness, integer environment ]
  448. PRIM_SPECULAR, FUR_FACE,"d8d0d358-ce00-cac7-8f43-98ed7b21e764",<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,56,6,
  449. PRIM_SPECULAR, HEAD_FACE,"d8d0d358-ce00-cac7-8f43-98ed7b21e764",<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,56,6,
  450. PRIM_SPECULAR, LEG_FACE,"d8d0d358-ce00-cac7-8f43-98ed7b21e764",<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,56,6,
  451. PRIM_SPECULAR, COLLAR_FACE,"982b5c5f-e766-c751-2f33-9142a7246c09",<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,56,6
  452. ]);
  453.  
  454. if (collar_state) llSetLinkPrimitiveParamsFast(LINK_ROOT,[
  455. PRIM_NORMAL, COLLAR_FACE,"67284ef3-08c6-1e7f-5985-6c809a21333c",<1,1,0>,ZERO_VECTOR,0.,
  456. PRIM_SPECULAR, COLLAR_FACE,"982b5c5f-e766-c751-2f33-9142a7246c09",<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,56,6
  457. ]);
  458. else llSetLinkPrimitiveParamsFast(LINK_ROOT,[
  459. PRIM_NORMAL, COLLAR_FACE,NULL_KEY,<1,1,0>,ZERO_VECTOR,0.,
  460. PRIM_SPECULAR, COLLAR_FACE,NULL_KEY,<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,51,0
  461. ]);
  462.  
  463. if (muzzle_state) llSetLinkPrimitiveParamsFast(LINK_ROOT,[
  464. PRIM_NORMAL, MUZZLE_FACE,"21914e9b-c12d-491c-43a8-5cd799b2343f",<1,1,0>,ZERO_VECTOR,0.,
  465. PRIM_NORMAL, MUZZLE_FACE2,"11e49ebd-e724-e348-5203-5487d5891e46",<1,1,0>,ZERO_VECTOR,0.,
  466. PRIM_SPECULAR, MUZZLE_FACE,"60a3954f-f956-bc85-9933-fbffc257c6ad",<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,56,6,
  467. PRIM_SPECULAR, MUZZLE_FACE2,"f34dfd4b-eb0a-9282-5231-abfde8bdd379",<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,56,6
  468. ]);
  469. else llSetLinkPrimitiveParamsFast(LINK_ROOT,[
  470. PRIM_NORMAL, MUZZLE_FACE,NULL_KEY,<1,1,0>,ZERO_VECTOR,0.,
  471. PRIM_NORMAL, MUZZLE_FACE2,NULL_KEY,<1,1,0>,ZERO_VECTOR,0.,
  472. PRIM_SPECULAR, MUZZLE_FACE,NULL_KEY,<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,51,0,
  473. PRIM_SPECULAR, MUZZLE_FACE2,NULL_KEY,<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,51,0
  474. ]);
  475. }
  476. else llSetLinkPrimitiveParamsFast(LINK_ROOT,[
  477. PRIM_NORMAL,ALL_SIDES,NULL_KEY,<1,1,0>,ZERO_VECTOR,0.,
  478. PRIM_ALPHA_MODE, ALL_SIDES, PRIM_ALPHA_MODE_BLEND, 0,
  479. PRIM_SPECULAR,ALL_SIDES,NULL_KEY,<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,51,0
  480. //PRIM_ALPHA_MODE, ALL_SIDES, PRIM_ALPHA_MODE_MASK, 130
  481. ]);
  482. }
  483. /*
  484. ClearNormSpec()
  485. {
  486. llSetLinkPrimitiveParamsFast(LINK_ROOT,[
  487. PRIM_NORMAL,ALL_SIDES,NULL_KEY,<1,1,0>,ZERO_VECTOR,0.,
  488. PRIM_SPECULAR,ALL_SIDES,NULL_KEY,<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,51,0]);
  489. }
  490. NormSpec()
  491. {
  492. llSetLinkPrimitiveParamsFast(LINK_ROOT,[
  493. //PRIM_NORMAL, integer face, string texture, vector repeats, vector offsets, float rotation_in_radians
  494. PRIM_NORMAL, FUR_FACE,"ff75be55-a0cf-b251-9f82-b9feceafebb2",<1,1,0>,ZERO_VECTOR,0.,
  495. PRIM_NORMAL, HEAD_FACE,"224e793b-88c8-f94f-0621-8b9065790dc9",<1,1,0>,ZERO_VECTOR,0.,
  496. PRIM_NORMAL, LEG_FACE,"1259ca63-168a-b586-6318-f7bcce3a3bf2",<1,1,0>,ZERO_VECTOR,0.,
  497. PRIM_NORMAL, MUZZLE_FACE,"21914e9b-c12d-491c-43a8-5cd799b2343f",<1,1,0>,ZERO_VECTOR,0.,
  498. PRIM_NORMAL, MUZZLE_FACE2,"11e49ebd-e724-e348-5203-5487d5891e46",<1,1,0>,ZERO_VECTOR,0.,
  499. PRIM_NORMAL, COLLAR_FACE,"67284ef3-08c6-1e7f-5985-6c809a21333c",<1,1,0>,ZERO_VECTOR,0.,
  500. //[ PRIM_SPECULAR, integer face, string texture, vector repeats, vector offsets, float rotation_in_radians, vector color, integer glossiness, integer environment ]
  501. PRIM_SPECULAR, FUR_FACE,"d8d0d358-ce00-cac7-8f43-98ed7b21e764",<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,56,6,
  502. PRIM_SPECULAR, HEAD_FACE,"d8d0d358-ce00-cac7-8f43-98ed7b21e764",<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,56,6,
  503. PRIM_SPECULAR, LEG_FACE,"d8d0d358-ce00-cac7-8f43-98ed7b21e764",<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,56,6,
  504. PRIM_SPECULAR, MUZZLE_FACE,"60a3954f-f956-bc85-9933-fbffc257c6ad",<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,56,6,
  505. PRIM_SPECULAR, MUZZLE_FACE2,"f34dfd4b-eb0a-9282-5231-abfde8bdd379",<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,56,6,
  506. PRIM_SPECULAR, COLLAR_FACE,"982b5c5f-e766-c751-2f33-9142a7246c09",<1,1,0>,ZERO_VECTOR,0.,<1,1,1>,56,6
  507. ]);
  508. }
  509. */
  510.  
  511. default
  512. {
  513. state_entry()
  514. {
  515. OWNER=llGetOwner();
  516. DisplayName();
  517. collar_texture=CollarText_1;
  518. SetTexture(collar_texture, COLLAR_FACE);
  519. muzzle_texture1=MuzzleText_1;
  520. muzzle_texture2=MuzzleText2_1;
  521. muzzle_state=FALSE;
  522. SetTexture(TEXTURE_TRANSPARENT, MUZZLE_FACE);
  523. SetTexture(TEXTURE_TRANSPARENT, MUZZLE_FACE2);
  524. UpdateNormSpec();
  525. }
  526. on_rez(integer sp)
  527. {
  528. if (OWNER!=llGetOwner()) llResetScript();
  529. else
  530. {
  531. if ( llGetAttached() == 0 )//If I am not attached
  532. {
  533. mode=MODE_IDLE;
  534. }
  535. llSleep(1.5);//Pour laisser du temps à l'autre script de démarrer
  536. llMessageLinked(LINK_THIS,isSound,"sound","");
  537. llMessageLinked(LINK_THIS,range,"range","");
  538. llMessageLinked(LINK_THIS,muzzle_state,"muzzle","");
  539.  
  540.  
  541. llSleep(2.);//Pour être sûr en cas de lag
  542. llMessageLinked(LINK_THIS,isSound,"sound","");
  543. llMessageLinked(LINK_THIS,range,"range","");
  544. llMessageLinked(LINK_THIS,muzzle_state,"muzzle","");
  545.  
  546. }
  547. //Menu();
  548. }
  549.  
  550.  
  551. touch_start(integer total_number)
  552. {
  553.  
  554. if (llDetectedKey(0)!=llGetOwner())return;
  555. //OwnerSay( "Touched.");
  556. llListenRemove(lh);
  557. menu_chan=-99-(integer)llFrand(999999.);
  558. lh=llListen(menu_chan, "",llGetOwner(),"");
  559. Menu();
  560.  
  561. }
  562. listen(integer chan, string name, key id, string msg)
  563. {
  564. if (msg=="Main")
  565. {
  566. Menu();
  567. }
  568. else if (msg=="Back")
  569. {
  570. if (menu_i==MENU_ACTIVATE) MenuCollarMuzzle();
  571. else if (menu_i==MENU_MUZZLESTYLE) MenuCollarMuzzle();
  572. else if (menu_i==MENU_COLLARSTYLE) MenuCollarMuzzle();
  573. }
  574. else if (msg=="Sound")
  575. {
  576. isSound=!isSound;
  577. llMessageLinked(LINK_THIS,isSound,"sound","");
  578. Menu();
  579.  
  580. }
  581. else if (msg=="Color")
  582. {
  583. MenuColor();
  584. }
  585. else if (msg=="Fur")
  586. {
  587. MenuFur();
  588. }
  589. else if (msg=="Eye")
  590. {
  591. MenuEye();
  592. }
  593.  
  594. else if (msg=="Collar")
  595. {
  596. MenuBranch=COLLAR_BRANCH;
  597. MenuCollarMuzzle();
  598. }
  599. else if (msg=="Muzzle")
  600. {
  601. MenuBranch=MUZZLE_BRANCH;
  602. MenuCollarMuzzle();
  603. }
  604. else if (msg==BTN_NORMSPEC)
  605. {
  606. MenuBranch=NORMSPEC_BRANCH;
  607. MenuNormSpec();
  608. }
  609. /*
  610. // furs
  611. else if (msg==btnFurCream)
  612. {
  613. OwnerSay(msg);
  614.  
  615. SetTexture(FurCream, FUR_FACE);
  616. SetTexture(HeadCream, HEAD_FACE);
  617. SetTexture(LegCream, LEG_FACE);
  618. MenuFur();
  619. }
  620. else if (msg==btnFurBlack)
  621. {
  622. SetTexture(FurBlack, FUR_FACE);
  623. SetTexture(HeadBlack, HEAD_FACE);
  624. SetTexture(LegBlack, LEG_FACE);
  625. OwnerSay(msg);
  626. MenuFur();
  627. }
  628. else if (msg==btnFurWhite)
  629. {
  630. SetTexture(FurWhite, FUR_FACE);
  631. SetTexture(HeadWhite, HEAD_FACE);
  632. SetTexture(LegWhite, LEG_FACE);
  633. OwnerSay(msg);
  634. MenuFur();
  635. }
  636. */
  637. // eyes
  638. else if (msg==btnEyeSmall)
  639. {
  640. SetTexture(EyeSmall, EYE_FACE);
  641. OwnerSay(msg);
  642. MenuEye();
  643. }
  644. else if (msg==btnEyeMedium)
  645. {
  646. SetTexture(EyeMedium, EYE_FACE);
  647. OwnerSay(msg);
  648. MenuEye();
  649.  
  650. }
  651. else if (msg==btnEyeBig)
  652. {
  653. SetTexture(EyeBig, EYE_FACE);
  654. OwnerSay(msg);
  655. MenuEye();
  656. }
  657. //Collar Muzzle
  658. else if (msg=="Activate")
  659. {
  660. MenuActivate();
  661. llSetTimerEvent(200);
  662. }
  663. else if (msg=="ON")
  664. {
  665. if (MenuBranch==COLLAR_BRANCH)
  666. {
  667. collar_state=TRUE;
  668. SetTexture(collar_texture, COLLAR_FACE);
  669. MenuActivate();
  670. }
  671. else if (MenuBranch==MUZZLE_BRANCH)
  672. {
  673. muzzle_state=TRUE;
  674. llMessageLinked(LINK_THIS,muzzle_state,"muzzle","");
  675. SetTexture(muzzle_texture1, MUZZLE_FACE);
  676. SetTexture(muzzle_texture2, MUZZLE_FACE2);
  677. MenuActivate();
  678.  
  679. }
  680. else if (MenuBranch==NORMSPEC_BRANCH)
  681. {
  682. normSpec_state=TRUE;
  683. MenuNormSpec();
  684. }
  685. UpdateNormSpec();
  686. }
  687. else if (msg=="OFF")
  688. {
  689. if (MenuBranch==COLLAR_BRANCH)
  690. {
  691. collar_state=FALSE;
  692. SetTexture(TEXTURE_TRANSPARENT, COLLAR_FACE);
  693. MenuActivate();
  694. }
  695. else if (MenuBranch==MUZZLE_BRANCH)
  696. {
  697. muzzle_state=FALSE;
  698. llMessageLinked(LINK_THIS,muzzle_state,"muzzle","");
  699. SetTexture(TEXTURE_TRANSPARENT, MUZZLE_FACE);
  700. SetTexture(TEXTURE_TRANSPARENT, MUZZLE_FACE2);
  701. MenuActivate();
  702. }
  703. else if (MenuBranch==NORMSPEC_BRANCH)
  704. {
  705. normSpec_state=FALSE;
  706. MenuNormSpec();
  707. }
  708. UpdateNormSpec();
  709. }
  710.  
  711. else if (msg=="Style")
  712. {
  713. if (MenuBranch==COLLAR_BRANCH) MenuCollarStyle();
  714. else if (MenuBranch==MUZZLE_BRANCH) MenuMuzzleStyle();
  715. }
  716. // collar
  717.  
  718. else if (msg==btnCollar_1)
  719. {
  720. collar_texture=CollarText_1;
  721. SetTexture(CollarText_1, COLLAR_FACE);
  722. OwnerSay(msg);
  723. MenuCollarStyle();
  724. }
  725. else if (msg==btnCollar_2)
  726. {
  727. collar_texture=CollarText_2;
  728. SetTexture(CollarText_2, COLLAR_FACE);
  729. OwnerSay(msg);
  730. MenuCollarStyle();
  731. }
  732. else if (msg==btnCollar_3)
  733. {
  734. collar_texture=CollarText_3;
  735. SetTexture(CollarText_3, COLLAR_FACE);
  736. OwnerSay(msg);
  737. MenuCollarStyle();
  738. }
  739. else if (msg==btnCollar_4)
  740. {
  741. collar_texture=CollarText_4;
  742. SetTexture(CollarText_4, COLLAR_FACE);
  743. OwnerSay(msg);
  744. MenuCollarStyle();
  745. }
  746.  
  747. // muzzle
  748.  
  749. /*
  750. else if (msg==btnMuzzle_None)
  751. {
  752. muzzle_state=FALSE;
  753. llMessageLinked(LINK_THIS,muzzle_state,"muzzle","");
  754. SetTexture(TEXTURE_TRANSPARENT, MUZZLE_FACE);
  755. SetTexture(TEXTURE_TRANSPARENT, MUZZLE_FACE2);
  756. OwnerSay(msg);
  757. MenuMuzzleStyle();
  758. }
  759. */
  760. else if (msg==btnMuzzle_1)
  761. {
  762. muzzle_state=TRUE;
  763. muzzle_texture1=MuzzleText_1;
  764. muzzle_texture2=MuzzleText2_1;
  765. llMessageLinked(LINK_THIS,muzzle_state,"muzzle","");
  766. SetTexture(MuzzleText_1, MUZZLE_FACE);
  767. SetTexture(MuzzleText2_1, MUZZLE_FACE2);
  768. OwnerSay(msg);
  769. MenuMuzzleStyle();
  770. }
  771. else if (msg==btnMuzzle_2)
  772. {
  773. muzzle_state=TRUE;
  774. muzzle_texture1=MuzzleText_2;
  775. muzzle_texture2=MuzzleText2_2;
  776. llMessageLinked(LINK_THIS,muzzle_state,"muzzle","");
  777. SetTexture(MuzzleText_2, MUZZLE_FACE);
  778. SetTexture(MuzzleText2_2, MUZZLE_FACE2);
  779. OwnerSay(msg);
  780. MenuMuzzleStyle();
  781. }
  782. else if (msg==btnMuzzle_3)
  783. {
  784. muzzle_state=TRUE;
  785. muzzle_texture1=MuzzleText_3;
  786. muzzle_texture2=MuzzleText2_3;
  787.  
  788. llMessageLinked(LINK_THIS,muzzle_state,"muzzle","");
  789. SetTexture(MuzzleText_3, MUZZLE_FACE);
  790. SetTexture(MuzzleText2_3, MUZZLE_FACE2);
  791. OwnerSay(msg);
  792. MenuMuzzleStyle();
  793. }
  794. else if (msg==btnMuzzle_4)
  795. {
  796. muzzle_state=TRUE;
  797. muzzle_texture1=MuzzleText_4;
  798. muzzle_texture2=MuzzleText2_4;
  799.  
  800. llMessageLinked(LINK_THIS,muzzle_state,"muzzle","");
  801. SetTexture(MuzzleText_4, MUZZLE_FACE);
  802. SetTexture(MuzzleText2_4, MUZZLE_FACE2);
  803. OwnerSay(msg);
  804. MenuMuzzleStyle();
  805. }
  806.  
  807. // range
  808. else if (msg=="Range")
  809. {
  810. MenuRange();
  811. }
  812. else if (msg=="+")
  813. {
  814. range++;
  815. MenuRange();
  816. }
  817. else if (msg=="++")
  818. {
  819. range=llRound(range*1.5);
  820. MenuRange();
  821. }
  822. else if (msg=="+++")
  823. {
  824. range=llRound(range*2);
  825. MenuRange();
  826. }
  827. else if (msg=="-")
  828. {
  829. range--;
  830. MenuRange();
  831. }
  832. else if (msg=="--")
  833. {
  834. range=llRound(range/1.5);
  835. MenuRange();
  836. }
  837. else if (msg=="---")
  838. {
  839. range=llRound(range/2);
  840. MenuRange();
  841. }
  842. else if (msg==BTN_STATIC)
  843. {
  844. MenuStatic();
  845. }
  846. else if (msg==BTN_STATIC_STOP)
  847. {
  848. mode=prev_mode;
  849. llMessageLinked(LINK_THIS,mode,"mode","");
  850. MenuStatic();
  851. }
  852. else if (llListFindList (statics,[msg])!=-1)
  853. {
  854. if (mode!=MODE_STATIC) prev_mode=mode;
  855. mode=MODE_STATIC;
  856. llMessageLinked(LINK_THIS,mode,"mode","");
  857. llMessageLinked(LINK_THIS,llListFindList (statics,[msg]),"static","");
  858. MenuStatic();
  859. }
  860. else if (msg=="Activity")
  861. {
  862. MenuActivity();
  863. }
  864. else if (msg=="Idle")
  865. {
  866. mode=MODE_IDLE;
  867. llMessageLinked(LINK_THIS,mode,"mode","");
  868. MenuActivity();
  869. }
  870. else if (msg=="Wander")
  871. {
  872. mode=MODE_WANDER;
  873. llMessageLinked(LINK_THIS,mode,"mode","");
  874. MenuActivity();
  875. }
  876. else if (msg=="Follow")
  877. {
  878. mode=MODE_FOLLOW;
  879. llMessageLinked(LINK_THIS,mode,"mode","");
  880. MenuActivity();
  881. }
  882. //NAME
  883. else if (msg=="Name")
  884. {MenuName();}
  885. else if (msg=="Set Name")
  886. {
  887. llTextBox(llGetOwner(),"\nChoose a name for your pet.\nUse . or _ to delete name\nLeave blank or press <ignore> to leave it as it is.",menu_chan);
  888. llSetTimerEvent(200);
  889. }
  890. else if (msg=="Name Color")
  891. {
  892. MenuNameColor();
  893. }
  894. else if (msg=="Name ON")
  895. {
  896. isNameOn=TRUE;
  897. DisplayName();
  898. MenuName();
  899. }
  900. else if (msg=="Name OFF")
  901. {
  902. isNameOn=FALSE;
  903. DisplayName();
  904. MenuName();
  905. }
  906.  
  907. else if (llListFindList(colors_,[msg])!=-1)
  908. {
  909. //llSetText("",<0,0,0>,0);
  910. color_vector=llList2Vector(colors_vect,llListFindList(colors_,[msg]));
  911. DisplayName();
  912. MenuNameColor();
  913. }
  914. else if (msg!="")
  915. {
  916. pet_name=msg;
  917. isNameOn=TRUE;
  918. DisplayName();
  919. MenuName();
  920. }
  921. }
  922. timer()
  923. {
  924. llListenRemove(lh);
  925. llSetTimerEvent(0);
  926. llParticleSystem([]);
  927. }
  928. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement