• 05 Juin 2026, 14:59:51


Auteur Sujet: Commande à objet => rien n'apparait  (Lu 3202 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne The Bird

  • *
  • Tueur en série
  • Messages: 110
    • Voir le profil
Commande à objet => rien n'apparait
« le: 30 Novembre 2009, 19:21:57 »
Bonjour,

J'ai mis au point un commande pour ouvrir et fermer les accès.
Ceci est la commande ( temporaire ) :

if(strcmp(cmd, "/fermerroute", true) == 0)
{
        if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader] == 1)
        {
   bdr1 = CreateObject
bdr2 = CreateObject
bdr3 = CreateObject
bdr4 = CreateObject
bdr5 = CreateObject
        bdr6 = CreateObject
        bdr7 = CreateObject
        bdr8 = CreateObject
        bdr9 = CreateObject
        bdr10 = CreateObject
        bdr11 = CreateObject
        bdr12 = CreateObject
        bdr13 = CreateObject
        routeferme = 1;
SendClientMessageToAll(COLOR_WHITE, "|___________ Annonce du Gouvernement ___________|");
SendClientMessageToAll(COLOR_BLUE, "Tous les accès principaux de la ville ont été fermés ");
        }
        else
        {
        SendClientMessage(playerid, COLOR_GREY, " Tu n'es pas policier ");
        }
        return 1;
        }
        if(strcmp(cmd, "/ouvrirroute", true) == 0)
   {
        if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader] == 1)
        {
   DestroyObject(bdr1);
        DestroyObject(bdr2);
        DestroyObject(bdr3);
        DestroyObject(bdr4);
        DestroyObject(bdr5);
        DestroyObject(bdr6);
        DestroyObject(bdr7);
        DestroyObject(bdr8);
        DestroyObject(bdr9);
        DestroyObject(bdr10);
        DestroyObject(bdr11);
        DestroyObject(bdr12);
        DestroyObject(bdr13);
        routeferme = 0;
        SendClientMessageToAll(COLOR_WHITE, "|___________ Annonce du Gouvernement ___________|");
SendClientMessageToAll(COLOR_BLUE, "Tous les accès principaux de la ville ont été ouverts ");
        }
        else
        {
        SendClientMessage(playerid, COLOR_GREY, " Tu n'es pas policier ");
        }
        return 1;
        }

( Suite de CreateObject volontairement supprimé )

Mais quand je fais la CMD, rien ne se passe.
Donc avant d'aller plus loin, il me faudrai comprendre ce problème.

routeferme corresponds à une variable pour empêcher l'utilisation des péage lors de la fermeture des accès

Merci de vos réponses

Hors ligne Dark4ng3L

  • *
  • Bandit
  • Messages: 480
    • Voir le profil
    • DecaWeb.ch - L'informatique comme vous ne l'avez jamais vu!
Re : Commande à objet => rien n'apparait
« Réponse #1 le: 01 Décembre 2009, 17:18:31 »
normal qu'ils ne se créent pas

       bdr1 = CreateObject
la rien n'es crée

           bdr1 = CreateObject(982,1306.9628,-1825.6549,13.2616,0.000000,0.000000,0);

la un objet ce crée

en espérant t'avoir aider

++ D4 ++
 8) 8)
Cordialement Dark4ng3L aussi connu sous le nom de Mathias_Martinez, Matthias_Angelo et lugia !




Hors ligne Jeffreeeey

  • *
  • Tueur
  • Messages: 87
    • Voir le profil
Re : Commande à objet => rien n'apparait
« Réponse #2 le: 01 Décembre 2009, 17:23:18 »
D4 ->

Citer
( Suite de CreateObject volontairement supprimé )

Il l'a pourtant bien dit.

EDIT : Pardon D4
« Modifié: 01 Décembre 2009, 17:33:54 par Jeffreeeey »

Hors ligne Dark4ng3L

  • *
  • Bandit
  • Messages: 480
    • Voir le profil
    • DecaWeb.ch - L'informatique comme vous ne l'avez jamais vu!
Re : Commande à objet => rien n'apparait
« Réponse #3 le: 01 Décembre 2009, 17:26:19 »
oops pas vu xD
beh j'sais pas alors DSL

PS: Jeff ici moi c'es D4 ;)
Cordialement Dark4ng3L aussi connu sous le nom de Mathias_Martinez, Matthias_Angelo et lugia !




Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Commande à objet => rien n'apparait
« Réponse #4 le: 01 Décembre 2009, 17:27:59 »
Non, ce n'est pas ça, il a volontairement supprimé les paramètres de CreateObject (certainement pour éviter que quelqu'un lui vole). Il le dit dans son post.

Parmi les choses qui pourrait expliquer pourquoi tes objets n'apparaissent pas (du plus probable au moins probable) :
1 - Le test if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader] == 1) n'est pas vérifié donc on saute le bloc qui suit.
2 - Les coordonnées de tes objets ne sont pas correctes et les objets sont créés ailleurs que là où tu penses.
3 - Les ID de tes objets sont invalides (SAMP 0.3 filtre les ID des objets et ne crée pas les objets avec des ID invalides).
4 - Ta carte graphique n'arrive pas à afficher les objets.
5 - Ton chat les a mangé.

++
Syg
Courtesy of GtaManiac

Hors ligne Dark4ng3L

  • *
  • Bandit
  • Messages: 480
    • Voir le profil
    • DecaWeb.ch - L'informatique comme vous ne l'avez jamais vu!
Re : Re : Commande à objet => rien n'apparait
« Réponse #5 le: 01 Décembre 2009, 17:30:01 »

5 - Ton chat les a mangé.

Expldr toujours de l'humour avec toi
Cordialement Dark4ng3L aussi connu sous le nom de Mathias_Martinez, Matthias_Angelo et lugia !




Hors ligne The Bird

  • *
  • Tueur en série
  • Messages: 110
    • Voir le profil
Re : Re : Commande à objet => rien n'apparait
« Réponse #6 le: 01 Décembre 2009, 19:52:34 »
Citer

1 - Le test if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader] == 1) n'est pas vérifié donc on saute le bloc qui suit. Possible, comment vérifié ?
2 - Les coordonnées de tes objets ne sont pas correctes et les objets sont créés ailleurs que là où tu penses. Je n'ai pas encore eu de problèmes avec MTA, peu probable
3 - Les ID de tes objets sont invalides (SAMP 0.3 filtre les ID des objets et ne crée pas les objets avec des ID invalides). Il s'agit des roadblock ( id 4514 4508 16437 1282 ), donc peu probable
4 - Ta carte graphique n'arrive pas à afficher les objets. Nvidia Geforce 9500 GT 512mo DDR2, non je pense pas  :lmao
5 - Ton chat les a mangé. Le comique n'a jamais tué personne

++
Syg

Double post
Bien donc suite à des tests :

=> suppression de la condition " si le joueur est policier "
=> suppression de la partie else

Résultat ( pas d'erreur de compile ) : Aucun objet créer.
« Modifié: 01 Décembre 2009, 20:09:09 par The Bird »

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Commande à objet => rien n'apparait
« Réponse #7 le: 01 Décembre 2009, 20:36:34 »
pourquoi tu n'utilise pas le MoveObject ??
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne The Bird

  • *
  • Tueur en série
  • Messages: 110
    • Voir le profil
Re : Commande à objet => rien n'apparait
« Réponse #8 le: 01 Décembre 2009, 21:15:02 »
Sa serai aussi envisagée, mais j'aimerai quand même comprendre pourquoi cela ne marche pas

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Commande à objet => rien n'apparait
« Réponse #9 le: 01 Décembre 2009, 21:32:16 »
if(strcmp(cmdtext, "/fermerroute", true) == 0)
{
       
    bdr1 = CreateObject
bdr2 = CreateObject
bdr3 = CreateObject
bdr4 = CreateObject
bdr5 = CreateObject
        bdr6 = CreateObject
        bdr7 = CreateObject
        bdr8 = CreateObject
        bdr9 = CreateObject
        bdr10 = CreateObject
        bdr11 = CreateObject
        bdr12 = CreateObject
        bdr13 = CreateObject
        routeferme = 1;
SendClientMessageToAll(COLOR_WHITE, "|___________ Annonce du Gouvernement ___________|");
SendClientMessageToAll(COLOR_BLUE, "Tous les accès principaux de la ville ont été fermés ");
       
        return 1;
        }

et comme ceci
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Commande à objet => rien n'apparait
« Réponse #10 le: 01 Décembre 2009, 21:57:03 »
Salut.

Je ne connais pas la bien différence entre CreateObject et CreateStreamObject, mais vu que le CreateStreamObject sert pour faire bouger les Objets (et donc que la personne le vois bouger ou non), ce ne serait plutôt pas celui là à utiliser ?

Sinon, (je ne sais pas comment tu as procédé, mais c'est une idée qui me passe comme ça), il ne serait pas plus simple de créer les Objets dans public OnGameModeInit() en mettant CreateStreamObject et faire que lorsque le flic fait sa commande, les Barrières/Herses/Poteau ou autres sort du Sol (pour faire Style que ça apparait) ou du coté (si tu prévoit une barrière coulissante par exemple) ?
Merci à Colonel Marco pour la Signature

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Commande à objet => rien n'apparait
« Réponse #11 le: 01 Décembre 2009, 22:38:27 »
Diablo, si il se sert de CreateObject, c'est qu'il ne doit pas utiliser de streamer d'objets.
De plus, CreateStreamObject ne sert pas à faire bouger un objet mais à créer un objet "streamé", c'est à dire un objet qui n'apparait au joueur que quand ce dernier en est proche.

The Bird, montre au moins un de tes CreateObject avec tous les paramètres, un dont tu es sur qu'il n'apparait pas, peut-être que ton erreur saute aux yeux.

++
Syg
Courtesy of GtaManiac

Hors ligne The Bird

  • *
  • Tueur en série
  • Messages: 110
    • Voir le profil
Re : Commande à objet => rien n'apparait
« Réponse #12 le: 02 Décembre 2009, 07:56:43 »
bdr2 = CreateObject(4508, -1679.3513183594, 539.49700927734, 39.65845489502, 0, 0.48788452148438, 221.1962890625);

Double post
J'ai finalement utilisé des MoveObject, sa marche.

Question : Il y'a une liùite d'objet dans samp, depuis que le streamer est integrer ?
« Modifié: 02 Décembre 2009, 14:13:21 par The Bird »

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Commande à objet => rien n'apparait
« Réponse #13 le: 03 Décembre 2009, 16:01:58 »
Salut,

oui, le "streamer intégré" comme tu dit, ne concerne que les voitures, les pickups etc.... bref pratiquement tout sauf les objets

de très bon streamer d'objets existent néanmoins

++Sim++





Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Commande à objet => rien n'apparait
« Réponse #14 le: 03 Décembre 2009, 16:17:06 »
Et pour compléter le post de Sim et répondre à ta question, la limite théorique est de 254 objets.
Mais sur certaines bonnes configurations (client), on peut aller jusqu'à 300 et sur d'autres, moins performantes, le jeu (client) plante quand il y a plus de 150 objets.
SAMP conseille donc de ne pas dépasser 150 objets.
NB : Tous ceci devient obsolète si on utilise un streamer d'objet qui permet de ne pratiquement plus avoir de limite.

Voici le lien pour les limites : http://wiki.sa-mp.com/wiki/Limits

++
Syg
« Modifié: 03 Décembre 2009, 16:20:16 par Syg »
Courtesy of GtaManiac