Aller au contenu

[sa:mp] Faire Bouger Un Objet


thomasleroi

Messages recommandés

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);

Modifié par thomasleroi
Lien vers le commentaire
Partager sur d’autres 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

Lien vers le commentaire
Partager sur d’autres 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:

Modifié par thomasleroi
Lien vers le commentaire
Partager sur d’autres 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

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...
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;
}

Modifié par davidpolak
Lien vers le commentaire
Partager sur d’autres 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 ^^

Modifié par superpompier
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
×
×
  • Créer...