Aller au contenu

Problème


thomasleroi

Messages recommandés

Voilà mon script :

 

 

#include <a_samp>
#include <core>
#include <float>

//Global stuff and defines for our gamemode

static gTeam[MAX_PLAYERS]; // Tracks the team assignment for each player

new gPlayerClass[MAX_PLAYERS];
new idinfobus;


forward SetupPlayerForClassSelection(playerid);
forward AutoPay (playerid);
forward creerinfobus ();

 

 

public OnPlayerPickUpPickup(playerid, pickupid)
{

if (pickupid == idinfobus)
{
SendClientMessage(playerid, COLOR_RED, "Territoire :");
SendClientMessage(playerid, COLOR_RED, "Doherty - San Fierro");
SendClientMessage(playerid, COLOR_RED, "TMT : The Monster Team");

}
return 1;
}
public creerinfobus ()
{
idinfobus = CreatePickup(1239, 2,-2117.1038,-78.0208,35.3203);//TMT
}

 

Quand je compile, je n'es aucun problème, mais quand je vais sur le serveur pour tester je n'est pas le "I" d'information... Il me manque quoi ?

 

 

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

Oui ^^ ça :

public creerinfobus ()
{
idinfobus = CreatePickup(1239, 2,-2117.1038,-78.0208,35.3203);//TMT
}

ainsi que le forward idinfobus ();

tu les jettes et tu met juste :

idinfobus = CreatePickup(1239, 2,-2117.1038,-78.0208,35.3203);//TMT

 

Dans OnGameModeInit, avant tout, ou après tout, ça ne change rien ;)

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

Faudrait le lancer le public Creeinfobus ou alor mettre ton CreatePickup dans OnGameModeInit

 

 

Oui ^^ ça :
public creerinfobus ()
{
idinfobus = CreatePickup(1239, 2,-2117.1038,-78.0208,35.3203);//TMT
}

ainsi que le forward idinfobus ();

tu les jettes et tu met juste :

idinfobus = CreatePickup(1239, 2,-2117.1038,-78.0208,35.3203);//TMT

 

Dans OnGameModeInit, avant tout, ou après tout, ça ne change rien ;)

 

 

Merci à vous deux, sa marche (c'était tout bête)...

Si j'ai un nouveau problème de script je uperais ce topic

Lien vers le commentaire
Partager sur d’autres sites

pour creer une zone de gang tu dois prendre deux coordonée en X et Y (pour créer un carré)

 

ensuite tu ajoute "GangZoneCreate(X1, Y1, X2, Y2);" ta zone est creer mais n'est pas visible il faut apres indiquer que tout les joueur peuvent les voir et leur mettre leur couleur.

 

"GangZoneGangZoneShowForAll(zone, couleur)" donner a tout les joueur la possibilité de voir les zones (pour specifier un joueur tu as l'option "GangZoneGangZoneShowForPlayer(playerid, zone, couleur))

 

tu peut aussi faire clignoter une zone avec "GangZoneFlashForAll(zone,couleur clignotante)

 

ensuite a toi de mettre ces morceau au bon endroit dans ton script tu devrais trouver assez facilement.

Lien vers le commentaire
Partager sur d’autres sites

J'en ai jamais fait mais je pense qu'il faut utiliser les fonction GangZone regarde sur le wiki pour plus d'info sur c'est fonction

 

++

Fred

 

 

Sur wiki je pense avoir trouvé ça :

 

new grovestreet = GangZoneCreate(1980.0, 280.0, 2110.0, 480.0);

 

Je le place dans OnGameModeInit avec mes coordonnée et sa devrait marcher ?

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

ta zone sera creer mais ne sera pas visible car pas de couleur

 

donc tu ajoutera dans gamemodeinit

 

new grovestreet = GangZoneCreate(1980.0, 280.0, 2110.0, 480.0);

GangZoneGangZoneShowForAll(grovestreet , COLOR_GREEN);

 

en ajoutant au debut du script "#define COLOR_GREEN 0x33AA33AA" ou alors tu fait

 

new grovestreet = GangZoneCreate(1980.0, 280.0, 2110.0, 480.0);

GangZoneGangZoneShowForAll(grovestreet , 0x33AA33AA);

Lien vers le commentaire
Partager sur d’autres sites

J'ais fait ce que tu ma dit MageBlanc mais sa ne marche toujours pas... Voilà mon script :

 

 

//Gang zone

new grovestreet = GangZoneCreate(1980.0, 280.0, 2110.0, 480.0);
GangZoneShowForAll(grovestreet , COLOR_GREEN);

    UsePlayerPedAnims();
    
    AllowInteriorWeapons(1);


}

 

 

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

J'ai un problème pour faire déplacer un objets... (commandes /ouvrir et /fermer)

 

-sf.pwn(596) : warning 225: unreachable code

 

 

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

{
if (strcmp("/fermer", cmdtext, true, 10) == 0)
{
  MoveObject(id2,-2208.302001,587.163330,34.094539,0.5);
     return 1;
}
return 0;
}
//------------------------------------------------------------------------

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

Enlève la 1ère accolade "{" au dessus du if ^^

 

 

Sa na pas marcher, mais je met le bout du script qui ne veux pas faire ce que je veux...

 

sf.pwn(592) : warning 225: unreachable code

sf.pwn(602) : warning 225: unreachable code

 

591.//------------------------------------------------------------------------
592. {
593. if (strcmp("/fermer", cmdtext, true, 10) == 0)
594. {
595.  MoveObject(id1,-2208.302001,587.163330,34.094539,0.5);
596.     return 1;
597. }
598. return 0;
599.}
600.//------------------------------------------------------------------------/payer

602. if(strcmp(cmd, "/donner", true) == 0) {
603.     new tmp[256];
604.  tmp = strtok(cmdtext, idx);

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

C'est plutot comme cela que devrais se présenter ton bout de script dans pawno car tu met un return 0; donc il repart au debut de la liste des commandes, donc toutes celle derrière n'existeront jamais des que tu fera ta commande /fermer

 

en revanche si tu met return 1 apres avoir effectuer la comande si elle n'est pas valide il repartira sur "if (strcmp("/fermer", cmdtext, true, 10) == 0)"

 

voila j'espere que cla te servira a réparer

 

 
590.public OnPlayerCommandText(playerid, cmdtext[])
591.{
592.     if (strcmp("/fermer", cmdtext, true, 10) == 0)
593.    {
594.        MoveObject(id1,-2208.302001,587.163330,34.094539,0.5);
595.        return 1;
596.     }
597.     if(strcmp(cmd, "/donner", true) == 0)
598.     {
599.        new tmp[256];
600.        tmp = strtok(cmdtext, idx);
601.        etc... de la suite de tes commandes
602.        return 1;
603.     }
604.}
605.return 0;

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

Encore merci à toi MageBlanc...

Si j'ai encore un problème je uperais.

 

EDIT:

Nouveau problème, je voudrais savoir comment donner une arme à quelqu'un...

Si par exemple qulqu'un a un mp5 et qu'il fait "/donner mp5 ID" Le joueur n'a plus le mp5 mais l'ID du joueur qui a était choisi lors de la commande lui, a un mp5 avec les même munitions...

Vous me suivez ?

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

Oui c'est assez compliqué ^^ JE te file un bout de code qui permet de sélectionner un player et de lui donner une arme, après tu modifiera a ta convenance sachant que ce que tu demande est assez compliqué :

    new cmdc[256];
    new idxc;

    cmdc = adminspec_strtok(cmdtext, idxc);

    if(strcmp(cmd, "/donnerMP5", true) == 0) {
     if(!IsPlayerAdmin(playerid)) return 1;
        new pid, tmpp[256];
        tmpp = strtok(cmdtext, idx);
        if(!strlen(tmpp)) {
            SendClientMessage(playerid, COLOR_RED, "USAGE: /donnerMP5 [playerid]");
            return 1;
        }
        pid = strval(tmpp);

        if(!IsPlayerConnected(pid)) {
            SendClientMessage(playerid, COLOR_RED, "Ce player n'est pas connecté");
            return 1;
        }
        GivePlayerWeapon(pid, 24,1500);
        format(tmpp, sizeof(tmpp), "Arme donnée par %s",AdminName);
        GameTextForPlayer(pid, tmpp, 2000,1);

        return 1;
}

 

Voila en gros ce que ça va donner ^^

 

Je ne l'ai pas testé par contre, donc bah voila quoi ^^ Si ça ne fonctionne pas revient ici ;)

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

ça veut dire que ça ne fonctionne pas xDD

 

Fait voir ce que tu as mis dans ton script, avec la ligne 12 s'te plait ;)

 

Sinon je pense savoir ce que c'est ^^

 

Met ça a la fin de ton script ;)

 

 

adminspec_strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}

 

Voila je pense que ç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...