Jump to content

[sa:mp] Faire Bouger Un Objet


thomasleroi
 Share

Recommended Posts

Bonjour, je voudrais savoir comment faire bouger un objet dans sa:mp à partir d'une commande.

Je voudrais faire une barrière qui monte et qui decend avec les commandes /ouvrir, /fermer et si possible comment la faire à proximiter de l'objet !

 

EDIT: J'ai trouvé ça

 

MoveObject(objectid, Float:X, Float:Y, Float:Z, Float:Speed);

Edited by thomasleroi
Link to comment
Share on other sites

J'ai peut etre une solution (mais elle n'est pas fiable a 100%) ca rje n'arrive pas a le daire non plus

 

 

 

Tout en haut de ton GM (game mode)

Avec les autre New

 

new obja; //porte c’est ce qui defini l’object

-----------------------------------------------------------------------------------------------------/

//////////DANS GAMEMODEINIT///////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////

-----------------------------------------------------------------------------------------------------/

obja = CreateObject (11111, -2032.215942, 409.041168, 34.243126, 0, 0, 0); /

/

On donne les position de l’object /

-----------------------------------------------------------------------------------------------------/

//////////////////////////////////////////////////////////////////////////////////////////////////////

// ///////DANS ONPLAYERCOMMANDTEXT////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////

-----------------------------------------------------------------------------------------------------/

if(strcmp(cmd, "/bouge", true) == 0)

{

MoveObject (PORTE, -2033.160034, 409.493530, 67.065811, 4.0);

return 1;

}

 

On fait bouger l'object "PORTE" juste les cordoné !

 

FINI

 

Si quelqu'un pourait me dire comment faire ceci moi je n'y arrive pas

Link to comment
Share on other sites

J'ai peut etre une solution (mais elle n'est pas fiable a 100%) ca rje n'arrive pas a le daire non plus

 

 

 

Tout en haut de ton GM (game mode)

Avec les autre New

 

new obja; //porte c'est ce qui defini l'object

-----------------------------------------------------------------------------------------------------/

//////////DANS GAMEMODEINIT///////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////

-----------------------------------------------------------------------------------------------------/

obja = CreateObject (11111, -2032.215942, 409.041168, 34.243126, 0, 0, 0); /

/

On donne les position de l'object /

-----------------------------------------------------------------------------------------------------/

//////////////////////////////////////////////////////////////////////////////////////////////////////

// ///////DANS ONPLAYERCOMMANDTEXT////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////

-----------------------------------------------------------------------------------------------------/

if(strcmp(cmd, "/bouge", true) == 0)

{

MoveObject (PORTE, -2033.160034, 409.493530, 67.065811, 4.0);

return 1;

}

 

On fait bouger l'object "PORTE" juste les cordoné !

 

FINI

 

Si quelqu'un pourait me dire comment faire ceci moi je n'y arrive pas

 

 

Je n'est pas tout compris si quelqu'un pourrais éclairer la lumière du seigneur ? :unsure:

Edited by thomasleroi
Link to comment
Share on other sites

Je suis en train d'apprendre à faire ca. Voilà alors si tu veux créer un objet pour le déplacer voilà comment procéder:

 

En haut du script :

new idOBJ

On créé l'objet en attribuant l'ID:

idOBJ = CreateObject(1000, 0, 0, 0, 0, 0, 0);

On utilises l'ID : (si tu n'utilises pas l'ID ca t'afficheras une erreur)

MoveObject(idOBJ, 10.0, 10.0, -1.0, 0.5);

La fonction MoveObject:

MoveObject(idOBJ, X, Y, Z, S);

X: Coordonnée X de destination

Y: Coordonnée Y de destination

Z: Coordonnée Z de destination

S: Vitesse de déplacement

Link to comment
Share on other sites

  • 2 weeks later...
C'est pas compliqué a faire, il faut juste chercher un peu si c'est la 1ere fois. Sinon avec ce que Vico a dit tu devrais y arriver ^^

 

 

j'ai reussi a faire tout sa l'objet bouge mais...

pour le faire revenir a son origine ca marche pas...

Voici mon script

#include 
#include 
// This is a comment
// uncomment the line below if you want to write a filterscript
#define FILTERSCRIPT
new bus;

#if defined FILTERSCRIPT


public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}

public OnFilterScriptExit()
{
return 1;
}

#else

main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}

#endif

public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
   bus = CreateObject(1479, 2039.790649, 1187.502441, 11.076869, 0.0000, 0.0000, 270.0000);
return 1;
}

public OnGameModeExit()
{
return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}

public OnPlayerRequestSpawn(playerid)
{
return 1;
}

public OnPlayerConnect(playerid)
{
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
return 1;
}

public OnPlayerSpawn(playerid)
{
return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}

public OnVehicleSpawn(vehicleid)
{
return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}

public OnPlayerText(playerid, text[])
{
return 1;
}

public OnPlayerPrivmsg(playerid, recieverid, text[])
{
return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/bus", cmdtext, true, 0) == 0)
{
MoveObject (bus, 2039.807129, 1187.337891, 39.624138,4.0) ;
return 1;
}
if (strcmp("/sub", cmdtext, true, 0) == 0)
{
DestroyObject(bus);
return 1;
}
return 0;
}

public OnPlayerInfoChange(playerid)
{
return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}

public OnRconCommand(cmd[])
{
return 1;
}

public OnObjectMoved(objectid)
{
return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}

public OnPlayerExitedMenu(playerid)
{
return 1;
}

Edited by davidpolak
Link to comment
Share on other sites

Tu peut aussi lui mettre des conditions, si le player a fait la commande, l'objet bouge, si le player refait la commande alors que l'objet a déjà été bougé, un message s'affiche pour dire que ce n'est pas possible, ainsi que si le player fait la commande pour remettre l'objet en place alors qu'il y est djà, un autre message s'affiche, tout ça c'est possible :

 

Dans le haut de ton script :

 

new bus[MAX_OBJETS];

 

dans ton OnGameModeInit

 

bus = CreateObject(1479, 2039.790649, 1187.502441, 11.076869, 0.0000, 0.0000, 270.0000);// tu mettra les bonnes valeurs de l'objet dans sa position BOUGé
bus[objetid] = 0;

 

Dans ton OnPlayerCommandesText

 

if (strcmp("/bus", cmdtext, true, 0) == 0)
{
MoveObject (bus, 2039.807129, 1187.337891, 39.624138,4.0);
bus[objetid] = 1;
SendClientMessage(playerid, COLOR_YELLOW, "tu viens de faire bouger l'objet");
return 1;
}

if (strcmp("/sub", cmdtext, true, 0) == 0)
{
MoveObject (bus, 2039.807129, 1187.337891, 39.624138,4.0); // Tu mettra les valeur de l'objet dans sa position INITIAL, les mêmes que dans ton bus = creatobjet
SendClientMessage(playerid, COLOR_YELLOW, "Tu à remis l'objet dans sa position Initial");
bus[objetid] = 0;
return 1;
}

if(bus[objetid] = 1);
{
SendClientMessage(playerid, COLOR_RED, "tu ne peut pas bouger l'objet s'il est déjà en position modifié");
}
if(bus[objetid] = 0);
{
SendClientMessage(playerid, COLOR_RED, "tu ne peut pas remettre l'objet à sa position initial si il y est déjà);
}

 

Bon après tu améliore, je ne sais pas si c'est juste j'ai fait ça vite fait, mais ça devrait fonctionner ^^

Edited by superpompier
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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

Loading...
 Share

×
×
  • Create New...