Aller au contenu

Probleme De Menu Qui Ne S'affiche Pas.


vince284

Messages recommandés

Bonjour, alors voila j'essaye de créer un menu qui s'affiche lorsque je me positionne sur un pickup. Ici c'est une petite maison. Lorsque que je suis sur ce pickup j'ai bien le message qui s'affiche et mon personnage est bien freezer par contre le menu ne s'affichent pas. Alors si vous pouvez m'explique pourquoi... :) je vous serait reconnaissant.

 

#include 

#include 
#include 
#if defined FILTERSCRIPT
#endif

#define COLOR_WHITE 0xFFFFFFAA

new house;
new Menu:MenuHouse;


public OnFilterScriptInit()
{
   house = CreatePickup (1273, 2, 2127.6135,2372.6243,10.8203);

if(IsValidMenu(Menu:MenuHouse)){
MenuHouse = CreateMenu("Achat de domicile", 1, 50.0, 180.0, 200.0, 200.0);
SetMenuColumnHeader(Menu:MenuHouse, 0, "Achat de domicile");
AddMenuItem(Menu:MenuHouse ,0,"Acheter");
AddMenuItem(Menu:MenuHouse ,0,"Ne pas acheter");
AddMenuItem(Menu:MenuHouse ,0,"Information");
}
return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid==house)
{
SendClientMessage(playerid, COLOR_WHITE,"Tu vien d'acheter une maison !!");
TogglePlayerControllable(playerid,0);
ShowMenuForPlayer(Menu:MenuHouse, playerid);
return 1;
}
return 0;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
new Menu:Current = GetPlayerMenu(playerid);
if (Current == Menu:MenuHouse)
{
    switch(row)
    {
        case 0: {
  		    	SendClientMessage(playerid, COLOR_WHITE,"Tu vien d'acheter une maison !!");
  				GivePlayerMoney(playerid, GetPlayerMoney(playerid)-10000);
  				DestroyPickup(house);
		}
        case 1: {
			SendClientMessage(playerid, COLOR_WHITE,"Tu n'a pas asses d'argent !!");
		}
        case 2: {
			SendClientMessage(playerid, COLOR_WHITE,"Il n'y a pas d'information");
		}
	}
	TogglePlayerControllable(playerid,1);
}
return 1;
}

public OnPlayerExitedMenu(playerid)
{
return 1;
}

Lien vers le commentaire
Partager sur d’autres sites

As tu consulté un tuto pour les menus ?? J'essais de t'en trouver un et je poste ici ;) Je ne peut pas t'en pondre un comme ça, comme une poule mais je peut t'aider en te filant un tuto ^^ :P

 

Edit : trouvé ^^

 

 

Tout en haut de ton script :

 

Code:

 

new Menu:tunning;

 

 

Dans public OnGameModeInit:

 

Code:

 

tunning = CreateMenu("~b~Compostant ~w~selection",1,125,150,300); // "tunning" active un menu qui nous donne les choix ci-dessous :
        if(IsValidMenu(tunning)) {
    SetMenuColumnHeader(tunning , 0, "Choisissez un composant:");
        AddMenuItem(tunning ,0,"Nitro x10");
    AddMenuItem(tunning ,0,"Hydraulics");
    AddMenuItem(tunning ,0,"Roues Tout Terrain");
    AddMenuItem(tunning ,0,"Roues Sport");
}

 

 

Tout en bas de ton script :

 

Code:

 

public OnPlayerSelectedMenuRow(playerid, row) { 
new Menu:Current = GetPlayerMenu(playerid); // Si le joueur séléctionne quel que chose du menu. 
if (Current == tunning){
if (row == 0){
AddVehicleComponent(GetPlayerVehicleID(playerid),1010);
} else if (row == 1){
AddVehicleComponent(GetPlayerVehicleID(playerid),1087);
} else if (row == 2){
AddVehicleComponent(GetPlayerVehicleID(playerid),1025);
} else if (row == 3){
AddVehicleComponent(GetPlayerVehicleID(playerid),1081);
}
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}
return 1;
}

 

 

Et enfin tu créé une commande pour activer le menu :

 

Code:

 

if (strcmp("/tunning", cmdtext, true, 10) == 0)
{
if(IsPlayerInAnyVehicle(playerid)) // Si le joueur est dans un véhicule....
{
new Car = GetPlayerVehicleID(playerid), Model = GetVehicleModel(Car);
switch(Model) { case 448,461,462,463,468,471,509,510,521,522,523,581,586: return SendClientMessage(playerid,0xFF0000AA,"> Vous ne pouvez pas ajouter de composants dans des motos."); } //Si on ajoute des composants dans des motos ou vélos notre jeu crash...
ShowMenuForPlayer(tunning,playerid); // On active le menu "tunning"
TogglePlayerControllable(playerid,0); // On freeze le joueur
}
else{ // Sinon....
SendClientMessage(playerid,COLOR_RED,"> Vous devez être dans un véhicule");
}
return 1;
}

 

Bien sur dans ton cas le dernier bout de code tu ne le mettra pas dans une commande mais dans ton OnPlayerPickUpPickup ;)

Tu enlèvera les conditions de véhicules etc... enfin bref tu gère a ta sauce ^^

 

++ en espérant t'avoir aidé un chouilla ^^

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

Ok merci sa fonctionne. En faite je créer mon menu dans "public OnFilterScriptInit()" au lieu de le faire dans "public OnGameModeInit()". J'en ai profiter pour créer un second menu qui s'affiche lorsque je sélectionne "Information", avec la possibiliter de revenir au premier menu ou de quitter.

 

Par contre maintenant je cherche a créer une variable pouvant contenir un petit texte. Je pense que je ne doigt pas dépacer les 256 caractére, enfin dites moi si je me trompe. :blink:

 

Je cherche aussi a créer un systeme où je pourait entrer les paramettres des maisons. Par exemple "house[1]" une variable comptenant les informations d'une premiere maison, puis "house[2]" contenant celles d'une seconde maison. Ainsi de suite.

 

Je ne c'est pas si tout cela est posible, mais je préfère demander. :D En tout cas je te remercie SuperPompier.

 

---------------------

 

J'ai réussi a créer une variable contenant du texte. Par contre je ne peut pas l'intégrer dans mon menu car il a l'air de ne pas pouvoir afficher asses de caractères. Résultat ma phrase est coupée. <_< J'ai toujours la solution du "SendClientMessage()" mais je préférais garder le tout dans mon menu.

Modifié par badboy
Edite tes messages au lieu d'en mettre plusieurs a la suite
Lien vers le commentaire
Partager sur d’autres sites

Que cherche tu a faire avec ton text sous variable ?? le mettre en entête de ton menu ?? Normalement il éxiste déjà dans le tuto que je t'ai filé

 

tunning = CreateMenu("~b~Compostant ~w~selection",1,125,150,300);

 

ça c'est l'en tête ;) pour tes 256 caractère, t'es pas obligé, tu peut mettre moins...

 

pour tes infos tu peut faire une condition, donc si house1=1 blabla etc...

Lien vers le commentaire
Partager sur d’autres sites

ok ^^ bah oui effectivement, mais c'est aussi suivant la taille de ton menu, parce qu'il y a des menus plus gros que d'autres ;) Sinon pour ton système de sauvegarde de valeur tu peut aussi faire sa dans un fichier texte (.txt) ou .sav que tu peut ouvrir avec un bloc note. Pour ça il te suffit de regarder comment c'est fait dans un FS de sauvegarde ^^ pas plus compliqué :P

Lien vers le commentaire
Partager sur d’autres sites

Salut, alors voila j'ai essayée de faire qu'elle que petite chose a partir du save stats mais c'est pas très concluant. Déjà j'ai créé un fichier House1.dudb.sav avec dedans.

 

HouseName="House1"
HouseX=2127.6135
HouseY=2372.6243
HouseZ=10.8203
HouseValue=100
HouseInfo="il n'y a pas d'inforamation sur cette maison"
HouseOwner=0

 

Puis en haut de mon game mode, j'ai recréer toutes les variables.

 

new Float:HouseX;
new Float:HouseY;
new Float:HouseZ;
new HouseValue;
new HouseInfo[255];
new HouseOwner;

 

Et enfin une nouvelle fonction après le "OnGameModeInit()", "Housesave" (aux début je n'avait pas créer de nouvelle fonction, je l'avais fait dans le "OnGameModeInit()" mais même probléme).

 

public HouseSave()
{
if (dUserINT(House1)).("HouseX")!=0) {
	HouseX=float(dUserINT(House1)).("HouseX"))
	HouseY=float(dUserINT(House1)).("HouseY"))
	HouseZ=float(dUserINT(House1)).("HouseZ"))
	HouseValue=(dUserINT(House1)).("HouseValue"))
	HouseInfo=(dUserINT(House1)).("HouseInfo"))
	HouseOwner=(dUserINT(House1)).("HouseOwner"))
}
}

 

Le Problème est que dès que je veut compilée il me met les erreurs suivante.

 

C:\Program Files\Rockstar Games\GTA San Andreas\Serveur\gamemodes\Vincemap2.pwn(720) : error 017: undefined symbol "dUserINT"

C:\Program Files\Rockstar Games\GTA San Andreas\Serveur\gamemodes\Vincemap2.pwn(720) : error 029: invalid expression, assumed zero

C:\Program Files\Rockstar Games\GTA San Andreas\Serveur\gamemodes\Vincemap2.pwn(720) : error 033: array must be indexed (variable "-unknown-")

C:\Program Files\Rockstar Games\GTA San Andreas\Serveur\gamemodes\Vincemap2.pwn(720) : fatal error 107: too many error messages on one line

 

Apriori il n'a pas l'aire de comprendre le "dUserINT", pourtant j'ai bien mis les librairie dudb, dutils, Dini.

 

Aussi petite question. Est-il possible de récupérer les information que contienne les fichier de sauvegarde "dudb.sav" pour les utiliser sur un site internet. Je pense a du MySQL, je n'y connait rien, mais je viens tout juste d'avoir un bouquin sur le PHP et MySQL.

Lien vers le commentaire
Partager sur d’autres sites

heu je vien de penser a un truck, parce que je voyais pas ça comme ça, je pensais que c'est quand le joueur a acheter la maison qu'il faut enregistrer les infos !!! la en faite tu as juste a faire des SendClientMessage quand le joueur passe sur le pickup ^^

 

Tu défini House, par exemple, vu que tu aime bien House :

 

new House1;

 

Après dans OnGameModeInit

 

House=CreatePickup( bla bla);

 

Après dans public OnPlayerPickUpPickup(playerid, pickupid)

 

if(pickupid==House)

{

SendClientMessage(playerid, COLOR_RED," Info indisponibles ");

return 1;

}

 

Et voila ^^ Après tu mets d'autre SendClient si tu veut ;)

 

Lien vers le commentaire
Partager sur d’autres sites

Non non je voulais bien enregistrer des données. Mais je vais regardé comment fonctionne le samp_mysql car je trouve que c'est plutôt pas mal de pouvoir utiliser les database, car en plus je pourrais affiché les information sur les propriétés et les propriétaire éventuelle sur le site du seuveur. Bref je me comprend :D .

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