Jump to content
Geplaatst:
comment_1325259

Hallo, ik heb nu zo gemaakt dat als je in een Marquis stapt, een piratenschip je attacht. (Met AttachObjectToPlayer) Zodat het net lijkt of je met een piratenschip vaart. Maar nu wil ik dat als je uitstapt, het piratenschip stopt met attachen en stil blijft liggen op de plek waar je uitstapt. (De Marquis moet destroyed worden en jij moet op het schip spawnen) Maar ik krijg dit met geen mogelijkheid voor elkaar. Ik heb veel manieren geprobeert, maar kom er gewoon niet uit. Het probleem is dat het piratenschip je blijft attachen nadat je uitstapt. Weet iemand hoe ik het voor elkaar krijg dat het schip stopt met attachen na het uitstappen? :?

Alvast bedankt. :koffie:

Featured Replies

Geplaatst:
  • Auteur
comment_1325594
Volgensmij is er geen ene mogelijkheid om het attachen te stoppen, wat ik wel weet is dat als je dood gaat dan stop het attachen wel.

Met DestroyObject stopt ie met attachen, maar dan is ie ook gelijk helemaal weg. Weet verder niemand hoe ik dit voor elkaar krijg?

Geplaatst:
comment_1326061
StopObject(NaamObject);

?

Werkt niet, het schip verdwijnt compleet na uitstappen. :(

StopPlayerObject(playerid, objectid);

Is weer iets anders dan D-V-D-K noemde, probeer dat eens.

Weet jij serieus wat dat betekend?

StopPlayerObject en CreatePlayerObject en overal waar het woord ''player'' in zit geld alleen voor een player, dus als een voorwerp voor iedereen stoppen niet werkt, dan werkt het voorwerp stoppen voor 1 player ook niet.

Geplaatst:
comment_1326235

Misschien als een speler uitstapt GetPlayerPos gebruiken en dan CreateObject met de positie van de speler. Daarna doe je SetPlayerPos, weer dat coordinaat van GetPlayerPos, maar nu doe je bijv: Z +3 .

(3 = het aantal omhoog om op het dek te komen)

Edit: En daar achteraan doe je die marquis vernietigen. Misschien kan je in plaats van GetPlayerPos wel GetVehiclePos gebruiken(dat bestaat toch ook).

Bewerkt: door jorD1

Geplaatst:
  • Auteur
comment_1326294
Misschien als een speler uitstapt GetPlayerPos gebruiken en dan CreateObject met de positie van de speler. Daarna doe je SetPlayerPos, weer dat coordinaat van GetPlayerPos, maar nu doe je bijv: Z +3 .

(3 = het aantal omhoog om op het dek te komen)

Edit: En daar achteraan doe je die marquis vernietigen. Misschien kan je in plaats van GetPlayerPos wel GetVehiclePos gebruiken(dat bestaat toch ook).

Hoe doe ik dat +3 dan?

Geplaatst:
  • Auteur
comment_1326371

Het zag er zo overtuigend uit, maar nu crasht de boel als ik wil uitstappen. :cry:

public OnFilterScriptInit()
{
shiphull = CreateObject(8493,-5807,-5680,15.5,0,0,300);
shipsail = CreateObject(9159,-5807,-5680,15.5,0,0,300);
shiprope = CreateObject(8981,-5807.56,-5691.2,-15.1,0,0,300);
return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/entership", cmdtext, true, 10) == 0)
{
	testship = CreateVehicle(484,-5807,-5695,0,300,0,0,0);
	LinkVehicleToInterior(testship,1);
	PutPlayerInVehicle(playerid,testship,0);
	return 1;
}
return 0;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
	if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 484)
	{
		AttachObjectToPlayer(shiphull,playerid,0,15,15.5,0,0,0);
		AttachObjectToPlayer(shipsail,playerid,0,15,15.5,0,0,0);
		AttachObjectToPlayer(shiprope,playerid,-0.56,8.8,15.1,0,0,0);
	}
}
return 1;
}

public OnPlayerExitVehicle(playerid,vehicleid)
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 484)
	{
	new Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ; // Floats

	GetPlayerPos(playerid,X,Y,Z);	  // Kijkt naar positie player
	GetPlayerFacingAngle(playerid,rZ); // Kijkt naar rotatie player
	DestroyObject(shiphull);
	DestroyObject(shipsail); // Destroyed objecten
	DestroyObject(shiprope);
	RemovePlayerFromVehicle(playerid);
	DestroyVehicle(testship);
	CreateObject(shiphull,X,(Y+15),(Z+15.5),rX,rY,rZ);
	CreateObject(shipsail,X,(Y+15),(Z+15.5),rX,rY,rZ); // Create ze weer
	CreateObject(shiprope,(X+-0.56),(Y+8.8),(Z+15.1),rX,rY,rZ);
	SetPlayerPos(playerid,X,Y,(Z+3));
	SetPlayerFacingAngle(playerid,rZ);
}
return 1;
}

Bewerkt: door Basssss

Geplaatst:
comment_1330245

Eén ding weet ik je alvast wel te vertellen: Die boot werkt maar voor 1 speler. Als iemand in een Marquis stapt, wordt die boot (shiphull, etc) geattached aan die speler.

Als nu iemand anders OOK in een Marquis stapt, worden diezelfde objecten bij de andere speler geplaatst.

new shiphull[MAX_PLAYERS];
new shipsale[MAX_PLAYERS];
new shiprope[MAX_PLAYERS];

public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
	if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 484)
	{
		shiphull[playerid] = CreateObject(8493,-5807,-5680,15.5,0,0,300);
		shipsail[playerid] = CreateObject(9159,-5807,-5680,15.5,0,0,300);
		shiprope[playerid] = CreateObject(8981,-5807.56,-5691.2,-15.1,0,0,300);
		AttachObjectToPlayer(shiphull[playerid],playerid,0,15,15.5,0,0,0);
		AttachObjectToPlayer(shipsail[playerid],playerid,0,15,15.5,0,0,0);
		AttachObjectToPlayer(shiprope[playerid],playerid,-0.56,8.8,15.1,0,0,0);
	}
}
return 1;
}

Geplaatst:
comment_1330370

Wat ik me afvraag is wat je nu uiteindelijk met die schepen wilt gaan doen. Zoals ik het begrijp wil je, wanneer je in een marquis stapt een piratenboot om je heen laten spawnen. Laten we er even vanuit gaan dat dit schip blijft liggen wanneer je uitstapt, je erop spawnt en de marquis terugspawnt. Wat gebeurt er dan met het piratenschip? Blijft dat eeuwig staan? Dan zou je wat uiteindelijk vol komen te staan met schepen lijkt me zo... Of wil je dat wanneer je weer in een marquis stapt, het oude schip weer verdwijnt..?

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

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.