GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: TheExtraCrow le 20 Juillet 2013, 18:05:04

Titre: Grille Automatique ?
Posté par: TheExtraCrow le 20 Juillet 2013, 18:05:04
Voila,je possède un Serveur Gta RP Zombie (En V0.2 Beta), et je voudrais Installer une Grille Automatique sur la Map ( Aux Niveau de Area 69 )

Une grille qui s'ouvrirais avec un mot,style : /open69

Voila les image:
(http://image.noelshack.com/minis/2013/29/1374336112-gta-sa-2013-07-20-18-00-40-92.png) (http://www.noelshack.com/2013-29-1374336112-gta-sa-2013-07-20-18-00-40-92.jpg)

(http://image.noelshack.com/minis/2013/29/1374336130-gta-sa-2013-07-20-18-00-48-63.png) (http://www.noelshack.com/2013-29-1374336130-gta-sa-2013-07-20-18-00-48-63.jpg)

je voudrais remplacer la grille avec inscrit: Airport Security...,Par cette fameuse grille automatique.

PS: je n'ais pas crée de Groupe mais j'aimerais en crée également,un Groupe dont on ne peux y accéder que par l'autorisation d'un Admin.
Titre: Re : Problème Grille Automatique
Posté par: Ouzdi Broono le 20 Juillet 2013, 18:10:29
Salut, tu débute en pawn ?
Je te donne des indications et si tu n'y arrive pas je t'en donnerais un peu plus.
Tu dois utiliser les fonctions suivantes: À bientôt. :bye:
Titre: Re : Problème Grille Automatique
Posté par: TheExtraCrow le 20 Juillet 2013, 18:14:00
Effectivement je suis un apprenti Pawno, est pour tout de dire,j'ais bien lu les paramètre pour crée cette Grille,mais je doit t'avouer que... :blink: Je ne sait pas trop comment m'y prendre  :wacko:
Titre: Re : Problème Grille Automatique
Posté par: Ouzdi Broono le 20 Juillet 2013, 18:27:40
Si tu débute il est normal que ce genre de fonctions ne sont pas faciles à utiliser.
Je vais t'expliquer en détails.
Tu dois déjà placer une variable globale tout en haut de ton GameMode. (à la suite de tes autres variables)
Exemple:

new grille;
Ensuite il faut que tu cherche ton objet dans le GameMode, soit la ligne CreateObject de la grille. (utilise le raccourci CTRL + F pour ta recherche)
Devant cette ligne tu ajoute "grille =" ce qui donnera:

grille = CreateObject(id, x, y, z);
Puis dans ta commande tu utilise la fonction MoveObject avec la nouvelle position de la grille une fois ouverte.
Fais déjà ça et dis moi si tu bloque avec le MoveObject, dans ce cas je t'en dirais un peu plus.
Bon courage.
Titre: Re : Problème Grille Automatique
Posté par: TheExtraCrow le 20 Juillet 2013, 18:49:13
Bien,c'est fait:

new thisanimid=0;
new lastanimid=0;
new grille;


grille =CreateObject(988,96.6288910,1920.3472900,17.1445045,0.0000000,0.0000000,270.0000000);//object(ws_apgate) (1)
Titre: Re : Problème Grille Automatique
Posté par: Ouzdi Broono le 20 Juillet 2013, 18:51:54
Super, maintenant il te reste plus qu'à suivre mes indications et à t'aider de ce liens http://wiki.sa-mp.com/wiki/MoveObject (http://wiki.sa-mp.com/wiki/MoveObject) pour créer ton MoveObject.
Titre: Re : Problème Grille Automatique
Posté par: TheExtraCrow le 20 Juillet 2013, 18:56:15
Alors,je ne Comprend pas bien.

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/open69", true) == 0)
    {
        new string[50];
        new movetime = MoveObject(obj, 0, 0, 10, 2.00);
        format(string, sizeof(string), "Object will finish moving in %d milliseconds", movetime);
        SendClientMessage(playerid, 0xFF000000, string);
        return 1;
    }
    return 0;
}

Je doit remplacer quoi comme Script ?
Titre: Re : Problème Grille Automatique
Posté par: Ouzdi Broono le 20 Juillet 2013, 19:11:51
À la place de

obj
Tu met le nom de ta variable et après tu remplace:

0, 0, 10
Par la nouvelle position de ta grille, celle de cette dernière une fois ouverte.
Titre: Re : Problème Grille Automatique
Posté par: TheExtraCrow le 20 Juillet 2013, 19:21:51
Eh, sa marche,Enfin Non,je fait /open69 la porte s'envole,je puis elle ne revient pas a sa place (fermer). :sad: :sad: :sad:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/open69", true) == 0)
    {
        new string[50];
        new movetime = MoveObject(grille,988,96.6640625,1924.5603027,17.8266354,0.0000000,0.0000000,270.0000000, 2.00);
        format(string, sizeof(string), "Object will finish moving in %d milliseconds", movetime);
        SendClientMessage(playerid, 0xFF000000, string);
        return 1;
    }
    return 0;
}
Titre: Re : Problème Grille Automatique
Posté par: Ouzdi Broono le 20 Juillet 2013, 19:54:39
Retire:

,0.0000000,0.0000000,270.0000000
Titre: Re : Problème Grille Automatique
Posté par: TheExtraCrow le 20 Juillet 2013, 20:16:00
Non la grille s'envole Encore  :sad: .
A oui est sa me marque : Object will finish moving in [une dizaine de nombre] milliseconds
Titre: Re : Grille Automatique ?
Posté par: rafffel le 21 Juillet 2013, 00:22:34
Je t'invite a relire le la page du wiki
Tu as fait un MoveObject avec 9 paramètres alors que cette dernière n'en demande que 8.
Sachant aussi que tu peux ne passer que 5 paramètre car les 3 derniers  ont une valeur assigné si tu ne les renseigne pas.
Après je ne sais pas quelle animation tu souhaite réaliser mais dans ton cas il est normal que la grille s’élève puisque tu modifie le paramètre Z.
Titre: Re : Grille Automatique ?
Posté par: TheExtraCrow le 21 Juillet 2013, 00:26:37
Eh...Je Pas comprit  :wink:
Titre: Re : Grille Automatique ?
Posté par: rafffel le 21 Juillet 2013, 10:24:51
bon alors dans la page du wiki ils nous indiquent que la fonction MoveObject doit avoir les paramètre suivants :
objectid   The ID of the object to move.
Float:X   The X coordinate to move the object to.
Float:Y   The Y coordinate to move the object to.
Float:Z   The Z coordinate to move the object to.
Float:Speed   The speed at which to move the object (units per second).
Float:RotX   The FINAL X rotation (optional).
Float:RotY   The FINAL Y rotation (optional).
Float:RotZ   The FINAL Z rotation (optional).


on a donc 8 paramètre a passer :
L'objet a déplacer,
sa position final x,
sa position final y,
sa position final z,
sa vitesse de déplacement par seconde.,
Sa rotation final sur l'axe x (optionnel car une valeur lui est attribué par défaut si tu ne met rien),
Sa rotation final sur l'axe y (optionnel car une valeur lui est attribué par défaut si tu ne met rien),
Sa rotation final sur l'axe z (optionnel car une valeur lui est attribué par défaut si tu ne met rien)

Or toi tu as mis sa :

Code: (pawn) [Sélectionner]
grille =CreateObject(988,96.6288910,1920.3472900,17.1445045,0.0000000,0.0000000,270.0000000);
puis :
MoveObject(grille,988,96.6640625,1924.5603027,17.8266354,0.0000000,0.0000000,270.0000000, 2.00);

donc en corespondance tu aurais:

l'objet a déplacé : grille (ça semble cohérent car tu l'as créé précédemment)
sa position final x: l'objet va donc passer de la coordonnée 988 a 988 ( donc aucun déplacement sur l'axe x)
sa position final y: l'objet va donc passer de la coordonnée 96.6288910 a 96.6640625 ( donc ton objet va bouger sur l'axe y)
sa position final z: l'objet va donc passer de la coordonnée 1920.3472900 a 1924.5603027 ( donc aucun déplacement sur l'axe z)
sa vitesse de déplacement sera de 17.8266354 unité par seconde
Sa rotation par rapport a l’état actuel sur l'axe x :0 ( aucune rotation)(optionel peut être enlevée si tu ne souhaite pas de rotation sur cette axe)
Sa rotation par rapport a l’état actuel sur l'axe y : 0 (aucune rotation)(optionel peut être enlevée si tu ne souhaite pas de rotation sur cette axe)
Sa rotation par rapport a l’état actuel sur l'axe z : 270 (rotation de 270°)(optionel peut être enlevée si tu ne souhaite pas de rotation sur cette axe)
Puis tu as ajouté un dernier apramètre 2 qui ne correspond a rien et qui derait te mettre une erreur de compilation en téhorie qui est donc a enlevée.

Voilà en espérant être plus clair.
Titre: Re : Grille Automatique ?
Posté par: Kiloutre le 22 Juillet 2013, 05:19:03
Pour faire simple tu dois créer deux variables, une qu'à précédemment montré Ouzdi Broono, et une autre pour savoir si la grille est fermée est ouverte
Petit exemple :

new grille, agrille;
//PLUS BAS DANS LE CODE
grille=CreateObject(etc...)
//DANS TA COMMANDE
    if(strcmp(cmdtext, "/open69", true) == 0)
    {
        if(agrille==0)
        {
            MoveObject(grille, etc...); //COORDONNES POUR LA PORTE OUVERTE
            agrille=1;
            return 1;
        }
        if(agrille==1)
        {
            MoveObject(grille, etc...); //COORDONNES POUR LA PORTE FERMEE
            agrille=0;
            return 1;
        }
    }
Voilà tout  :happy:
Titre: Re : Grille Automatique ?
Posté par: TheExtraCrow le 24 Juillet 2013, 11:40:53
Ok,Bas Merci :)
Titre: Re : Grille Automatique ?
Posté par: TheExtraCrow le 26 Juillet 2013, 17:20:54
Rien ne marche,la Grille s'envole encore  :angry:
Titre: Re : Grille Automatique ?
Posté par: Infu le 26 Juillet 2013, 19:13:49
Evites les doubles postes,

Et regarde si les coordonnées de te grille son bonnes
Titre: Re : Grille Automatique ?
Posté par: TheExtraCrow le 26 Juillet 2013, 20:41:10
Navrer pour le double post,et oui mes Coordonner son correct.  :wink:
Titre: Re : Grille Automatique ?
Posté par: Kiloutre le 27 Juillet 2013, 13:35:29
Si elles sont correctes les grilles ne sont pas censées s'envoler ;)
Titre: Re : Grille Automatique ?
Posté par: Ouzdi Broono le 28 Juillet 2013, 18:49:59
Je vois pas comment on pourrai t'aider plus que ça...
Titre: Re : Grille Automatique ?
Posté par: Xartrick le 29 Juillet 2013, 22:56:40
Montre nous ton code actuel, tu dois faire une gaffe.

Sinon, pour ton système de grade, voilà un écrit: [Tutoriel] Créer son système de rangs (http://www.gtaonline.net/forums/index.php/topic,13589.0.html).