Geplaatst: 17 maart 200817 jaren comment_913951 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??
Geplaatst: 17 maart 200817 jaren comment_913963 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 Bewerkt: 17 maart 200817 jaren door VWO-er
Geplaatst: 17 maart 200817 jaren Auteur comment_914017 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
Geplaatst: 17 maart 200817 jaren comment_914242 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; }
Geplaatst: 17 maart 200817 jaren comment_914245 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 <<<
Geplaatst: 18 maart 200817 jaren Auteur comment_914393 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??
Geplaatst: 18 maart 200817 jaren comment_914508 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); Bewerkt: 18 maart 200817 jaren door VWO-er
Geplaatst: 18 maart 200817 jaren Auteur comment_914608 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 ??
Geplaatst: 18 maart 200817 jaren comment_914616 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.
Geplaatst: 18 maart 200817 jaren Auteur comment_914618 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
Geplaatst: 18 maart 200817 jaren comment_914631 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
Geplaatst: 18 maart 200817 jaren Auteur comment_914637 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??
Geplaatst: 18 maart 200817 jaren comment_914643 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... Bewerkt: 19 maart 200817 jaren door VWO-er
Geplaatst: 18 maart 200817 jaren comment_914683 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).
Geplaatst: 18 maart 200817 jaren comment_914844 @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??