jorD1 Geplaatst: 28 februari 2009 Rapport Geplaatst: 28 februari 2009 Ik snap niet echt hoe je een command maakt die alleen in een bepaalt gebied (area) werkt, zoals voor een deur. zou iemand hiervan een voorbeeldje wilen geven? Reageren
Big Boss Geplaatst: 28 februari 2009 Rapport Geplaatst: 28 februari 2009 (bewerkt) PlayerToPoint of IsPlayerInArea. Persoonlijke voorkeur gaat uit naar PlayerToPoint in dit geval. Je kan dan een kleine radius nemen, met de coördinaten van de pickup (of zo) aan de deur. PlayerToPoint(Float:radius, playerid, Float:X, Float:Y, Float:Z) { new Float:oldpos[3], Float:temppos[3]; GetPlayerPos(playerid, oldpos[0], oldpos[1], oldpos[2]); temppos[0] = (oldpos[0] -X); temppos[1] = (oldpos[1] -Y); temppos[2] = (oldpos[2] -Z); if(((temppos[0] < radius) && (temppos[0] > -radius)) && ((temppos[1] < radius) && (temppos[1] > -radius)) && ((temppos[2] < radius) && (temppos[2] > -radius))) { return true; } return false; } Dus: if(!strcmp("/enter", cmdtext, true)) { if(!PlayerToPoint(3.0, playerid, 1234.56, 2356.54, 24.25) return false; SetPlayerPos(playerid, ...); SetPlayerInterior(playerid, ...); return 1; } Bewerkt: 28 februari 2009 door Big Boss Reageren
Crusher!! Geplaatst: 3 maart 2009 Rapport Geplaatst: 3 maart 2009 Hier snap ik helemaal niks van, zou je het iets beter willen uit leggen want ik zoek al een tijdje hoe dat werkt Reageren
Sandra Geplaatst: 4 maart 2009 Rapport Geplaatst: 4 maart 2009 Hier snap ik helemaal niks van, zou je het iets beter willen uit leggen want ik zoek al een tijdje hoe dat werkt Die bovenste code zet je in ergens (onderaan) je script. Je hoeft hem alleen maar te kopiëren en te plakken en niets er aan veranderen. Dat is een functie die de afstand tussen een speler tot een bepaald punt berekend. Als die afstand kleiner is dan de ingevulde maximum afstand (radius), dan word het positief (return 1;), en anders (als de speler verder is dan de maximum afstand, word de functie negatief (return 0;) Om dus de PlayerToPoint-functie te gebruiken, moet je de if(PlayerToPoint(radius, playerid, x, y, z)) goed invullen en op de juiste plaats in jouw commando zetten. Bijvoorbeeld de deur die jij bedoeld, heeft de coordinaten: X = 837.4 Y = -1239.7 Z = 10.40 en je wilt dat de speler alleen het commando kan gebruiken als die minder dan 3 coordinaten (meter) van de deur vandaan is. Dan zet je in je commando: if(strcmp(cmdtext, "/opendeur", true)==0) { if(PlayerToPoint(3.0, playerid, 837.4, -1239.7, 10.40) { SetPlayerPos(playerid, ...); SetPlayerInterior(playerid, ...); } else { SendClientMessage(playerid, 0xFF0000AA, "Je bent niet dicht genoeg bij de deur!!"); } return 1; } Reageren
Crusher!! Geplaatst: 4 maart 2009 Rapport Geplaatst: 4 maart 2009 dat is duidelijke taal thnx Reageren
Recommended Posts
Een reactie plaatsen
Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.