GTAOnline.net

IV : Multiplayer (iv:mp) => Scripting IV:MP [Squirrel center] => Discussion démarrée par: equipier_sas le 20 Août 2013, 14:07:15

Titre: GUI onButtonClick
Posté par: equipier_sas le 20 Août 2013, 14:07:15
Bonjour à tous, je suis en train de faire un GUI pour acceder a un menu Mac-do'.

La fenêtre se lance bien, le script s'execute, mais j'aimerai que lorsque je clique sur "Menu 1", cela débite 15$ de l'argent du joueur.

voila mon code actuel :

function onButtonClick(playerid, btnName, bState)
{
   
    if(btnName == GUItest.button1.getName())
    {
        addChatMessage("Vous achetez le menu 1.");
        GUItest.window.setVisible(false);
        GUItest.windowshown = false;
        guiToggleCursor(false);
        givePlayerMoney(playerid, -15); // cette commande n'est pas valable dans le GUI ?
        return 1;
    }
   

}
addEvent("buttonClick", onButtonClick);

Cordialement,
Equipier_sas
Titre: Re : GUI onButtonClick
Posté par: Gilux le 20 Août 2013, 14:31:43
Salut, je crois qu'il y a une fonction qui s'appelle triggerServerEvent qui permet d'appeler une fonction du serveur qui donnera de l'argent au joueur.
Donc tu peux appeler une fonction menu(playerid) où tu prendras 15$, et avec playerid = getLocalPlayer (playerid version client).
Ça se base juste sur ce que j'avais lu sur le wiki, j'ai jamais testé ce genre d'appels mais ça doit marcher à peu près comme ça...
++
Titre: Re : GUI onButtonClick
Posté par: equipier_sas le 20 Août 2013, 14:59:23
Avant toute chose merci de m'avoir répondu,
mais je ne comprends pas trop ce que tu me demandes, voilà ce que j'ai fais :

function onButtonClick(playerid, btnName, bState)
{
   
    local playerid = getLocalPlayer ();
    if(btnName == GUItest.button1.getName())
    {
        addChatMessage("Vous achetez le menu 1.");
        GUItest.window.setVisible(false);
        GUItest.windowshown = false;
        guiToggleCursor(false);
        triggerServerEvent(givePlayerMoney(playerid, -15));
        return 1;
    }
   

}
addEvent("buttonClick", onButtonClick);

EDIT :

Resolu :

J'ai enfin fini par comprendre, voilà ce que j'ai fais :

Coté serveur
/////////////////////////////////////////////////////////////////////////////////////////////
function onPlayerSpawn1( playerid )                                                         //
{                                                                                          //
    givePlayerMoney(playerid, -15);                                                        // payement menu 1 Macdo'
    return true;                                                                           //
}                                                                                          //
addEvent("menu1", onPlayerSpawn1);                                                          //
/////////////////////////////////////////////////////////////////////////////////////////////

coté client
if(btnName == GUItest.button1.getName())
    {
        addChatMessage("Vous achetez le menu 1 pour 15$.");
        GUItest.window.setVisible(false);
        GUItest.windowshown = false;
        triggerServerEvent("menu1"); // ici j'appel le script coté client
        macdo1.setVisible(false);
        guiToggleCursor(false);
        return 1;
    }

Merci à Gilux pour sa précieuse aide !