Beiträge von Splash

    @ PawnFox


    Das sscanf Plugin funktioniert ja auch nur mit dem sscanf2 include und nicht mit dem Sscanf include. Y_less hatte Sscanf weiterentwickelt gehabt und es mit einem Plugin ausgestattet extra.


    Solltest also sscanf2 mal mit dem Plugin sscanf nutzen und testen ^^

    Fals du siehst versucht er die Plugins: sscanf und streamer zu laden kann es aber nicht.


    Update deine Plugins und Includes, schau nach das du sscanf und streamer in deiner server.cfg stehen hast, recompile dein Script und versuche es nocheinmal.

    Es gibt seit einiger Zeit fallenden Schnee als Objekt, schau mal bei den Partikel Effekten






    Ich frage nicht umsonst, da ein Server wo ich eine ganze Zeit drauf gezockt hatte, auch Schnee als Wetter hatte und es eine Menge Serverresourcen und Resourcen vom Clienten gefressen hatte, dass hat dann zu EPIC Lags bei vielen geführt, so dass die Policeclass kaum noch Möglichkeiten hatte zu finen und zu jailen und du eine halbe Ewigkeit gebraucht hast um von Las Venturas nach San Fierro zu kommen.

    Ich mag das FakeSnow Objekt sowieso irgendiwe nicht, da es viele resourcen vom Clienten und Server verbraucht, da jede "Flocke" ein Objekt ist. :/


    2/10


    Oder hast du etwas besseres gefunden als diesen FakeSnow??? ;o

    Coole sache :thumbup:


    8/10











    Danke euch beiden wäre super wenn jemand testet und mir derzeitige Bugs sagt, da ich es nicht auf meine Server laufen lassen kann (dumme überschneidung der commands dann).




    Zudem brauche ich immernoch Ideen was ich noch hinzufügen kann D:


    Ej hab was vergessen :S


    Alle cmds werden in der Console angezeigt, also so wie es auch auf dem Server zu sehen ist.

    xadminx v1.0:


    Whirlpool gehashtes Passwort oder besser gesagt so sieht dann die Spielerdatei aus:



    Registrierung:




    CMD Dialog für Player:



    CMD Dialog für RCON Admins:



    Ihr braucht:


    sscanf2 include und plugin
    Whirlpool Plugin
    zcmd include
    y_ini include


    Downloads xadminx v1.0:
    xadminx.amx
    xadminx.pwn
    Pastebin




    xadminx v2.0 [BETA]


    Hier kommt die Beta Version von xadminx v2.0.


    Was hat sich geändert?


    Ich habe mich entschieden, die Bans in einem extra Ordner abzuspeichern, damit ein entbannen Ingame möglich wird, dann hat das System jetzt mehr als 30 Befehle und ist in 4 Stunden um mehr als 600 Zeilen gewachsen!


    Warum erst eine Beta Version und kein volles Release?


    ich habe mich entschieden diese Beta zu veröffentlichen, um euch zu zeigen wie dass System vorankommt. Zudem habe ich persönlich keine Zeit um alle Funktionen zu testen, auch wenn ich mir zu 90% sicher bin, dass sie funktionieren.


    Warum machst du das?


    Ich möchte für euch ein komplett deutsches Adminsystem erstellen mit vielen Funktionen und Extras, zudem liebe ich zu scripten. :3


    Was sind die Befehle und wie sind sie aufgebaut?


    Okay das ist eigentlich ganz einfach, jenachdem was ihr für ein Level seit (Player,Admin,Vip) erweitert sich eure Befehleliste, die ihr mit /cmds aufrufen könnt.


    Wie mache ich mich selber zum Admin?


    Okay das ist nicht wie bei vielen anderen Systemen wo man erst in die Scriptfiles muss und die Datei aufmachen muss und das Level einstellen muss, hier funktioniert es so, dass wenn ihr euch als Rcon normal auf eurem Script anmeldet ihr den Befehl /maxadmin eingeben könnt und das System euch zum Adminlevel 3 und zum Viplevel 3 macht.


    Was brauche ich um das Script zu editieren?


    Ihr braucht folgende Plugins/Includes:


    sscanf2 (Plugin && Include)

    Whirlpool (Plugin)

    zcmd (Include)

    y_ini (include)


    Wo kann ich es herunterladen?


    Ihr könnt es auf folgenden Seiten herunterladen:


    xadminx Ordner //enthält alle nötigen Plugins/Includes, das Filterscript als .pwn und .amx, die Ordnerstruktur, und ein Clean Gamemode


    Information:


    1. Ordnerstruktur: in euren Scriptfiles einen Ordner xadminx erstellen, in diesen zwei weitere namens Accounts und Bans

    2. Ja ihr dürft es für eure Zwecke weiterentwickeln. [Credits müssen überall stehen bleiben]

    3. Nein ihr dürft es nicht rereleasen.



    Kann nicht falsch sein da es sonst bei mir nicht funktionieren würde.


    Das ist ein Nameban den ich mir so umgebaut habe, da beim PPC Script mit Bantime gearbeitet wird und das sehr nervig ist.


    Habe es zudem mit einigen getestet und es funktioniert zu 100%.


    Zudem werde ich doch nicht ihm ein command schreiben damit er copy/paste machen kann, er soll ja nun auch was dabei lernen.

    Hier mit zcmd.


    CMD:unban(playerid,params[])
    {
    //hier setzen wir die lokalen variablen
    new PlayerToUnban[24],Msg[128],Name[24];
    new file[100], File:PFile, LineForFile[100];
    //checken ob der Spieler online ist
    if(APlayerData[playerid][LoggedIn] == true)
    {
    //hier checken wir dann das Adminlevel was du setzen willst (ich nehme mein adminsystem!!!)
    if(APlayerData[playerid][PlayerLevel] >= 4)
    {
    //sollte der command falsch genutzt wurde sein
    {
    if(sscanf(params,"s[128]",PlayerToUnban));
    SendClientMessage(playerid,FARBE,"CMD Nutzung: /unban [PlayerName]");
    else
    {
    //den namen vom admin herausbekommen
    GetPlayerName(playerid,Name,sizeof(Name));
    //nun erstellen wir einen kompletten filenamen für den Spieler
    format(file,sizeof(file),PlayerFile, PlayerToUnban);
    //checken ob die datei existiert
    if(fexist(file))
    {
    PFile = fopen(file, io_appened); //die spielerdatei öfnnen
    format(LineForFile,100,"Banned 0\r\n"); //Spieler auf unbanned stellen = 0
    fwrite(PFile,LineForFile); //es in die datei schreiben
    fclose(PFile); //die datei schliessen damit es abgespeichert wird
    //eine nachricht formatieren mit den infos: Adminamen und dem unbanned Spieler
    format(Msg, 128, "%s hat %s unbanned.",Name,PlayerToUnban);
    //die nachricht an alle die online sind senden
    SendClientMessageToAll(Farbe,Msg);
    }
    else
    //sollte eine solche datei nicht existieren
    SendClientMessage(playerid,Farbe,"Dieser Spieler existiert nicht in unserer Datenbank oder ist ipbanned!");
    }
    }
    else return 0;
    }
    else return 0;
    return 1;
    }


    Du musst natürlich diesen Cmd auf dein Script umschreiben, da es aus meinem aka PPC Script ist.

    Versuche es einmal so:


    if(dialogid==DIALOG_MP3)
    {
    if(!response) return SendClientMessage(playerid,FARBE,"Du hast die Auswahl abgebrochen!");
    if(response) //Wenn Okay gedrückt wird
    {
    if(listitem==0) //wenn das erste Item ausgewählt wurde, dann:
    {
    PlayAudioStreamForPlayer(playerid,"http://listen.technobase.fm/dsl.asx"); //spiel technobase ab
    }
    if(listitem==1) //wenn das zweite Item ausgewählt wurde, dann:
    {
    PlayAudioStreamForPlayer(playerid,"http://listen.HardBase.FM/aacplus.pls"); //spiel Hardbase ab
    }
    if(listitem==3)
    {
    PlayAudioStreamForPlayer(playerid,"http://www.wdr.de/wdrlive/media/einslive-wm32.asx"); //spiel wdr ab
    }
    if(listitem==4)
    {
    StopAudioStreamForPlayer(playerid); //stoppt den aktuellen Stream
    SendClientMessage(playerid,FARBE,"Du hast das Radio abgeschalten!"); //sended die Message das der Stream gestoppt wurdew
    }
    }

    Wenn er es ercheated hat rate ich dir einfac zu nem Anticheatsystem :p .


    Und nein ich finde derzeit nicht wie ich es bei mir gemacht habe, entweder doch zu früh oder zu spät. Habe es aufjedenfall als anticheat bei mir drinne.

    Mir schon klar das es ein reallife Server ist xD


    Also wenn du es in einem cmd hast, steckst du die if abfrage vor dem kaufen der Waffe.
    Eigentlich kannst du die if Abfrage immer davor setzen wo mann die möglichkeit hat waffen zu bekommen/kaufen.


    Also sagen wir einmal du stehst im ammunation, da musst du /buy eingeben um ein dialog aufzubekommen, dann würde es bei zcmd ungefähr so aussehen:
    CMD:buy(playerid,params[])
    {
    if(Spieler[playerid][Level]<2) //abfragen ob er unter Level 2 ist (also ab Level 2 kann man kaufen)
    {
    ShowPlayerDialog(playerid,DIALOGID,DIALOG_STYLE,"Überschrift","Erste Waffe\nzweite waffe\nusw","Kaufen","Abbrechen");
    }
    else
    {
    SendClientMessage(playerid,FARBE,"Nein du darst dass nicht!");
    }
    return 1;
    }


    PS: Kein Plan wie dein Script ehrlich gesagt aussieht aber so würde ich es einfach machen. ^^

    Ich würde es bei OnPlayerUpdate reinpacken, oder in nen Timer






    Du weisst schon das OnPlayerUpdate sehr resourcen fressend sein kann?




    OnPlayerUpdate




    So erstens:




    if(Spieler[playerid][Level] < 2)


    {


    ResetPlayerWeapons(playerid);


    GameTextForPlayer(playerid, "~r~Waffen erst ab lvl. 2", 2000, 1);


    return 1;


    }




    Du fragst ab ob er ein höhres Level hat in deiner if abfrage und removest den jenigen der ein höheres Level hat die Weapons.




    Das zweite sage ich dir gleich nach einem Edit suche grade in meinem Script dannach.

    cmd mit zcmd:




    CMD:radio(playerid,params[])
    {
    PlayAudioStreamForPlayer(playerid,"irgendein Sender");
    return 1;
    }


    CMD:radiooff(playerid,params[])
    {
    StopAudioStreamForPlayer(playerid);
    return 1;
    }


    Streams für den Audio Stream bekommste am besten von hier:


    Shoutcast.com

    bei:


    public OnPlayerDeath(playerid, killerid, reason)


    einfach das hinzufügen:


    SendDeathMessage(killerid, playerid, reason);



    PS: Das ist eine sogenannte Killlist.




    EDIT:
    Kannst bei:


    public OnPlayerConnect(playerid)

    noch das hinzufügen:


    SendDeathMessage(INVALID_PLAYER_ID,playerid,200);



    und bei


    public OnPlayerDisconnect(playerid,reason)

    das hier:


    SendDeathMessage(INVALID_PLAYER_ID,playerid,201); 
    Dann zeigt deine Killlist wenn jemand connected und disconnected mit nem blauen und nem roten Knopf (oder was weiss ich was das sein soll)

    Heio ich wollte mal fragen wie es am günstigsten wäre, eine Rankup Message zu erstellen wenn ein Spieler bestimmte stats hat.




    Also ich gehe von meinem Script mal aus.



    Die stats werden wie folgt berechnet:


    if(APlayerData[playerid][StatsTruckerJobs]+APlayerData[playerid][StatsConvoyJobs]==70) 
    Was ja nun einleuchtend ist. Doch wie bekomme ich es hin, dass wenn der Player nachdem er die 70 Jobs insgesamt erledigt hatte alle NUR eine Rank up Message bekommen?




    Wenn ich es über OnPlayerUpdate mache bekomme ich logischerweisse eine Message Spam bis der Player eine Ladung mehr hat.




    Ich danke allen die mir hier weiterhelfen können.