Geplaatst: 28 februari 200916 jaren comment_1286138 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?
Geplaatst: 28 februari 200916 jaren comment_1286312 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 200916 jaren door Big Boss
Geplaatst: 3 maart 200916 jaren comment_1290176 Hier snap ik helemaal niks van, zou je het iets beter willen uit leggen want ik zoek al een tijdje hoe dat werkt
Geplaatst: 4 maart 200916 jaren comment_1290262 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; }
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?