Jump to content

Problème


thomasleroi
 Share

Recommended Posts

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 ?

 

 

Edited by thomasleroi
Link to comment
Share on other 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 ;)

Edited by superpompier
Link to comment
Share on other 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

Link to comment
Share on other 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.

Link to comment
Share on other 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 ?

Edited by thomasleroi
Link to comment
Share on other 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);

Link to comment
Share on other 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);


}

 

 

Edited by thomasleroi
Link to comment
Share on other 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;
}
//------------------------------------------------------------------------

 

 

 

 

Link to comment
Share on other 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);

 

 

 

 

Link to comment
Share on other 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;

Edited by MageBlanc
Link to comment
Share on other 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 ?

Edited by thomasleroi
Link to comment
Share on other 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 ;)

Edited by superpompier
Link to comment
Share on other 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 ;)

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...