vince284 Posté(e) le 14 octobre 2008 Signaler Partager Posté(e) le 14 octobre 2008 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; } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StAfF MaN Posté(e) le 14 octobre 2008 Signaler Partager Posté(e) le 14 octobre 2008 (modifié) 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 ^^ 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é le 14 octobre 2008 par superpompier Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
vince284 Posté(e) le 15 octobre 2008 Auteur Signaler Partager Posté(e) le 15 octobre 2008 (modifié) 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. 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. 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é le 15 octobre 2008 par badboy Edite tes messages au lieu d'en mettre plusieurs a la suite Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StAfF MaN Posté(e) le 16 octobre 2008 Signaler Partager Posté(e) le 16 octobre 2008 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... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
vince284 Posté(e) le 16 octobre 2008 Auteur Signaler Partager Posté(e) le 16 octobre 2008 En faite je cherchais a avoir un texte qui s'affiche dans un menu. Avec un texte qui change selon la maison où je suis. Mais apparment je ne peut pas écrire de texte dans un menu car il ne peut pas affiche trop de carractère. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StAfF MaN Posté(e) le 16 octobre 2008 Signaler Partager Posté(e) le 16 octobre 2008 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é Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
vince284 Posté(e) le 18 octobre 2008 Auteur Signaler Partager Posté(e) le 18 octobre 2008 Oui je vais commencer a étudier le FS SAVE STATS. Enfin je pense que la j'ai encore pas mal de boulot. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StAfF MaN Posté(e) le 18 octobre 2008 Signaler Partager Posté(e) le 18 octobre 2008 Non tu va voir c'est super simple quand on y pense bien Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
vince284 Posté(e) le 20 octobre 2008 Auteur Signaler Partager Posté(e) le 20 octobre 2008 (modifié) Modifié le 20 octobre 2008 par vince284 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
vince284 Posté(e) le 20 octobre 2008 Auteur Signaler Partager Posté(e) le 20 octobre 2008 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
vince284 Posté(e) le 20 octobre 2008 Auteur Signaler Partager Posté(e) le 20 octobre 2008 Pour ce qui est du MySQL j'ai trouver un plugin. Pour ceux que sa intéresse : http://lostgangwarz.free.fr/samp_mysql_fr....p_mysql_connect Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StAfF MaN Posté(e) le 20 octobre 2008 Signaler Partager Posté(e) le 20 octobre 2008 hum, regarde dans ton script si tu est en FS ou en GM et si tu a une défine de Dutils, Dini et Dudb Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
vince284 Posté(e) le 20 octobre 2008 Auteur Signaler Partager Posté(e) le 20 octobre 2008 Moué je ne vois pas trop où tu vois si je suis en FS ou en GM. Par contre j'ai pas de define. j'ai juste inclue les librairie comme je t'avais dit. #include <a_samp> #include <core> #include <float> #include <dudb> #include <dutils> #include <Dini> Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StAfF MaN Posté(e) le 20 octobre 2008 Signaler Partager Posté(e) le 20 octobre 2008 S'cuse je voulais parler de ça ^^ Pour voir si tu est en FS tu regarde si tu a : OnFilterScriptInit a la place de OnGameModeInit tu peut aussi voir si tu as ça dnas ton script : #if defined FILTERSCRIPT #else #endif Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
vince284 Posté(e) le 21 octobre 2008 Auteur Signaler Partager Posté(e) le 21 octobre 2008 Bah non la je suis en "OnGameModeInit". Par contre es qu'il faut que je définie ma fonction "HouseSave" par le defined FilterScript et comment. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StAfF MaN Posté(e) le 21 octobre 2008 Signaler Partager Posté(e) le 21 octobre 2008 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
vince284 Posté(e) le 22 octobre 2008 Auteur Signaler Partager Posté(e) le 22 octobre 2008 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 . Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StAfF MaN Posté(e) le 22 octobre 2008 Signaler Partager Posté(e) le 22 octobre 2008 ok lol ^^ Bah si tu fait en MySql je ne pourrais pas t'aider... Bonne chance ^^ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
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.