March 17, 200818 yr heey mensen. hek5 =CreateObject(975,639.209,-2392.466,30.540,0.0,0.0,0.0); hek6 =CreateObject(975,630.401,-2392.464,30.540,0.0,0.0,-180.000); hoe zorg ik ervoor dat als ik er voor ga hij automatich open gaat??
March 17, 200818 yr Ik weet niet of het werkt, maar je zou eens deze functie kunnen gebruiken met een 'if'. Ik bedoel dan iets van dit: if (IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy)) { MoveObject(objectid, Float:X, Float:Y, Float:Z, Float:Speed); } Voorwaarde is wel dat je beschikt over de Useful Functions include die je hier kunt downloaden. P.S. Ik weet het niet zeker, maar het zou dus kúnnen werken Edited March 17, 200818 yr by VWO-er
March 17, 200818 yr Author Ik weet niet of het werkt, maar je zou eens deze functie kunnen gebruiken met een 'if'. Ik bedoel dan iets van dit: if (IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy)) { MoveObject(objectid, Float:X, Float:Y, Float:Z, Float:Speed); } Voorwaarde is wel dat je beschikt over de Useful Functions include die je hier kunt downloaden. P.S. Ik weet het niet zeker, maar het zou dus kúnnen werken Sorry ik snap hem niet ik weet niet wat ik presies moet doen
March 17, 200818 yr P.S. Ik weet het niet zeker, maar het zou dus kúnnen werken In het begin van SA:MP 0.2 ooit zoiets gemaakt, zou gewoon nog moeten werken: forward GateCheck(); new gate; public OnGameModeInit() { gate = CreateObject(971, 213.78, 1875.31, 12.33, 0.00, 0.00, 0.00); SetTimer("GateCheck", 1000, 1); return 1; } public GateCheck() { for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(IsPlayerInArea(i, 210, 218, 1872, 1880)){ MoveObject(gate, 222.78, 1875.31, 12.33, 3); } else { MoveObject(gate, 213.78, 1875.31, 12.33, 3); } } } } IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); if (x > minx && x < maxx && y > miny && y < maxy) return 1; return 0; }
March 17, 200818 yr In het begin van SA:MP 0.2 ooit zoiets gemaakt, zou gewoon nog moeten werken: //code Nee, dat werkt niet: - new gate moet niet bij OnGameModeInit staan, maar bovenaan het script. - De 'return false' in de GateCheck-functie kan weg, die heeft geen nut en geeft een warning. >>> Door Azer: Meh inderdaad, bedankt inmiddels aangepast <<<
March 18, 200818 yr Author P.S. Ik weet het niet zeker, maar het zou dus kúnnen werken In het begin van SA:MP 0.2 ooit zoiets gemaakt, zou gewoon nog moeten werken: forward GateCheck(); public OnGameModeInit() { new gate; gate = CreateObject(971, 213.78, 1875.31, 12.33, 0.00, 0.00, 0.00); SetTimer("GateCheck", 1000, 1); return 1; } // ignore the warning public GateCheck() { for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(IsPlayerInArea(i, 210, 218, 1872, 1880)){ MoveObject(gate, 222.78, 1875.31, 12.33, 3); return false; } else { MoveObject(gate, 213.78, 1875.31, 12.33, 3); } } } } IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); if (x > minx && x < maxx && y > miny && y < maxy) return 1; return 0; } if(IsPlayerInArea(i, 210, 218, 1872, 1880)){ wat houd dit in kan ik dit ook gebruiken??
March 18, 200818 yr Ja, je kan dat ook gebruiken. Voorwaarde is wel dat je de volgende code ergens in je script neerzet (handigste is bovenaan, boven de OnGameModeInit-callback, doe ik in ieder geval). IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); if (x > minx && x < maxx && y > miny && y < maxy) return 1; return 0; } En ik geloof dat Azer de 'forward'-regel van de IsPlayerInArea-functie ook is vergeten. Hierbij: Deze code zet je helemaal boven aan je script, onder de define-regels. forward IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy); Edited March 18, 200818 yr by VWO-er
March 18, 200818 yr Author Ja, je kan dat ook gebruiken. Voorwaarde is wel dat je de volgende code ergens in je script neerzet (handigste is bovenaan, boven de OnGameModeInit-callback, doe ik in ieder geval). IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); if (x > minx && x < maxx && y > miny && y < maxy) return 1; return 0; } En ik geloof dat Azer de 'forward'-regel van de IsPlayerInArea-functie ook is vergeten. Hierbij: Deze code zet je helemaal boven aan je script, onder de define-regels. forward IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy); if(IsPlayerInArea(i, 210, 218, 1872, 1880)){ maar ik bedoel moet ik er geen andere coord in doen ??
March 18, 200818 yr Tuurlijk, je moet jouw coördinaten erin zetten. Anders zal er op de plek van Azer jouw poort (die bij wijze van spreken aan de andere kant van de staat San Andreas staat) opengaan/dichtgaan. Je moet die dus natuurlijk wel veranderen.
March 18, 200818 yr Author Tuurlijk, je moet jouw coördinaten erin zetten. Anders zal er op de plek van Azer jouw poort (die bij wijze van spreken aan de andere kant van de staat San Andreas staat) opengaan/dichtgaan. Je moet die dus natuurlijk wel veranderen. maar ik bedoel dit if(IsPlayerInArea(i, 210, 218, 1872, 1880 moet ik die coords ook veranderen want volgens mij is dat geen coord
March 18, 200818 yr Ik denk dat jij bedoelt dat er geen decimalen achter staan. Jij wil er denk ik iets als dit hebben: if(IsPlayerInArea(i, 210.31, 218.341, 1872.52, 1880.87)) Die decimalen (hierboven gemarkeerd in een vetgedrukt lettertype) hoeven er niet per sé achter te staan. Het kunnen net zo goed hele getallen zijn. Die decimalen gebruiken we als we de locatie preciezer willen aangeven, denk aan het object precies op een muur zetten. Die decimalen hóeven er niet bij, maar mógen er wel bij. Het zijn dus wel coördinaten, alleen lijken ze wat anders. Als dit nog niet is wat je bedoelt, leg 't dan beter uit
March 18, 200818 yr Author Ik denk dat jij bedoelt dat er geen decimalen achter staan. Jij wil er denk ik iets als dit hebben:if(IsPlayerInArea(i, 210.31, 218.341, 1872.52, 1880.87)) Die decimalen (hierboven gemarkeerd in een vetgedrukt lettertype) hoeven er niet per sé achter te staan. Het kunnen net zo goed hele getallen zijn. Die decimalen gebruiken we als we de locatie preciezer willen aangeven, denk aan het object precies op een muur zetten. Die decimalen hóeven er niet bij, maar mógen er wel bij. Het zijn dus wel coördinaten, alleen lijken ze wat anders. Als dit nog niet is wat je bedoelt, leg 't dan beter uit dus als ik dat ie automatish open gaat moet ik een coord hebben die er net voor staat??
March 18, 200818 yr Hoeft niet. Met de IsPlayerInArea-functie geef je een gebied op. Ik maak even een voorbeeld: Let niet op mijn briljante Paint-kunsten, zolang je begrijpt wat ik bedoel Even een korte uitleg: De rode stip is de xmin. De groene stip is de xmax. Ook tussen deze coördinaten gaat de poort open. De roze stip is de ymin. De oranje stip is de ymax. Ook tussen deze coördinaten gaat de poort open. Ook tussen de xmin en ymin gaat de poort open, en tussen de de xmax en ymax ook. Eigenlijk in dat hele gebied wat op elke mogelijke coördinaat, wat tussen de coördinaten die je zelf hebt ingegeven, ligt, gaat de poort open. Kortom, in dat hele gebied gaat de poort open. Je moet dus in tegenstelling tot andere commando's als AddStaticVehicle 4 coördinaten invoeren. Niet één, wat ik uit jouw zin op maak. Je hoeft dus ook niet op precies, maar dan ook precies hetzelfde coördinaat te staan. Edit: Rechthoeken kunnen dus blijkbaar alleen... Edited March 19, 200818 yr by VWO-er
March 18, 200818 yr En ik geloof dat Azer de 'forward'-regel van de IsPlayerInArea-functie ook is vergeten. Hierbij: Deze code zet je helemaal boven aan je script, onder de define-regels. forward IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy); Is ook niet verplicht (compiler geeft alleen een waarschuwing voor public functions).
March 18, 200818 yr @VWO-er: IsPlayerInArea is alleen voor rechthoeken, dus allemaal hoeken van 90 graden.
heey mensen.
hek5 =CreateObject(975,639.209,-2392.466,30.540,0.0,0.0,0.0);
hek6 =CreateObject(975,630.401,-2392.464,30.540,0.0,0.0,-180.000);
hoe zorg ik ervoor dat als ik er voor ga hij automatich open gaat??