Beiträge von BigBenLPs

    Weil du ganz simpel den Fehler machst


    if(Fraktinfo[playerid][Fraktion] == 1) // Das du hier abfragst ob er in der Fraktion ist ! Und wenn ja (==) dann soll er removed werden....
    {
    SendClientMessage(playerid,ROT,"Du gehörst, nicht dieser Fraktion an");
    RemovePlayerFromVehicle(playerid);
    }


    Lies dir auch mal die Commis durch //


    Mfg

    Also du machst einen ganz simplen Fehler :


    if(newstate==PLAYER_STATE_DRIVER)
    {
    for(new i=0; i<sizeof(lspdcar); i++)
    {
    if(GetPlayerVehicleID(playerid)==lspdcar[i])
    {
    if(Fraktinfo[playerid][Fraktion] == 1) // == Heißt ja wenn ist gleich. aber das wüürde heißen wenn er in der Fraktioin ist fliegt er raus....
    {
    SendClientMessage(playerid,ROT,"Du gehörst, nicht dieser Fraktion an");
    RemovePlayerFromVehicle(playerid);
    }


    Würde es so machen :


    if(newstate==PLAYER_STATE_DRIVER)
    {
    for(new i=0; i<sizeof(lspdcar); i++)
    {
    if(GetPlayerVehicleID(playerid)==lspdcar[i])
    {
    if(Fraktinfo[playerid][Fraktion] == 1) {}
    else { SendClientMessage(playerid,ROT,"Du gehörst, nicht dieser Fraktion an"); RemovePlayerFromVehicle(playerid); }


    oder so kann man es auch machen :


    if(newstate==PLAYER_STATE_DRIVER)
    {
    for(new i=0; i<sizeof(lspdcar); i++)
    {
    if(GetPlayerVehicleID(playerid)==lspdcar[i])
    {
    if(Fraktinfo[playerid][Fraktion] != 1)
    {
    SendClientMessage(playerid,ROT,"Du gehörst, nicht dieser Fraktion an");
    RemovePlayerFromVehicle(playerid);
    }

    Moinsen,


    Ich muss hier direkt mal Dome wiedersprechen man erkennt einwand frei was zu was gehört..Zudem ist ein login/register System enthalten wenn du mal lesen würdest würdest du sehen das es auf 0.3a Basis ist ... da waren Dialoge noch nicht so da...
    Und Publics und Stocks sind komisch aufgebaut ? Also ich finde die vollkommen ok....
    Und deine letzte Aussage kannst du direkt in die Tonne kloppen.....
    Es ist ein sehr geiles Script vlt. werde ich es editieren und einige Dinge ändern wie Login Register zu Dialog oder noch die Englische Sprache einführen zu der bestehenden Spanischen , Deutschen und Französischen....


    Fazit : 8/10


    Mfg

    Vorstellung : 1/10 für die Mühe mach mehr Bilder rein und verbessere deine Rechtschreibung und bringe eine ordentliche Struktur rein..
    Forum : 2/10 für das Design aber ein Tipp arbeitet mit Kategorien und Unterforen und macht nicht alles zu Hauptforum auch hier fehlt die Struktur... Zusätzlich würde ich euch enpfehlen eine ordentliche TDL zu holen ich weiß .gp ist eine TDL aber holt euch eine anständige wie .cc , .org , .net, .de ,.com etc.... Wichtig zudem wenn du schon dir so einen Server leisten kannst hol dir auch direkt mal nen WBB 3 hat einfach mehr....
    Server : -/- konnte nicht getestet werden.....
    Teamspeak Einrichtung : -/- ich kann definitiv nicht mit dem Port: 9983 sowie mit dem Port 9987 nicht connecten..... naja egal dann kann ich diesen halt nicht bewerten....


    Fazit : 3/20,


    Hier nochmal Stichpunktartig :


    - Struktur im Forum und in der Vorstellung
    - Rechtschreibung ftw [ GODFATHER-RPG ] [D~R~S] Deutscher-Rolleplay Server(Deutscher-Rolleplay Server ???? Wird Roleplay nicht nur mit einem l geschrieben ?? )
    - WBB 3 Lizenz wenn du schon einen Root hast oder V-Server what ever
    - Ordentliche Domain mehr dazu siehe Forum Bewertung



    Mfg Ben

    Ob Aaron da Recht hat ka...
    Ich würde dir ZCMD empfehlen ist nach meinem Wissen die schnellste CMD Variante
    dazu einfach die ZCMD Include von hier : http://forum.sa-mp.com/showthread.php?t=91354
    in den Includes Ordner und oben ins Script #include <zcmd>
    Nun einfach das
    if(strcmp(cmd, "/createh", true) == 0)


    mit dem ersetzen :


    COMMAND:createh(playerid,params[])


    Wichtig alle estra CMD Arten wie ZCMD dürfen nicht unter dem Callback
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    return 1;
    }


    stehen sie müssen immer außerhalb eines Callbacks stehen Beispiel :


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    return 1;
    }
    COMMAND:createh(playerid,params[])


    {
    if(IsPlayerConnected(playerid))
    {
    if(pInfo[playerid][pAdminlevel] != 4) return SendClientMessage(playerid, COLOR_RED, "Du bist nicht befugt diesen Befehl zu benutzten.");
    new priceh,inter;
    if(sscanf(params,"ii",priceh,inter)) return SendClientMessage(playerid, COLOR_RED, "Benutzung: /createh [Preis] [Interrior]");
    if(priceh != 1) return SendClientMessage(playerid, COLOR_GREY, "Das Haus kann nicht weniger als 1$ kosten.");
    if(inter < 0 || inter > 15) return SendClientMessage(playerid, COLOR_GREY, "Die Interior-ID kann nicht unter 0 und über 15 sein.");
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid, X,Y,Z);
    format(string, sizeof(string), "Du hast ein Haus welches %d kostet mit dem Interrior: %d erstellt.",priceh,inter);
    SendClientMessage(playerid, COLOR_GREY, string);
    CreateHaus(X,Y,Z,priceh,"Keiner",inter);
    }
    return 1;
    }


    MFG

    Warum so komplex mach es so :


    if(strcmp(cmd, "/createh", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(pInfo[playerid][pAdminlevel] != 4) return SendClientMessage(playerid, COLOR_RED, "Du bist nicht befugt diesen Befehl zu benutzten.");
    new priceh,inter;
    if(sscanf(params,"ii",priceh,inter)) return SendClientMessage(playerid, COLOR_RED, "Benutzung: /createh [Preis] [Interrior]");
    if(priceh != 1) return SendClientMessage(playerid, COLOR_GREY, "Das Haus kann nicht weniger als 1$ kosten.");
    if(inter < 0 || inter > 15) return SendClientMessage(playerid, COLOR_GREY, "Die Interior-ID kann nicht unter 0 und über 15 sein.");
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid, X,Y,Z);
    format(string, sizeof(string), "Du hast ein Haus welches %d kostet mit dem Interrior: %d erstellt.",priceh,inter);
    SendClientMessage(playerid, COLOR_GREY, string);
    CreateHaus(X,Y,Z,priceh,"Keiner",inter);
    }
    return 1;
    }


    Hier im Editor geschrieben können Fehler vorhanden sein ;)...

    ocmd:ban(playerid,params[])
    {
    if(pInfo[playerid][Adminlevel] == 5)return SendClientMessage(playerid,ROT,"Du bist kein Admin.");// Hier würde das bedeuten das wenn er ein Admin Level 5 ist das er dann das nicht darf wiichtig mach es so:
    // pInfo[playerid][Adminlevel] != 5) return ..... warum so ? Weil das : != Bedeutet wenn nicht
    new pID, reason[128],string[128];
    if(sscanf(params,"us",playerid,reason))return SendClientMessage(playerid,BLAU,"/ban [id] [grund]"); // playerid ? pID wenn denn
    //also if(sscanf(params,"us",pID,reason))
    format(string,sizeof(string),"AdmCmd: %s wurde von %s gebannt. Grund: %s",SpielerName(playerid),SpielerName(playerid),reason); // Nächster Fehler
    // Hier würde folgendes Kommen : AdmCmd : Player wurde von Player gebannt Grund Reason... ? Ersetze bei dem ersten SpielerName einfach playerid durch pID
    SendClientMessageToAll(ROT,string);
    pInfo[playerid][Baned] = 1;
    //Du würdest dich selber bannen also
    Ban(playerid);
    //pInfo[pID][Baned] = 1;
    //Ban(pID);
    return 1;
    }


    so 2. Befehl
    ocmd:clear(playerid,params[])
    {
    if(pInfo[playerid][Fraktion] == 1 || 2)return SendClientMessage(playerid,ROT,"Du bist kein Beamter."); // What mach es so :
    // if(pInfo[playerid][Fraktion] != 1 || pInfo[playerid][Fraktion] != 2) return
    // hier fehlt ein new pID;
    if(sscanf(params,"u",playerid))return SendClientMessage(playerid,BLAU,"Benutzung: /clear [ID]");
    //Das brauchen wir auch hier direkt einfach statt playerid also if(sscanf(params,"u",playerid)) mach es so : if(sscanf(params,"u",pID))
    if(playerid == INVALID_PLAYER_ID)return SendClientMessage(playerid,ROT,"Der Spieler ist nicht Online.");
    //playerid gegen pID
    SetPlayerWantedLevel(playerid,0);
    // und das gleiche wieder playerid gegen pID austauschen
    return 1;
    }


    3. Befehl


    ocmd:setadmin(playerid,params[])
    {
    if(pInfo[playerid][Adminlevel] == 5)return SendClientMessage(playerid,ROT,"Du bist kein Admin."); // == zu !=
    // new pID , rank;
    if(sscanf(params,"ui",pInfo[playerid][Adminlevel] == 1))return SendClientMessage(playerid,ROT,"/setadmin [spieler] [level]"); //pInfo[playerid][Adminlevel] ? mach es so :
    // so : if(sscanf(params,"ui",pID,rank))
    if(pInfo[playerid][Adminlevel]<0||pInfo[playerid][Adminlevel]>5)return SendClientMessage(playerid,ROT,"Bitte gültigen Rang angeben.");
    //pInfo[playerid][Adminlevel] zu rank
    SpielerSpeichern(playerid);
    //SpielerSpeichern(pID); du willst dich ja nicht selber speichern ...
    SendClientMessageToAll(BLAU,"Es wurde jemand zu Admin gemacht.");
    return 1;
    }


    so müssten sie jetzt alle gehen

    Guten Morgen,


    ich habe gerade mal ein Scheinsystem angefangen also für die Fahrschule habe aber nun ein Problem.
    Code :


    #define scheinname1 "Auto"
    #define scheinname2 "Bike"
    #define scheinname3 "LKW"
    #define scheinname4 "Flug"
    #define scheinname5 "Boot"
    #define scheinname6 "Angel"
    #define scheinname7 "Waffen"
    COMMAND:givelicense(playerid,params[])
    {
    new pID,schein[128];
    if(IsPlayerConnected(playerid))
    {
    if(!IsPlayerInFraktion(playerid,7)) return SendClientMessage(playerid,COLOR_RED,"Fehler : Du bist kein Fahrlehrer !");
    if(sscanf(params,"is",pID,schein)) return SendClientMessage(playerid,COLOR_BLUE,"Benutze : /givelicense [Player ID] [Schein]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_RED,"Fehler : Der gewünschte Spieler ist nicht online !");
    if(playerid == pID) return SendClientMessage(playerid,COLOR_RED,"Fehler : Du kannst dir nicht selber Scheine geben !");
    if(schein == scheinname1){ bInfo[pID][Autoschein] = 1; SendClientMessage(pID,COLOR_BLUE,"Du hast nun einen Autoschein ! Glückwunsch."); }
    else if(schein == scheinname2){ bInfo[pID][Bikeschein] = 1; SendClientMessage(pID,COLOR_BLUE,"Du hast nun einen Bikeschein ! Glückwunsch."); }
    else if(schein == scheinname3){ bInfo[pID][LKWschein] = 1; SendClientMessage(pID,COLOR_BLUE,"Du hast nun einen LKWschein ! Glückwunsch."); }
    else if(schein == scheinname4){ bInfo[pID][Flugschein] = 1; SendClientMessage(pID,COLOR_BLUE,"Du hast nun einen Flugschein ! Glückwunsch."); }
    else if(schein == scheinname5){ bInfo[pID][Bootschein] = 1; SendClientMessage(pID,COLOR_BLUE,"Du hast nun einen Bootsschein ! Glückwunsch."); }
    else if(schein == scheinname6){ bInfo[pID][Angelschein] = 1; SendClientMessage(pID,COLOR_BLUE,"Du hast nun einen Angelschein ! Glückwunsch."); }
    else if(schein == scheinname7){ bInfo[pID][Waffenschein] = 1; SendClientMessage(pID,COLOR_BLUE,"Du hast nun einen Waffenschein ! Glückwunsch."); }
    else { SendClientMessage(playerid,COLOR_RED,"Fehler : Der Schein muss so heißen : Auto , Bike , LKW , Flug , Boot , Angel , Waffen"); }
    }
    return 1;
    }


    Fehler Meldungen :



    Ich hoffe jemand von euch kann mir helfen...


    Mfg

    Gehen wir mal zurück in die Grundlagen .
    In einem Timer wird die Zeit in Milli Sekunden angegeben.
    d.h.
    Wenn du sagst

    SetTimer("BusTimer",10000,0); // 10000 = 10 Sekunden da 1 Sekunde = 1000 Millisekunden.


    wenn du es aber auf 60 Minuten haben willst gehen wir einmal in Die Mathematik :



    SetTimer("BusTimer",1000*60*60,0); // Was haben wir gemacht ?
    // Ganz einfach 1 Sekunde mal 60 = ? 60000 Millisekunden oder eine Minute und 1 Minute mal 60 = ? Genau 1 Stunde...


    Ich hoffe ich konnte dir helfen ;)

    Wie Nico schon sagte
    if(!fexist("Playerdatei")) // Warum geht es wohl nicht ? Da du ja sagst wenn die Datei nicht vorhanden ist soll der DIALOG_LOGIN gezeigt werden das bewirkt das kleine ! es heißt ja soviel wenn nicht Beispie: if(variable != 1) return SendClientMessage(playerid,ROT,"Die Variable ist nicht 1");
    so wird das nichts ....
    Ich hoffe dir hilft meine Erklärung du sollst es ja lernen ;)
    mach es lieber so :


    if(fexist(Playerdatei))

    public UpdateDatum()
    {
    new Year,Day,Month,string[20],mona[64]; // bei mona erstmal direkt nen index hinter.....
    //mona=Monat1; //Was bringt dir das bitte ? mona = Monat1 weg damit...
    getdate(Year, Month, Day);
    if(mona > 1) // Wenn mona = 1 ? Warscheinlich soll das bewirken wenn der Monat größer 1 ist oder ?
    {
    switch(Month)//switch mona ??? Wohl eher switch(Month) da du ja zwischen den monaten wechseln willst oder ?
    {
    case 1:{mona=Monat1;}
    case 2:{mona=Monat2;}
    case 3:{mona=Monat3;}
    case 4:{mona=Monat4;}
    case 5:{mona=Monat5;}
    case 6:{mona=Monat6;}
    case 7:{mona=Monat7;}
    case 8:{mona=Monat8;}
    case 9:{mona=Monat9;}
    case 10:{mona=Monat10;}
    case 11:{mona=Monat11;}
    case 12:{mona=Monat12;}
    }
    format(string,20,"%d.%d.%d",Day,mona,Year);
    TextDrawSetString(Datum,string);
    }
    return 1;
    }


    müsste so eigentlich gehen...


    Mfg

    Update auf Version 0.7 :


    Was ist neu ?


    Alle Cmd´s nun mit ZCMD.
    Login / Register ausgebessert.
    1o1 heißt nun deagle auch als Befehl /deagle da die Map zu groß war für 1o1 es wird aber wieder ein 1o1 eingeführt werden.
    Report System eingefügt (/report ; /rc)
    Unnötige Includes entfernt.
    Neue Fahrzeuge am Random Spawn BSN.


    Pastebin wird oben neu eingefügt.


    Mit freundlichen Grüßen


    Big_Ben

    Moinsen,


    folgendes wollte gerade nen DM Server anmachen auf meinem alten Linux V-Server der mit Debian 6 läuft doch komischer Weise passiert das nach dem ich alles eingerichtet habe :


    Code
    Befehl '"./samp03svr"'
    fehlgeschlagen mit Beendigungscode 127 und Fehlernachricht
    -bash: line 12: ./samp03svr: No such file or directory.


    Kennt jemand den Fehler ?


    MfG


    /edit keiner ?