Beiträge von Haxler

    new ID=GetNearestHaus(playerid,4);
    und später hast du nochmal
    new ID=GetNearestHausExit(playerid,3);
    erstell die variable einfach davor:


    if(newkeys & KEY_SECONDARY_ATTACK)
    {
    new ID;
    if(!GetPVarInt(playerid,"HUHNFISCH_InHaus"))
    {
    ID = GetNearestHaus(playerid,4);
    if(ID == -1) return true; // Hier
    if(Haus[ID][Abgeschlossen]) return true;
    SetPlayerInterior(playerid,Haus[ID][Int]);
    SetPlayerPos(playerid,Haus[ID][Pos][3],Haus[ID][Pos][4],Haus[ID][Pos][5]);
    SetPlayerVirtualWorld(playerid,Haus[ID][VirtualWorld]);
    SetPVarInt(playerid,"HUHNFISCH_InHaus",true);
    return true;
    }
    ID=GetNearestHausExit(playerid,3);
    if(ID == -1) return true; // Hier
    SetPlayerInterior(playerid,0);
    SetPlayerPos(playerid,Haus[ID][Pos][0],Haus[ID][Pos][1],Haus[ID][Pos][2]);
    SetPlayerVirtualWorld(playerid,0);
    DeletePVar(playerid,"HUHNFISCH_InHaus");
    return true;
    }

    Eine direkte Möglichkeit fällt mir dazu nicht ein. Du könntest vielleicht mit SetVehicleVelocity das Bike "zwingen" nicht so hoch zu springen.

    Du kannst den Fehler relativ schnell finden wenn du große Teile per /* und */ auskommentierst und kompilierst. Falls der Compiler dann nicht crasht weißt du in welchem Teil der Fehler sein muss. Das machst du dann so oft bis du die Stelle gefunden hast :D

    Der Fehler könnte auf einen Klammerfehler hinweisen, passiert aber auch teilweise wenn du Ausdrücke verwendest, die der Compiler nicht versteht. Hatte auch schon irgendwo ein Sonderzeichen stehen was da nicht hingehört hat.
    Normalerweise kannst du einfach auf Nicht Senden drücken und Pawno bleibt geöffnet. Dann kannst du die letzten Änderungen rückgängig machen, vielleicht findest du so den Fehler schnell.

    Du kannst nur mit Zahlen zwischen -2147483648 und +2147483647 rechnen. Am Besten setzt du einfach ein Limit, wieviel Geld eingezahlt werden kann.

    Habs mir nochmal genau angeschaut.

    if(pID == -1)
    {
    format(string,sizeof(string),"{23FF00}%s{FEFEFE} - Anrufen",Handyid(playerid));
    ShowPlayerDialog(playerid,DIALOG_ANRUFEN,DIALOG_STYLE_INPUT,string,"{FF0037}Bitte gib eine korrekte Handynummer an!\n\n{FEFEFE}Wen möchtest du anrufen ?\nNutze /telefonbuch\nBedenke vorher die Kosten die das ganze\nmit sich trägt!","Anrufen","Abbrechen");
    }
    deine Funktion HandyNummerRichtig gibt -1 zurück, falls kein Spieler diese Nummer besitzt.

    Wenn ich das richtig sehe versuchst du mit HandyNummerRichtig die dazugehörige Spieler-ID herauszufinden.

    new nummer = SpielerInfo[playerid][Handynr];
    new pID = HandyNummerRichtig(nummer);
    würde dir demnach die Spieler-ID des Anrufers ausgeben, da du seine Nummer überprüfst.

    Wenn du dir Include-Datei anguckst findest du folgende Zeile:

    #define COMMAND:%1(%2) \
    forward cmd_%1(%2); \
    public cmd_%1(%2)
    d.h. du kannst die Funktion auch direkt aufrufen: cmd_mv(playerid, params); bzw cmd_mv(playerid, "");

    Wenn du z.B. stirbst, ohne dass ein Spieler dich umgebracht hat (Fall, Ertrinken,...) ist killerid INVALID_PLAYER_ID. Deshalb solltest du abfragen, ob du von einem Spieler getötet wurdest und nur dann die Nachricht ausgeben:
    if(killerid != INVALID_PLAYER_ID) // Überprüfen ob Tod durch Spieler verursacht wurde
    {
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(killerid, pName, MAX_PLAYER_NAME); //Name des Killers herausfinden
    new msg[25+MAX_PLAYER_NAME];
    format(msg,25+MAX_PLAYER_NAME,"Du wurdest von %s getötet.",pName); //Nachricht formatieren
    SendClientMessage(playerid, 0xFF0000FF, msg); //Nachricht an "Opfer" schicken
    }

    "File or function is not found" lässt darauf schließen, dass du eine Funktion ausführen willst, die es nicht gibt. Kann daran liegen, dass sie z.B. in einer neueren Version des Plugins nicht mehr vorhanden ist. Wobei mir das unwahrscheinlich scheint sofern du die richtige Include-Version verwendest.


    #define Dialog_aHelp 7
    #define HELP_PAGES 2


    stock ShowAdminHelpPage(playerid,page)
    {
    switch(page)
    {
    case 0: ShowPlayerDialog(playerid,Dialog_aHelp,DIALOG_STYLE_MSGBOX,"Admin-Befehle - Seite 1","/heal => Heilen / Fahrzeug reparieren\n/kill => Spieler töten\n/kick => Spieler kicken\n/newcar => Fahrzeug spawnen\n/tp => Spieler herteleportieren\n/tph => Zum Spieler teleportieren\n/tpa => Andere Spieler teleporten","Weiter","Abbrechen");
    case 1: ShowPlayerDialog(playerid,Dialog_aHelp,DIALOG_STYLE_MSGBOX,"Admin-Befehle - Seite 2","/setrang => Ränge verändern\n/seth => Energie setzen (0-100)\n/seta => Rüstung setzen(0-100)\n/gw [PlayerID] [WaffenID] (Munition)=> Waffen vergeben\n/cca => Clear Chat All","Weiter","Abbrechen");
    // Nächste Seite wäre dann case 3:
    }
    return true;
    }


    ocdm:ahelp(playerid,params[])
    {
    if(pInfo[playerid][Rang] > 1)
    {
    SetPVarInt(playerid, "AHStep", 0);
    ShowAdminHelpPage(playerid,0);
    }
    else
    {
    SCM(playerid,ROT,"Du bist leider kein Admin!");
    SCM(playerid,ROT,"Dein Befehl lautet: /help");
    }
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == Dialog_aHelp)
    {
    if(response)
    {
    new step = GetPVarInt(playerid,"AHStep");
    step++;
    if(step == HELP_PAGES)step = 0;
    SetPVarInt(playerid,"AHStep",step);
    return ShowAdminHelpPage(playerid,step);
    }
    }
    return 1;
    }


    hab den Code ein wenig umgeschrieben und getestet, funktioniert wie er soll. Du kannst beliebig oft "Weiter" drücken und es wird immer die nächste Seite (bzw. die erste falls du auf der letzten bist) angezeigt. Wenn du mehr Seiten hinzufügen willst einfach MAX_PAGES erhöhen.


    e: pawn-Tag richtig eingefügt :P

    Verwende doch einfach Templers Code? Musst nur Dialog_aHelp1 und Dialog_aHelp2 jeweils mit Dialog_aHelp ersetzen, dann funktioniert er.
    Edit: Musst natürlich noch überprüfen welcher Button gedrückt wurde, so wie es jetzt ist wird bei jeder Aktion die nächste Seite geöffnet