zombie.lslp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. string getScream(){
  2. screams = ["scream1","scream2","scream3","scream4"];
  3. integer screamLen = llGetListLength(screams);
  4. screamCounter++;
  5. if (screamCounter>screamLen-1){
  6. screamCounter=0;
  7. }
  8. return llList2String(screams,screamCounter);
  9. }
  10. default
  11. {
  12. state_entry()
  13. {
  14. llSetStatus(STATUS_ROTATE_X,FALSE);
  15. llSetStatus(STATUS_ROTATE_Y,FALSE);
  16. llSensorRepeat("","",AGENT,30,PI,5);
  17. }
  18. sensor(integer s){
  19. //llLookAt(llDetectedPos(0),2,2);
  20. llSetStatus(STATUS_PHYSICS,TRUE);
  21. vector randomoffset=<llFrand(20)-10,llFrand(20)-10,0>;
  22. vector deathTarget = llDetectedPos(0);
  23. target_id = llTarget(deathTarget, 0.5);
  24. llMoveToTarget(deathTarget+randomoffset, 3);
  25. llSleep(1);llSetStatus(STATUS_PHYSICS,FALSE);
  26. }
  27. at_target(integer tnum, vector targetpos, vector ourpos)
  28. {
  29. if (tnum == target_id)
  30. {
  31. llTriggerSound(getScream(), 0.3);
  32. //llTriggerSound("SND_JELLY_ATTACK", 0.5);
  33. attackTimes++;
  34. //changeColor(WHITE,1,0.2);
  35. llPushObject(deathKey,<5,5,5>, <5,5,5>, TRUE);
  36. llTargetRemove(target_id);
  37. if (attackTimes>5) {
  38. attackTimes= 0;
  39. state ready;
  40. }
  41. }
  42. }
  43. }
  44. // Please leave the following line intact to show where the script lives in Git:
  45. // SLOODLE LSL Script Git Location: mod/interaction-1.0/objects/enemyrezzer/assets/zombie.lslp