Beiträge von Jeffry

    Setze mal vor beide TogglePlayerControllable einen print:
    printf("Toggle: playerid = %d", playerid);


    Kommt der print, wenn du ENTER drückst? Wenn nicht, dann wird das callback gar nicht aufgerufen, sprich es liegt an etwas anderem, möglicherweise an einem Filterscript, der auch Menus beinhaltet?

    Der else-Teil mit dem return darf nicht in die Schleife.
    if(newstate==PLAYER_STATE_DRIVER){
    new Caridd = GetPlayerVehicleID(playerid);
    for(new fc;fc<sizeof(FactionCars);fc++){
    if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
    if(FactionCars[fc][fCarid] == GetPlayerVehicleID(playerid)){
    for(new f;f<5;f++){
    if(GetPlayerFaction(playerid) == FactionCars[fc][fFaction][f])
    {
    return 1;
    }
    }
    SendClientMessage(playerid,COLOR_GREY,"Du besitzt kein Schüssel!");
    return 1;
    }
    }
    }
    }

    Die Klammersetzung ist nicht ganz richtig. So wäre es richtig:
    stock IsVehicleEmpty(vehicleid)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerVehicleID(i) == vehicleid) return 0;
    }
    return 1;
    }


    Im Befehl dann:
    if(FactionCars[fc][fFaction][0] == GetPlayerFaction(playerid))
    zu:
    if(FactionCars[fc][fFaction][0] == GetPlayerFaction(playerid) && IsVehicleEmpty(FactionCars[fc][fCarID]))
    fCarID = So wie die ID bei dir ist, von CreateVehicle.

    Lass dir mal GetPlayerAdmin(playerid) und GetPlayerFaction(playerid) über einen printf ausgeben, möglicherweise hast du nicht das Level, oder bist nicht in der Fraktion, in der du sein solltest.

    ocmd:mhauser(playerid)
    {
    for(new hausid=1;hausid<MAX_HAUSER;hausid++)
    {
    if(PlayerDaten[playerid][pTutorial] == 1)return SendClientMessage(playerid,ORANGE," Du bist noch im Tutorial!");
    if(PlayerDaten[playerid][pLogin] == 0)return SendClientMessage(playerid,ORANGE ," Du bist nicht Eingeloggt!");
    {
    new array[10] = {0,1,2,3,4,5,6,7,8,9};
    new i, maxi=0,string[145];

    for(; i < 10; ++i)if(array[maxi] < array[i]) maxi = i;
    {
    format(string, sizeof(string), "[MÜLL-SYSTEN]: Hausnummer: %d Menge: %d", maxi, HInfo[maxi][Muellmenge]);
    SendClientMessage(playerid, ORANGE, array);
    }
    }
    }
    return 1;
    }


    Wobei die geschwungenen Klammern nach der Zeile mit der Schleife nicht notwendig sind.


    Die Meldung würde so aber ziemlich oft kommen, aber ich denke das weißt du, weil das sieht ja eh nach einem Test Befehl aus.


    EDIT:
    IPrototypeI: Ist mir auch klar, siehe letzter Satz. ;)

    Wenn du es in beiden Fällen haben willst, dann einfach


    public OnPlayerExitedMenu(playerid)
    {
    TogglePlayerControllable(playerid,true);
    return 1;
    }


    und:
    public OnPlayerSelectedMenuRow(playerid, row)
    {
    TogglePlayerControllable(playerid,true);
    //...Rest hier...

    Nichts Weltbewegendes, aber damit ihr euch in Zukunft die Arbeit ersparen könnt, dies selbst aus der Liste der Waffen rauszusuchen:


    stock GetWeaponSlot(weaponid) //©Jeffry
    {
    switch(weaponid)
    {
    case 0,1: return 0;
    case 2..9: return 1;
    case 22..24: return 2;
    case 25..27: return 3;
    case 28,29,32: return 4;
    case 30,31: return 5;
    case 33,34: return 6;
    case 35..38: return 7;
    case 16..18,39: return 8;
    case 41..43: return 9;
    case 10..15: return 10;
    case 44..46: return 11;
    case 40: return 12;
    default: return -1;
    }
    return -1;
    }


    Beispiel zur Nutzung:

    Spoiler anzeigen
    new wSlot = GetWeaponSlot(17);
    printf("Slot der Waffen-ID 17: %d", wSlot);

    Spoiler anzeigen
    Ausgabe:

    Zitat
    Spoiler anzeigen

    [12/12/2014 18:12:21] Slot der Waffen-ID 17: 8



    Keywords: GetWeaponSlot, GetWaffenSlot, WaffenSlot, GetWaffenIndex, GetWeaponIndex, SlotDerWaffe, IndexDerWaffe.

    [jTool] PAWN Errors & Warnungen - Deutsche Übersetzung


    Hallo,


    ich veröffentliche hiermit eine deutsche Übersetzung aller Errors und Warnungen des PAWN-Compilers.
    Die englische Version findet sich in der Pawn Language Guide von CompuPhase (ab Seite 147).



    Verzichtserklärung:
    Diese Übersetzung wurde mit bestem Wissen und Gewissen gemacht, trotzdem können Fehler nicht ausgeschlossen werden.
    Für die sprachliche und inhaltliche Richtigkeit kann nicht garantiert werden. Fehler im Inhalt oder in der Sprache dürfen gerne an mich weitergegeben werden.
    Diese Übersetzung darf nicht unter eigenem Name veröffentlicht werden, weder frei noch kommerziell.



    Information


    Da die Übersetzung mehr als die erlaubten 40000 Zeichen hat, kann ich es leider nicht als Klartext im Thread posten. In den Downloads findet sich ein Pastebin-Link sowie eine PDF der Übersetzung.



    Fragen/Probleme/Anregungen/Rückmeldungen


    Bei Fragen und Problemen jeglicher Art bitte ich um die Benutzung der "Antworten" Funktion. Sollte ich binnen 48 Stunden nicht geantwortet haben, kann mir gerne eine Private Nachricht (PN) geschickt werden.
    Für Anregungen betreffend Vorschlägen oder Verbesserungen bin ich jederzeit offen. Ich bitte darum, diese ebenfalls über die "Antworten" Funktion zu posten.


    Über Rückmeldungen würde ich mich freuen.



    Changelog


    • 12.12.2014: [v1.0] Erste Veröffentlichung
    • 22.06.2015: [v1.0] Download-Bilder repariert
    • 29.09.2015: [v1.0] Download-Link repariert



    Download





    Viel Spaß mit der Übersetzung, ich hoffe es hilft dem einen oder anderen im Umgang mit den Meldungen des Compilers.


    Beste Grüße,
    Jeffry 8)

    Und eine Liste angezeigt wird von den jeweiligen Themen,sprich:


    Du hast ja jetzt aber gar nichts gemacht, oder? Das ganze System kann ich dir nicht schreiben, das ist viel zu viel.
    Arbeite dich Schritt für Schritt erst mal durch, und erstelle die Codes.


    Für das Anklicken der Textdraws:
    http://wiki.sa-mp.com/wiki/SelectTextDraw
    http://wiki.sa-mp.com/wiki/OnPlayerClickTextDraw


    Für die Dialoge nutzt du das Tutorial von mir:
    [ SCRIPTING ] [jTuT] Interaktive Dialoge
    Items hinzufügen an der Stelle, an der ein Report hinzukommt.
    Items entfernen, wenn ein Item nach dem Anklicken des Textdraws ausgewählt und bearbeitet worden ist.

    Nicht und, sondern oder.
    if(carid > 611 || carid < 400) return SendClientMessage(playerid,dgelb,"Diese Fahrzeug-ID ist nicht verfuegbar!");
    if(farbe1 > 255 || farbe1 < 0) return SendClientMessage(playerid,dgelb,"Diese Farb-ID ist nicht verfuegbar!");
    if(farbe2 > 255 || farbe2 < 0) return SendClientMessage(playerid,dgelb,"Diese Farb-ID ist nicht verfuegbar!");