Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.85 KB | None | 0 0
  1. function fxDTSBrick::doRPlayerTeleport(%obj,%target,%dir,%velocityop,%rel,%client)
  2. {
  3. //we need to find the specified Named Brick.
  4. //get nt object array stuff
  5. %group = %obj.getGroup();
  6. if(%group.NTObjectCount_[%target] > 1)
  7. %targetobj = %group.NTObject_[%target, %group.NTObjectCount_[%target]-1];
  8. else
  9. %targetobj = %group.NTObject_[%target, 0];
  10.  
  11. // re-adding functionality for teleporting to the brick you click (with relays, etc)
  12. if(%target $= "SELF") {
  13. %targetobj = %obj;
  14. }
  15.  
  16. if(!isObject(%targetobj)) {
  17. return;
  18. }
  19.  
  20. // teleport
  21. if(isobject(%client.player))
  22. {
  23. %player = %client.player;
  24. switch (%dir)
  25. {
  26. case 0 :
  27. %prot = getwords(%player.gettransform(),3,6);
  28.  
  29. case 1 :
  30. %prot = "1 0 0 0";
  31. %velo = 0;
  32.  
  33. case 2 :
  34. %prot = "0 0 1 1.57079";
  35. %velo = 1;
  36.  
  37. case 3 :
  38. %prot = "0 0 1 3.14159";
  39. %velo = 2;
  40.  
  41. case 4 :
  42. %prot = "0 0 1 -1.57079";
  43. %velo = 3;
  44.  
  45.  
  46. }
  47. if(%rel != 1 || !$Server::DoPlayerTeleport::Allow)
  48. {
  49. %or = getwords(%targetobj.gettransform(),0,2);
  50. %lscale = 0.1*%targetobj.getdatablock().bricksizez;
  51.  
  52. %finalsend = "0 0" SPC %lscale;
  53. %fr = vectoradd(%or,%finalsend);
  54.  
  55.  
  56. %finaltransform = %fr SPC %prot;
  57. %turn = %player.getvelocity();
  58. %player.settransform(%finaltransform);
  59. }
  60. else if(%rel == 1)
  61. {
  62. %or = getwords(%targetobj.gettransform(),0,2);
  63. %lscale = 0.1*%targetobj.getdatablock().bricksizez;
  64. %finalsend = "0 0" SPC %lscale;
  65.  
  66. %offset = vectorsub(%player.getposition(),%obj.getposition());
  67. %player.settransform(vectoradd(%targetobj.getposition(),%offset) SPC getwords(%player.gettransform(),3,6));
  68. }
  69. if(%velocityop == 0)
  70. {
  71. %player.setvelocity("0 0 0");
  72. }
  73. }
  74. }
  75. registerOutputEvent("fxDTSBrick","doRPlayerTeleport","string 500 90\tlist Relative 0 North 1 East 2 South 3 West 4\tbool\tbool",1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement