Jump to content

move object


Recommended Posts

Geplaatst:

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: (bewerkt)

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 :Y

Bewerkt: door VWO-er
Geplaatst:
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 :Y

Sorry ik snap hem niet ik weet niet wat ik presies moet doen

Geplaatst:
P.S. Ik weet het niet zeker, maar het zou dus kúnnen werken :Y
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:
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:
P.S. Ik weet het niet zeker, maar het zou dus kúnnen werken :Y
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: (bewerkt)

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: door VWO-er
Geplaatst:
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:

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:
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:

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 :puh:

Geplaatst:
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 :puh:

dus als ik dat ie automatish open gaat moet ik een coord hebben die er net voor staat??

Geplaatst: (bewerkt)

Hoeft niet. Met de IsPlayerInArea-functie geef je een gebied op. Ik maak even een voorbeeld:

uitlegisplayerinareafunml2.png

Let niet op mijn briljante Paint-kunsten, zolang je begrijpt wat ik bedoel :Y 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... :puh:

Bewerkt: door VWO-er
Geplaatst:
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).

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.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...