Mindtwistah Posted June 28, 2007 Share Posted June 28, 2007 Is there a script that warps the PC anywhere within 10 meters? I would like the script for K1 and if possible for TSL. Link to comment Share on other sites More sharing options...
Master Zionosis Posted June 28, 2007 Share Posted June 28, 2007 I guess you need to clarify a bit, warp the PC 10 meters within what? Link to comment Share on other sites More sharing options...
Mindtwistah Posted June 28, 2007 Author Share Posted June 28, 2007 A script that warps the PC withing 10 meters. So when the script is activated you will warp anywhere withing 10 meters. Link to comment Share on other sites More sharing options...
Master Zionosis Posted June 28, 2007 Share Posted June 28, 2007 A script that warps the PC withing 10 meters. So when the script is activated you will warp anywhere withing 10 meters. Errr, like a random location within 10 meters where the PC is already? I don't think it's possible to warp somewhere in the current module at random, i may be wrong, I'm sure Stoffe would know. Link to comment Share on other sites More sharing options...
Mindtwistah Posted June 28, 2007 Author Share Posted June 28, 2007 Yes, a random location within 10 meters. Stoffe, if you see this, please tell me if it is possible or not. Link to comment Share on other sites More sharing options...
swfan28 Posted June 28, 2007 Share Posted June 28, 2007 This would be very similar to the action ActionRandomWalk(). The only difference is that here the character would warp to location instead of walking. I don't think there is a function for warping to random location though or even for generating a random location near the caller. It might be possible to script one using random numbers and the function vector GetPosition(object oTarget) but it would be difficult. Link to comment Share on other sites More sharing options...
stoffe Posted June 28, 2007 Share Posted June 28, 2007 Yes, a random location within 10 meters. Stoffe, if you see this, please tell me if it is possible or not. Something like this should probably work to "teleport" the player to a random location within a 10 meter radius. Keep in mind that it doesn't care if you have line of sight to the target location, so it might warp you through walls and doors if used in a tight indoor location. void main() { object oPC = GetFirstPC(); float fAngle = IntToFloat(Random(360)); float fDist = IntToFloat(Random(101)) / 10.0; location lRand = Location(GetPosition(oPC) + AngleToVector(fAngle) * fDist, GetFacing(oPC)); DelayCommand(0.5, AssignCommand(oPC, JumpToLocation(lRand))); } Link to comment Share on other sites More sharing options...
Mindtwistah Posted June 28, 2007 Author Share Posted June 28, 2007 Thank you Stoffe. You always save the day EDIT: Is this for K1 or TSL? Link to comment Share on other sites More sharing options...
stoffe Posted June 28, 2007 Share Posted June 28, 2007 EDIT: Is this for K1 or TSL? It should work for both games, none of the functions used are TSL exclusive. Link to comment Share on other sites More sharing options...
Mindtwistah Posted July 19, 2007 Author Share Posted July 19, 2007 If I want myself to teleport withing 100 meters radius, would the script be this: void main() { object oPC = GetFirstPC(); float fAngle = IntToFloat(Random(360)); float fDist = IntToFloat(Random(101)) / 100.0; location lRand = Location(GetPosition(oPC) + AngleToVector(fAngle) * fDist, GetFacing(oPC)); DelayCommand(0.5, AssignCommand(oPC, JumpToLocation(lRand))); } ? Link to comment Share on other sites More sharing options...
tk102 Posted July 19, 2007 Share Posted July 19, 2007 That would be 0-1 meter range. Try float fDist=IntToFloat(Random(1001))/10.0; Link to comment Share on other sites More sharing options...
Mindtwistah Posted July 19, 2007 Author Share Posted July 19, 2007 Thanks tk for the fast answer. Link to comment Share on other sites More sharing options...
tk102 Posted July 19, 2007 Share Posted July 19, 2007 In TSL you can also use void main() { object oPC=GetFirstPC(); int nRange = 100; // 100 meters vector vNew=GetRandomDestination(GetFirstPC(), nRange); location lRand=Location(vNew, GetFacing(oPC)); DelayCommand(0.5, AssignCommand(oPC, JumpToLocation(lRand))); } If you wanted a line-of-sight check (in TSL only): void main() { object oPC=GetFirstPC(); int nRange = 100; // 100 meters int nCount=0; vector vOld=GetPosition(oPC); vector vNew; location lRand; while (nCount<20) { vNew=GetRandomDestination(GetFirstPC(), nRange); if (HasLineOfSight(vOld, vNew)) { break; } nCount++; } if (nCount<20) { lRand=Location(vNew,GetFacing(oPC)); DelayCommand(0.5, AssignCommand(oPC, JumpToLocation(lRand))); } else { SendMessageToPC(oPC,"Random warp failed to find a suitable destination."); } } Link to comment Share on other sites More sharing options...
stoffe Posted July 19, 2007 Share Posted July 19, 2007 If you wanted a line-of-sight check (in TSL only): (snip) Be warned though that the HasLineOfSight() function is extremely unreliable. Sometimes it can return FALSE for something that's right in front of you, or TRUE for something that's behind closed doors or behind walls. It also seems to have trouble determining if placeables on the path is blocking the line of sight. Link to comment Share on other sites More sharing options...
tk102 Posted July 19, 2007 Share Posted July 19, 2007 Yeah I saw the programmer's notes on that too. He said something like 60% success rate... Link to comment Share on other sites More sharing options...
Mindtwistah Posted August 12, 2007 Author Share Posted August 12, 2007 What if I want to warp the PC 10 meters forward? Is there a script for that? Link to comment Share on other sites More sharing options...
stoffe Posted August 13, 2007 Share Posted August 13, 2007 What if I want to warp the PC 10 meters forward? Is there a script for that? Something like this would probably work: void main() { object oPC = GetFirstPC(); float fFace = GetFacing(oPC); location lForward = Location(GetPosition(oPC) + AngleToVector(fFace) * 10.0, fFace); DelayCommand(0.5, AssignCommand(oPC, JumpToLocation(lForward))); } Link to comment Share on other sites More sharing options...
Mindtwistah Posted August 13, 2007 Author Share Posted August 13, 2007 Wow, thank you Stoffe Now I may be able to warp to the place where the ship lands and goes on Taris Upper City Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.