Beiträge von Holdont

    Kleiner Tipp am Rande: Da haben sich ein paar Rechtschreibfehler eingeschlichen... und der Satz "Viele Kunden, die ihre Produkte bei und finden" macht auch nicht wirklich SInn. Design ist richtig gut. Gefällt mir da es schlicht ist und seriös wirkt

    ohje ^^


    dann einfach die o's in g's umändern ^^

    dcmd_o(playerid,params[])
    {
    if(Spieler[playerid][Admin]<1) return SendClientMessage(playerid,ROT,"Du bist kein Admin!");
    if(sscanf(params, "s[90]",String)) {
    return SendClientMessage(playerid,ROT,"Benutzung: /o [Nachricht]");
    }
    else{
    format(String,sizeof String, "Admin %s: %s.",PlayerName(playerid),String);
    SendClientMessageToall(0xFFA500AA,String);
    }
    return 1;
    }





    Anhang:
    Du brauchst sscanf + stock PlayerName(playerid):



    stock PlayerName(playerid) {
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof(Name));
    return Name;
    }


    //edit 1: Anhang hinzugefügt

    oben bei den defines hinzufügen:
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

    Hier mit dcmd:


    -Admin Abfrage ist mit Spieler[playerid][Admin]


    Globale Vars

    #define COLOR_OOC 0xE0FFFFAA
    new Ooc,togooc[MAX_PLAYERS],String[128];



    Der eigentliche /o command
    dcmd_o(playerid,params[])
    {
    if(Ooc == 0) return SendClientMessage(playerid,ROT,"Der Ooc ist abgeschaltet");
    if(sscanf(params, "s[90]",String)) {
    return SendClientMessage(playerid,ROT,"Benutzung: /o [Nachricht]");
    }
    else{
    format(String,sizeof String, "(( %s: %s ))",PlayerName(playerid),String);
    ooc(String);
    }
    return 1;
    }


    stock ooc:
    stock ooc(string[])
    {
    for(new i=0;i<MAX_PLAYERS;i++){
    if(togooc[i]==0)
    {
    SendClientMessage(i,COLOR_OOC,string);
    }
    }
    //Log("Ooc_Chat",string);
    return 1;
    }


    Der /togooc + /noooc Befehl
    if(strcmp(cmdtext,"/togooc",true)== 0)
    {
    if(togooc[playerid]== 0){
    togooc[playerid]=1;
    SendClientMessage(playerid,WEIß,"Du hast den Ooc Chat für dich deaktiviert");
    return 1;
    }
    else if(togooc[playerid]==1){
    togooc[playerid]=0;
    SendClientMessage(playerid,WEIß,"Du hast den Ooc Chat für dich aktiviert");
    return 1;
    }
    }


    if(strcmp(cmdtext,"/noooc",true)== 0 && Spieler[playerid][Admin]>0)
    {
    if(Ooc==1)
    {
    Ooc=0;
    SendClientMessageToAll(FARBE_3D,"Der Ooc Chat wurde von einem Admin eingeschaltet");
    }
    else{
    Ooc=1;
    SendClientMessageToAll(FARBE_3D,"Der Ooc Chat wurde von einem Admin ausgeschaltet");
    }
    return 1;
    }

    Du musst das im Router freischalten!


    Filterscript Installation:
    Filterscripte(.amx) Dateien in den Filterscript Ordner ziehen.
    Dann in der server.cfg unter filterscript die Namen einfügen(ohne.amx)


    Was für einen Router hast du denn.?


    Google sonst einfach mal "'Routername' ports öffnen" und durchsuche die Ergebnisse ;)

    n Carspawner findest du in meiner Signatur...


    Ein admin Sys wie du es suchst, gibt es in dem Sinne auch: gAdmin


    Das mit den Waffenpacks müsstest du selber Scripten... Wie du einen Home Server im Internet erreichbar machst:
    In deinem Route müssen die Ports 7777 tcp und udp geöffnet werden:


    Bezeichnung | Protokoll | Port |an Pc | an Port
    SAMP-Server | TCP |7777 Holdont | 7777
    Samp-ServerUDP | |UDP | 7777 Holdont | 7777

    Momentan ist gibt es keine Farbauswahl. Da gibt es nur den "veralteten" Befehel /farbe <C1> <C2>.


    MIt den Bildern hast du leider Recht, dennoch ist das ganze ja auch in Klassen unterteilt, was die Suche eigentlich
    erleichtern sollte.


    Eine Farbpalette für Samp ist meines Wissens unmöglich.

    Holdont's Car Spawner

    Inhalt
    Einleitung
    Screenshots
    Features
    Download & Copyright
    Source Code


    Einleitung:
    Hallo liebe Sa-mp Spieler/Scripter,
    Ich möchte euch hiermit mein Filterscript für das spawnen von Fahrzeugen über Menüs vorstellen.
    Die Idee stammt nicht von mir, sondern von anderen Servern, die über ein solches Menü verfügen.
    Da es allerdings meines Wissens kein Filterscript gibt, das dieses Feature für Server anbietet, habe ich mein eigenes geschrieben.


    Dieses Script hat mir beim erstellen eines Servers geholfen, da ich nun nicht mehr die Model Ids der Fahrzeufe suchen musste.


    Screenshots





    Features
    Um das Script für möglichst viele Server attraktiv zu machen, habe ich beschloßen, gewisse Features in das Script einzubauen.
    Diese sind:

    Zitat

    Premium Autos
    Kosten
    Farb Command
    OneCar/Player
    Fahrzeuge zerstören

    Es können bis zu 30 Premium Models bestimmt werden. EIn /farbe Command für kleine Server und ein OneCar/Player 'System'
    Weitere Informationen können der readme.txt entnommen werden.


    Download & Copyright & Source Code
    Dieses Script unterliegt dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des Autors Holdont.


    Download

    Source Code


    Ich wünsche viel Spaß mit diesem Filterscript und hoffe, dass es euch nützlich erscheint.
    Bugs & Vorschläge bitte an email@holdont.de oder in diesem Thread melden.



    //edit Version 1.1


    ToDo List:

    Zitat

    Farben über Menü
    Admin Only Nutzung
    *mehr Fahrzeuge?



    KLeiner Denkfehler:


    Wenn du innerhalb der schleife ein return 0 bzw 1 schreibst, gibt die gesamte Funktion
    OnPlayerText 1 oder 0 zurück.


    So ists richtig:

    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(GetPlayerVirtualWorld(i) == WORLD)
    {
    SendPlayerMessageToPlayer(i,playerid,text);
    }


    }
    return 0;

    Einfach:
    Die Welt des "schreibenden" auslesen, mit einer for schleife alle Spieler durchgehen, und jeder der die gleiche hat, dem wird mit SendClientMessage die Nachticht gesendet.


    Ob dies die optimale Lösung ist weiß ich nicht, ist aber das einfachste was mir einfiel.


    mfg

    Textdraw0 = TextDrawCreate(643.000000, 2.000000, "_");//Blind
    TextDrawBackgroundColor(Textdraw0, 255);
    TextDrawFont(Textdraw0, 1);
    TextDrawLetterSize(Textdraw0, 0.800000, 49.399978);
    TextDrawColor(Textdraw0, -1);
    TextDrawSetOutline(Textdraw0, 0);
    TextDrawSetProportional(Textdraw0, 1);
    TextDrawSetShadow(Textdraw0, 1);
    TextDrawUseBox(Textdraw0, 1);
    TextDrawBoxColor(Textdraw0, 255);
    TextDrawTextSize(Textdraw0, 0.000000, 0.000000);

    Wenn du noch nicht mit Textdraws gearbeitet hast, empfehle ich dir mit Zamaroth's Textdraw Filterscript zu arbeiten ;)

    Mit SetNameTagDrawDistance(1000.9); setzt du tatsächlich für alle Spieler auf dem Server die Anzeige der SpielerNamen.


    Mir fällt keine Samp Funktion ein, die die Namen Anzeige Weite nur für einzelne Spieler ändern würde.


    Daher müsstest du mit 3d-Textlabeln arbeiten(wenn es nicht anders geht).


    CreatePlayer3DTextLabel sollte dir dabei helfen ;)

    Wenn du den Error Bericht lesen würdest, wüsstest du, dass "Fraktion" schon definiert ist.


    d.h. Du brauchst beim 2. Mal nicht "new fraktion = 2" sondern höchstens "fraktion=2" zu schreiben.


    Aber vorsicht. Du hast da einen Denkfehler: Du fragst nicht ab ob der Spieler in der Fraktion 2 oder 1 ist.
    Du definierst fraktion u nd setzt es gleich 1. (Somit wird dies immer! der Fall sein).


    Schau dir nochmal billabongs Beitrag an.. dort ist es richtig :)