Menü Problem

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Ich habe versucht ein Menü zu scripten aber irgendwie haut es nicht hin.


    Ich finde den fehler einfach nicht kann mir einer helfen? bitte



    #include <a_samp>



    #if defined FILTERSCRIPT


    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    #else


    main()
    {
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
    }


    #endif




    //======================NEW MENÜ================================================



    new Menu:test0;
    new Menu:teste0;
    new Menu:shaft;
    //==================AddMenu=====================================================


    public OnGameModeInit()
    {


    AddStaticPickup(1273,2,2498.187255,-1644.023803,13.782609);//Pickup Id 0;


    test0 = CreateMenu("test0", 2, 50, 200, 41, 30);
    AddMenuItem(shaft,0,"1");
    AddMenuItem(shaft,0,"2");
    AddMenuItem(shaft,0,"3");
    AddMenuItem(shaft,0,"4");
    AddMenuItem(shaft,0,"5");
    AddMenuItem(shaft,0,"6");
    teste0 = CreateMenu("teste0", 1,50,200,50,25);
    AddMenuItem(shaft,0,"code");
    AddMenuItem(shaft,0,"code1");
    AddMenuItem(shaft,0,"Verlassen");
    return 1;
    }
    //================Pickups=======================================================


    public OnPlayerPickUpPickup(playerid, pickupid)
    {


    if ( pickupid == 0 ){
    ShowMenuForPlayer(test0,playerid);
    TogglePlayerControllable(playerid,0);}
    return 1;
    }


    //===============MenuRow========================================================


    public OnPlayerSelectedMenuRow(playerid, row)
    {


    new Menu:Current = GetPlayerMenu(playerid);
    if (Current == test0) {
    switch(row) {
    case 0: {
    DestroyCurrentMenu(playerid);
    OnInfo(playerid,0);
    OnInfo(playerid,0);
    DestroyCurrentMenu(playerid);
    TogglePlayerControllable(playerid,1);}
    return 1;
    }



    //===============ExitMenu=======================================================


    public OnPlayerExitedMenu(playerid)
    {


    new Menu:Current = GetPlayerMenu(playerid);
    if( Current == test0){
    TogglePlayerControllable(playerid,1);}
    if( Current == test0){
    }
    }
    }
    return 1;
    }


    //==============================================================================



  • Dein Fehler ist dass du das einfach irgendwo unvollständig raus kopiert hast, das erkennt man daran dass dort die Funktion DestroyCurrentMenu verwendet wird die nirgends definiert ist. Das ist auch keine standard SA-MP Funktion.


    Hier mal dein Menü wie es funktionieren müsste:


    #include <a_samp>


    new Menu:gMenu[MAX_PLAYERS];


    new gCurrentMenu;


    main() {
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
    }


    public OnGameModeInit() {
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
    }


    public OnPlayerRequestClass(playerid, classid) {
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[]) {
    if (strcmp(cmdtext, "/m1", true)==0) {
    gMenu[playerid] = CreateMenu("test0", 2, 50, 200, 41, 30);
    AddMenuItem(gMenu[playerid],0,"1");
    AddMenuItem(gMenu[playerid],0,"2");
    AddMenuItem(gMenu[playerid],0,"3");
    AddMenuItem(gMenu[playerid],0,"4");
    AddMenuItem(gMenu[playerid],0,"5");
    AddMenuItem(gMenu[playerid],0,"6");

    gCurrentMenu = 1;
    return 1;
    }

    if (strcmp(cmdtext, "/m2", true)==0) {
    gMenu[playerid] = CreateMenu("teste0", 1,50,200,50,25);
    AddMenuItem(gMenu[playerid],0,"code");
    AddMenuItem(gMenu[playerid],0,"code1");
    AddMenuItem(gMenu[playerid],0,"Verlassen");

    gCurrentMenu = 2;
    return 1;
    }
    return 0;
    }
    public OnPlayerSelectedMenuRow(playerid, row) {
    new txt[256];


    format (txt, sizeof txt, "Menü: %d; Zeile: %d", gCurrentMenu, row);
    SendClientMessage(playerid, 0xFF0000FF, txt);

    DestroyMenu(gMenu[playerid]);

    return 1;
    }


    public OnPlayerExitedMenu(playerid) {
    DestroyMenu(gMenu[playerid]);

    return 1;
    }

    Intel Xeon W3690 Hexacore @ 4.5 GHz - 48GB Triple Channel DDR3 - GeForce RTX 2070 Super - Asus P6T Deluxe V1 @ P6T WS Pro BIOS

    Mainboard 12 Jahre, CPU 10 Jahre alt - old but gold!

  • Danke aber dein Menü geht nicht hier habe ich meins und ist getestet und geht


    100% selbst gesciptet


    #include <a_samp>
    #define FILTERSCRIPT
    /*
    Filterscipt by SHAFT
    Filterscript Handy Menü
    */


    #if defined FILTERSCRIPT


    //============FARBEN=======================//


    #define COLOR_BLUE 0x0000FFAA
    #define COLOR_BROWN 0x993300AA
    #define COLOR_ORANGE 0xFF9933AA
    #define COLOR_RED 0xAA3333AA
    #define COLOR_GREEN 0x33AA33AA
    #define COLOR_YELLOW 0xF5DEB3AA
    //==========NEW============================//


    new string[256];
    new Menu:handy;


    //=========================================//
    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print("====>Handy Filterscript by. SHAFT<====");
    print("--------------------------------------\n");



    handy = CreateMenu("Handy", 1, 50.0, 180.0, 200.0, 200.0);


    AddMenuItem(handy, 0, "Polizei");
    AddMenuItem(handy, 0, "Adac");
    AddMenuItem(handy, 0, "Taxi");
    AddMenuItem(handy, 0, "Waffendealer");
    AddMenuItem(handy, 0, "Notarzt");
    AddMenuItem(handy, 0, "P&R Line");
    return 1;
    }
    //======================================//
    public OnPlayerSelectedMenuRow(playerid, row)
    {
    new Menu:current;
    current = GetPlayerMenu(playerid);
    if(current == handy)
    {
    switch(row)
    {
    case 0:
    {
    format(string, sizeof(string), "%s braucht die Polizei",(playerid));
    SendClientMessageToAll(COLOR_BLUE,string);
    printf(string);
    }
    case 1:
    {
    format(string, sizeof(string), "%s braucht ein Adac",(playerid));
    SendClientMessageToAll(COLOR_ORANGE,string);
    printf(string);

    }
    case 2:
    {
    format(string, sizeof(string), "%s braucht ein Taxi",(playerid));
    SendClientMessageToAll(COLOR_YELLOW,string);
    printf(string);

    }
    case 3:
    {

    format(string, sizeof(string), "%s braucht ein Waffendealer",(playerid));
    SendClientMessageToAll(COLOR_GREEN,string);
    printf(string);
    }
    case 4:
    {

    format(string, sizeof(string), "%s braucht ein Arzt",(playerid));
    SendClientMessageToAll(COLOR_RED,string);
    printf(string);
    }
    case 5:
    {

    format(string, sizeof(string), "%s braucht die Flug gesellschaft",(playerid));
    SendClientMessageToAll(COLOR_BROWN,string);
    printf(string);


    }


    }
    }
    return 1;
    }
    //==============================================//
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmdtext, "/handy", true) == 0)
    {
    ShowMenuForPlayer(handy, playerid);
    return 1;
    }
    return 0;
    }
    #endif
    //============================================//

    2 Mal editiert, zuletzt von SHAFT ()