Problem mit Teleport-Menü

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 folgendes problem mit meinem tele-menü:
    wenn ich den gamemode neu gestartet habe, funktioniert das menü zwischen 10 min und 30 min und wenn ich danach /tele mache, crasht der server, und ich muss ihn neu starten? hat einer von euch eine ahnung an was das liegen kann?


    mfg HwS-Marshall

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

  • ganz oben:
    new Menu: Teleport;


    dann:
    public OnGameModeInit()
    {
    Teleport = CreateMenu("Teleport",2, 200.0, 100.0, 150.0, 150.0);
    AddMenuItem(Teleport,0, "Stuntzone 1");
    AddMenuItem(Teleport,0, "Stuntzone 2");
    AddMenuItem(Teleport,0, "Dach");
    AddMenuItem(Teleport,0, "LS Airport");
    AddMenuItem(Teleport,0, "Big Jump");
    AddMenuItem(Teleport,0, "Speed-Street");
    AddMenuItem(Teleport,0, "Trampolin");
    AddMenuItem(Teleport,0, "Parkours");
    AddMenuItem(Teleport,0, "Drift");
    AddMenuItem(Teleport,0, "Deathmatch");


    und dann noch unten bei OnPlayerCommandText:
    if(strcmp("/tele", cmdtext, true, 10) == 0)
    {
    ShowMenuForPlayer(Teleport,playerid);
    }


    und jetzt noch das menü:
    public OnPlayerSelectedMenuRow(playerid, row)
    {
    new Menu:CurrentMenu = GetPlayerMenu(playerid);
    if(CurrentMenu == Teleport)
    {
    switch(row)
    {
    case 0:
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new State = GetPlayerState(playerid);
    if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    {
    return SetVehiclePos(vehicleid,859.2399,-2742.3735,12.2578),
    GameTextForPlayer(playerid, "~w~Willkommen im Stuntplatz", 5000, 5);
    }
    SetPlayerPos(playerid,859.2399,-2742.3735,12.2578);
    GameTextForPlayer(playerid, "~w~Willkommen im Stuntplatz", 5000, 5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat sich zum Stuntplatz teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    }
    case 1:
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new State = GetPlayerState(playerid);
    if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    {
    return SetVehiclePos(vehicleid,564.3703,-2732.0928,15.9276),
    GameTextForPlayer(playerid, "~w~Willkommen im Stuntplatz", 5000, 5);
    }
    SetPlayerPos(playerid,564.3703,-2732.0928,15.9276);
    GameTextForPlayer(playerid, "~w~Willkommen im Stuntplatz", 5000, 5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat dich zum Stuntplatz teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    }
    case 2:
    {
    SetPlayerPos(playerid, 769.0381,-2815.7803,127.3615);
    SetCameraBehindPlayer(playerid);
    GivePlayerWeapon(playerid, 46, 1);
    GameTextForPlayer(playerid, "~g~Willkommen auf dem Dach",5000,5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat sich zu nem Dach teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    }
    case 3:
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new State = GetPlayerState(playerid);
    if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    {
    return SetVehiclePos(vehicleid,1788.4448,-2679.3071,13.5469),
    GameTextForPlayer(playerid, "~b~Los Santos Stuntplatz", 5000, 5);
    }
    SetPlayerPos(playerid,1788.4448,-2679.3071,13.5469);
    GameTextForPlayer(playerid, "~b~Los Santos Stuntplatz", 5000, 5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat sich zum LS Airport teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    }
    case 4:
    {
    SetPlayerPos(playerid,1949.2843,-3115.9946,224.2312);
    GameTextForPlayer(playerid, "~y~Big Jump", 5000,5);
    SetCameraBehindPlayer(playerid);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat sich zum Big Jump teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    }
    case 5:
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new State = GetPlayerState(playerid);
    if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    {
    return SetVehiclePos(vehicleid,500.9055,-3062.3142,476.3351),
    GameTextForPlayer(playerid, "~g~Speed-Street", 5000, 5);
    }
    SetPlayerPos(playerid,500.9055,-3062.3142,476.3351);
    GameTextForPlayer(playerid, "~g~Speed-Street", 5000, 5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat sich zur Speed-Street teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    }
    case 6:
    {
    SetPlayerPos(playerid,1571.9523,-1128.1608,525.4688);
    SetCameraBehindPlayer(playerid);
    GameTextForPlayer(playerid,"~r~Trampolin", 5000, 5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat sich zum Trampolin teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    }
    case 7:
    {
    SetPlayerPos(playerid,3754.9304,-2041.7551,2.1449);
    SetCameraBehindPlayer(playerid);
    GivePlayerWeapon(playerid, 34, 100);
    GameTextForPlayer(playerid,"~y~Parkours", 5000,5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s ist dem Parkours beigetreten! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    }
    case 8:
    {
    SetPlayerPos(playerid,-312.5247,1538.8054,75.5625);
    SetCameraBehindPlayer(playerid);
    GameTextForPlayer(playerid,"~b~Willkommen auf der Driftstrecke", 5000, 5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat sich zur Drift-Strecke teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    }
    case 9:
    {
    ShowMenuForPlayer(DeathMatch,playerid);
    }
    }
    }


    wenn du meinst, dass das etwas bringt^^ xD

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

    Einmal editiert, zuletzt von [XfS]Marshall ()

  • ja das kann sein...aber ich habe es auch nochmal durchgeschaut und eig keine fehler gefunden^^ xD

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

  • Bist du sicher das es am Teleport Menü dran liegt?

    Sie brauchen Hilfe bei Linux oder Windows Servern? Wissen nicht, wie man am besten ein Forum o. a. installiert? Dann schreiben Sie mir eine PN und ich versuche Ihnen zu helfen!

  • HideMenuForPlayer vlt unter die ganzen





    case 0:
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new State = GetPlayerState(playerid);
    if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    {
    return SetVehiclePos(vehicleid,859.2399,-2742.3735,12.2578),
    GameTextForPlayer(playerid, "~w~Willkommen im Stuntplatz", 5000, 5);
    }
    SetPlayerPos(playerid,859.2399,-2742.3735,12.2578);
    GameTextForPlayer(playerid, "~w~Willkommen im Stuntplatz", 5000, 5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat sich zum Stuntplatz teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    HideMenuForPlayer(Teleport,playerid);
    }



    so vlt?

  • Ich seh da jetzt keine Fehler...aber ich hatte mal ein ähnliches Problem. Ich hatte DestroyMenu benutzt um das Menu "auszublenden" und dann bei nächsten Aufruf per ShowMenuForPlayer ist der Server gecrasht.
    Vllt hilft dir das weiter.... Hast du irgendwo DestroyMenu verwendet, wenn ja wo?


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • ja ich hab das so gemacht, dass wenn man "Deathmatch" wählt, dass dann ein neues menü kommt...

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

  • Ja das hast du auch nur bei DM gemacht aber bei den anderen lässt du das menü sozusagen offen.
    DestroyMenu(Teleport,playerid);


    oder sow muss unter jeden Case auser DM weil da neues kommen soll

  • also muss ich bei jedem case machen:
    HideMenuForPlayer(Teleport,playerid);
    außer bei DM?

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

  • ok ich versuchs mal...aber bei DM muss ich was anderes drunter machen, weil da ja ein neues menu kommt?


    //edit: jetzt habe ich HideMenuForPlayer(Teleport,playerid); hingemacht, aber jetzt kommt bei jedem teleport das menu deathmatch...

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

    Einmal editiert, zuletzt von [XfS]Marshall ()

  • public OnPlayerSelectedMenuRow(playerid, row)
    {
    new Menu:CurrentMenu = GetPlayerMenu(playerid);
    if(CurrentMenu == Teleport)
    {
    switch(row)
    {
    case 0:
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new State = GetPlayerState(playerid);
    if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    {
    return SetVehiclePos(vehicleid,859.2399,-2742.3735,12.2578),
    GameTextForPlayer(playerid, "~w~Willkommen im Stuntplatz", 5000, 5);
    }
    SetPlayerPos(playerid,859.2399,-2742.3735,12.2578);
    GameTextForPlayer(playerid, "~w~Willkommen im Stuntplatz", 5000, 5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat sich zum Stuntplatz teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    HideMenuForPlayer(Teleport,playerid);
    }
    case 1:
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new State = GetPlayerState(playerid);
    if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    {
    return SetVehiclePos(vehicleid,564.3703,-2732.0928,15.9276),
    GameTextForPlayer(playerid, "~w~Willkommen im Stuntplatz", 5000, 5);
    }
    SetPlayerPos(playerid,564.3703,-2732.0928,15.9276);
    GameTextForPlayer(playerid, "~w~Willkommen im Stuntplatz", 5000, 5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat dich zum Stuntplatz teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    HideMenuForPlayer(Teleport,playerid);
    }
    case 2:
    {
    SetPlayerPos(playerid, 769.0381,-2815.7803,127.3615);
    SetCameraBehindPlayer(playerid);
    GivePlayerWeapon(playerid, 46, 1);
    GameTextForPlayer(playerid, "~g~Willkommen auf dem Dach",5000,5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat sich zu nem Dach teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    HideMenuForPlayer(Teleport,playerid);
    }
    case 3:
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new State = GetPlayerState(playerid);
    if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    {
    return SetVehiclePos(vehicleid,1788.4448,-2679.3071,13.5469),
    GameTextForPlayer(playerid, "~b~Los Santos Stuntplatz", 5000, 5);
    }
    SetPlayerPos(playerid,1788.4448,-2679.3071,13.5469);
    GameTextForPlayer(playerid, "~b~Los Santos Stuntplatz", 5000, 5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat sich zum LS Airport teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    HideMenuForPlayer(Teleport,playerid);
    }
    case 4:
    {
    SetPlayerPos(playerid,1949.2843,-3115.9946,224.2312);
    GameTextForPlayer(playerid, "~y~Big Jump", 5000,5);
    SetCameraBehindPlayer(playerid);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat sich zum Big Jump teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    HideMenuForPlayer(Teleport,playerid);
    }
    case 5:
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new State = GetPlayerState(playerid);
    if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    {
    return SetVehiclePos(vehicleid,500.9055,-3062.3142,476.3351),
    GameTextForPlayer(playerid, "~g~Speed-Street", 5000, 5);
    }
    SetPlayerPos(playerid,500.9055,-3062.3142,476.3351);
    GameTextForPlayer(playerid, "~g~Speed-Street", 5000, 5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat sich zur Speed-Street teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    HideMenuForPlayer(Teleport,playerid);
    }
    case 6:
    {
    SetPlayerPos(playerid,1571.9523,-1128.1608,525.4688);
    SetCameraBehindPlayer(playerid);
    GameTextForPlayer(playerid,"~r~Trampolin", 5000, 5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat sich zum Trampolin teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    HideMenuForPlayer(Teleport,playerid);
    }
    case 7:
    {
    SetPlayerPos(playerid,3754.9304,-2041.7551,2.1449);
    SetCameraBehindPlayer(playerid);
    GivePlayerWeapon(playerid, 34, 100);
    GameTextForPlayer(playerid,"~y~Parkours", 5000,5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s ist dem Parkours beigetreten! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    HideMenuForPlayer(Teleport,playerid);
    }
    case 8:
    {
    SetPlayerPos(playerid,-312.5247,1538.8054,75.5625);
    SetCameraBehindPlayer(playerid);
    GameTextForPlayer(playerid,"~b~Willkommen auf der Driftstrecke", 5000, 5);
    new string2[120];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string2, sizeof(string2), "**Der Spieler %s hat sich zur Drift-Strecke teleportiert! (/tele)**", sendername);
    SendClientMessageToAll(0xFFFF00AA, string2);
    HideMenuForPlayer(Teleport,playerid);
    }
    case 9:
    {
    HideMenuForPlayer(Teleport,playerid);
    ShowMenuForPlayer(DeathMatch,playerid);
    }
    }
    }

  • so hab ich es ja auch...nur bei dem letzten case hab ich es anders herum...


    //edit: es geht immernoch nicht...jetzt kommt immer noch wenn ich z.b. stuntzone wähle, das dm-menü und i-wann crasht der server...


    //edit 2: weiß niemand was ich ändern muss? es geht nämlich immer noch nicht...

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

    7 Mal editiert, zuletzt von [XfS]Marshall ()