Beiträge von maddin911

    1. PC: Windows 7 Ultimate 64-Bit
    Laptop: Windows 7 Ultimate 32-Bit
    2. PC: Windoes XP Professional SP3 32-Bit
    3. PC: Windoes XP Professional SP3 32-Bit
    Der Wenn-grade-nichts-besseres-da-ist-PC: Windoes XP Professional SP3 32-Bit


    ------------------------

    Hallo Leute. Auch ich habs geschafft, hab mein erstes "größeres" Projekt fertig. Bin zwar kein Profi, aber mit ein paar Tutorials und dem Wiki kann man alles schaffen... ^^ Hab mich schwer reingehängt, ich hoffe, es gefällt euch. Es ist ein Adminscript mit dem Namen...


    v1.3

    Features
    - Keine Menüs, nur Dialoge
    - Login-/Registersystem
    - 5 Adminlevel
    - Name-/IP-Ban
    - Speichert Passwort/Wanteds/Geld/Adminlevel/Tode/Kills/Spawns/IP und verbleibende Jailtime
    - Bei Klick auf Spieler in der Scorelist (für Admins):

    - Dialoge zur Auswahl von Waffen/Wetter:

    - Jail:

    ...und viele mehr!

    Commands
    Ab Adminlevel 0

    Ab Adminlevel 1

    Ab Adminlevel 2

    Ab Adminlevel 3

    Ab Adminlevel 4

    Ab Adminlevel 5

    /commands um alle zu sehen!


    Credits
    Danke an Kleiner_Opa fürs Tipps geben, danke an Goldkiller für das Commands mit Parametern-Tutorial, danke an M4rCiii für das Dini-Tutorial.


    Lizenz


    Download + Installation
    Da das Script die Funktionen der dini-Include benutzt, müsst ihr sie euch, sofern noch nicht vorhanden downloaden und in den EUER_SERVER/pawno/include Ordner verschieben. Dort muss ebenfalls diese Include hineinkopiert werden.


    Nun erstellt ihr in eurem scriptfiles-Ordner einen Ordner namens "madAd" und darin wiederum einen Ordner names "Users".


    Dann könnt ihr das Filterscript in den filterscripts-Ordner ziehen, kompilieren und in eurer server.cfg eintragen.


    Nach dem ersten Connecten und Registrieren könnt ihr in den scriptfiles/madAd/Users-Ordner gehen und in eurer Save-Datei hinter AdminLevel= 5 hinschreiben. Ihr seid nun Fulladmin. Speichern nicht vergessen!


    Pastebin: http://pastebin.com/86f45h9Q


    Solidfiles (inkl. Includes + Scriptfiles):



    Falls einige Bugs drin sind, wie gesagt, ich bin neu im Metier, verzeiht mir, postet sie hier und ich werde mich bemühen, sie zu beheben.
    Falls ihr Fragen habt -> fragt!
    Ansonsten: Habt Spaß damit und beachtet die Lizenz... ;)
    Euer
    maddin911



    Hab jetzt noch was im gleichen Stil für deine (recht seltsame) Auflöung:
    Bin aber nicht ganz so zufrieden, hatte zu wenig Platz in die Höhe... -_-
    xDD
    Naja, hoffe du hast Spaß damit... ^^

    Du musst ganz oben bei den anderen new

    new rein;
    new raus;

    machen.


    Unter OnGameModeInit

    rein = CreatePickup(blablabla...);
    raus = CreatePickup(blablabla...);


    und rück deinen Code am besten sauber ein... ;)

    if(pickupid == rein)
    { //du hattest [
    SetPlayerPos(246.783996, 63.900199, 1003.640625);
    }
    if(pickupid == raus)
    {
    SetPlayerPos(-1605.508666, 711.299377, 13.867187);
    }


    Achtung: In den Pickup-Code kommen nicht nur die Coords! Siehe hier!

    Heyho, ich hab jetzt mithilfe eines Tutorials ein Login-/Register-Script erstellt.
    Nur sendet es beim Einloggen die Meldungen

    Zitat

    Willkommen!
    Du hast dich erfolgreich mit den Name : XY und dem Passwort : XY registriert
    Willkommen!
    Du wurdes automatisch eingloggt

    , was mir ein Rätsel ist, da ich ja alle Klammern etc. richtig gesetzt habe?!?


    That's my code:

    #include <a_samp>
    #include <dini>


    #define Weiß 0xFFFFFFAA
    #define Grau 0xAFAFAFAA
    #define Rot 0xAA3333AA


    new passwort[256];


    new FalschesPasswort[MAX_PLAYERS];
    new Eingeloggt[MAX_PLAYERS];
    new login;
    new regis;


    forward Anmelden(playerid);
    forward SpielerUpdate(playerid);
    forward PasswortFalsch(playerid);


    enum SInfo
    {
    Passwort[256],
    Wanteds,
    Geld,
    alvl,
    Tode,
    Kills,
    Spawn,
    }
    new SpielerInfo[MAX_PLAYERS][SInfo];


    public OnPlayerConnect(playerid)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);


    if(dini_Exists(Spielerdatei))
    {
    login = ShowPlayerDialog(playerid, login, DIALOG_STYLE_INPUT, "Logge dich ein!", " ", "Login!", "Abbrechen!");
    }
    else if(!dini_Exists(Spielerdatei))
    {
    regis = ShowPlayerDialog(playerid, regis, DIALOG_STYLE_INPUT, "Registriere dich!", " ", "Registrieren!", "Abbrechen!");
    }
    return 1;
    }
    public OnPlayerDeath(playerid, killerid, reason)
    {
    SpielerInfo[playerid][Tode]++;
    SpielerInfo[killerid][Kills]++;
    SpielerUpdate(playerid);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    SpielerUpdate(playerid);
    Eingeloggt[playerid] = 0;
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    if(Eingeloggt[playerid] == 1)
    {
    SpielerInfo[playerid][Spawn]++;
    }
    if(Eingeloggt[playerid] == 0)
    {
    SendClientMessage(playerid,Rot,"Wenn du dich einloggst, kannst du mehr Funktionen benutzen...");
    }
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == login)
    {
    if(response == 1)
    {
    if(listitem)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);
    passwort = dini_Get(Spielerdatei,"Passwort");


    if(strcmp(inputtext,passwort,false) == 0)
    {
    Anmelden(playerid);

    }
    else
    {
    FalschesPasswort[playerid] += 1;
    PasswortFalsch(playerid);
    }
    }
    }
    else
    {
    SendClientMessage(playerid,Rot,"Wenn du dich einloggst, kannst du mehr Funktionen benutzen...");
    }
    return 1;
    }

    if(dialogid == regis)
    {
    if(response == 1)
    {
    if(listitem)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",inputtext);
    dini_IntSet(Spielerdatei,"Wanteds",SpielerInfo[playerid][Wanteds]);
    dini_IntSet(Spielerdatei,"Geld",SpielerInfo[playerid][Geld]);
    new GlueckWunschText[128];
    format(GlueckWunschText,sizeof(GlueckWunschText),"Du hast dich erfolgreich mit den Name : %s und dem Passwort : %s registriert",SpielerName,inputtext);
    SendClientMessage(playerid,Weiß,GlueckWunschText);
    Anmelden(playerid);
    SendClientMessage(playerid,Weiß,"Du wurdes automatisch eingloggt");
    return 0;
    }
    }
    else
    {
    SendClientMessage(playerid,Rot,"Wenn du dich registrierst, kannst du mehr Funktionen benutzen...");
    }
    return 1;
    }

    return 1;
    }


    public Anmelden(playerid)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);
    SpielerInfo[playerid][Geld] = dini_Int(Spielerdatei,"Geld");
    SpielerInfo[playerid][Wanteds] = dini_Int(Spielerdatei,"Wanteds");
    SpielerInfo[playerid][alvl] = dini_Int(Spielerdatei,"alvl");
    SetPlayerMoney(playerid,SpielerInfo[playerid][Geld]);
    SetPlayerWantedLevel(playerid,SpielerInfo[playerid][Wanteds]);
    SendClientMessage(playerid,Weiß,"Wilkommen!");
    Eingeloggt[playerid] = 1;
    return 1;
    }


    public SpielerUpdate(playerid)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);
    GetPlayerMoney(playerid,SpielerInfo[playerid][Geld]);
    GetPlayerWantedLevel(playerid,SpielerInfo[playerid][Wanteds]);
    dini_IntSet(Spielerdatei,"Geld",SpielerInfo[playerid][Geld]);
    dini_IntSet(Spielerdatei,"Wanteds",SpielerInfo[playerid][Wanteds]);
    dini_IntSet(Spielerdatei,"AdminLevel",SpielerInfo[playerid][alvl]);
    dini_IntSet(Spielerdatei,"Tode",SpielerInfo[playerid][Tode]);
    dini_IntSet(Spielerdatei,"Kills",SpielerInfo[playerid][Kills]);
    dini_IntSet(Spielerdatei,"Spawn",SpielerInfo[playerid][Spawn]);
    return 1;
    }


    public PasswortFalsch(playerid)
    {
    if(FalschesPasswort[playerid] == 1)
    {
    SendClientMessage(playerid,Rot,"Du hast das Passwort bereits 1 mal falsch eingegeben du hast noch 2 Versuche");
    login = ShowPlayerDialog(playerid, login, DIALOG_STYLE_INPUT, "Logge dich ein!", " ", "Login!", "Abbrechen!");
    }
    if(FalschesPasswort[playerid] == 2)
    {
    SendClientMessage(playerid,Rot,"Du hast das Passwort bereits 2 mal falsch eingegeben du hast noch 1 Versuch!");
    login = ShowPlayerDialog(playerid, login, DIALOG_STYLE_INPUT, "Logge dich ein!", " ", "Login!", "Abbrechen!");
    }
    if(FalschesPasswort[playerid] == 3)
    {
    SendClientMessage(playerid,Rot,"Du hast das Passwort 3 mal falsch eingegeben, du wurdest gekickt");
    Kick(playerid);
    }
    return 1;
    }

    Okay, da hat die Alles-was-bunt-ist-Render-Atombombe eingeschlagen... ^^
    Aber gute Backgrounds ist mit ein paar coolen Brushes und Halbtrasparenzebenen gar nicht so schwer, probiers mal aus... ;)

    Ich habe mir einen Login-Command erstellt.
    dcmd_login(playerid,params[])
    {
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "/madAd/%s.ini", name );
    new passwort;


    if(sscanf(params, "s", passwort))
    {
    return SendClientMessage(playerid,COLOR_RED,"Benutzung: /login [Passwort]");
    }
    /*new stringword[128];
    stringword = dini_Get(string, "Passwort:"); */


    if(passwort == dini_Get(string, "Passwort:"))
    {
    loggedin[playerid] = 1;
    SendClientMessage(playerid, COLOR_GREEN, "Du hast dich erfolgreich eingeloggt, herzlichen Glückwunsch!");
    new plip[128];
    GetPlayerIp(playerid, plip, sizeof(plip));
    dini_Set(string, "IP:", plip);
    alvl = dini_Get(string, "AdminLevel:");
    }
    else
    {
    return SendClientMessage(playerid, COLOR_GREEN, "Falsches Passwort!");
    }
    return 1;
    }
    Nur leider hat er irgendiwe immer ein Problem mit dem der Dini-Abfrage beim Passwort-String.
    Er meldet immer

    Zitat

    C:\Users\Martin\Desktop\samp03asvr_win32\filterscripts\madAd.pwn(843) : error 033: array must be indexed (variable "dini_Get")

    Ich kann es auch so machen, wie es momentan auskommentiert ist, also

    new stringword[512];
    stringword = dini_Get(string, "Passwort:");
    und dann die Abfrage
    if(passwort == stringword"))
    benutzen, der gleiche Error(nur mit: variable "stringword") erscheint. Ich hoffe, ihr helft mir, Licht ins Dunkel zu bringen.


    Mit freundlichen Grüßen,
    der ratlose Maddin... ;)

    Hallo Community. Ich habe mich mal an einem Server für Mini-Wars versucht, sprich ein Gamemode läuft 10 Minuten und dann kommt der nächste. Das ganze soll als TDM ablaufen, man benötigt also auch einen Score um zu entscheiden, wer gewonnen hat.
    Ich hab mir gedacht, das is als Integer ganz gut, machste
    new TeamScore; und unter OnPlayerDeath nach ein paar Teamabfragen dann TeamScore++; (hab später noch im Wiki TeamScore +=1; gefunden und auch verwendet) aber nichts get. Ich wollte das in nem Textdraw, den ich alle 100 ms zerstöre und neu anzeige anzeigen. Jedoch klappt das nicht ganz, egal wie ich es probiere.
    Ich hab ganz oben:
    forward SCA(playerid);
    forward SCAN(playerid);
    new CooleTypenScore = 0;
    new PennerScore = 0;
    new Text:CooleTypenShow;
    new Text:PennerShow;
    new Text:CooleTypenShowNumber;
    new Text:PennerShowNumber;
    Unter OnGameModeInit
    CooleTypenShow = TextDrawCreate(250.0,410, "~r~ Coole Typen:");
    PennerShow = TextDrawCreate(250.0,428, "~g~ Penner:");

    new string[250];
    format(string, sizeof(string),"~r~ %d" ,CooleTypenScore);
    CooleTypenShowNumber = TextDrawCreate(400.0, 410, string);

    new string2[250];
    format(string2, sizeof(string2),"~g~ %d" ,PennerScore);
    PennerShowNumber = TextDrawCreate(400.0, 428, string2);
    return 1;
    Meine Death-Abfragen
    public OnPlayerDeath(playerid, killerid, reason)
    {
    new plt = GetPlayerTeam(playerid);
    new kit = GetPlayerTeam(killerid);


    SendDeathMessage(killerid,playerid,reason);


    if(killerid == INVALID_PLAYER_ID)
    {
    SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);


    if(plt == CooleTypen)
    {
    PennerScore += 1;
    }
    if(plt == Penner)
    {
    CooleTypenScore += 1;
    }
    }

    if(kit == CooleTypen)
    {
    if(plt == CooleTypen)
    {
    SendClientMessage(killerid, COLOR_RED, "Keine Teamkills!");
    }
    if(plt == Penner)
    {
    CooleTypenScore += 1;
    }
    }


    if(kit == Penner)
    {
    if(plt == Penner)
    {
    SendClientMessage(killerid, COLOR_RED, "Keine Teamkills!");
    }
    if(plt == CooleTypen)
    {
    PennerScore += 1;
    }
    }
    return 1;
    }

    Unter OnPlayerConnect
    TextDrawShowForPlayer(playerid, CooleTypenShow);
    TextDrawShowForPlayer(playerid, PennerShow);
    SetTimerEx("SCA", 100, true, "i",playerid);
    und zu guter letzt
    public SCA(playerid)
    {
    TextDrawHideForPlayer(playerid, CooleTypenShowNumber);
    TextDrawHideForPlayer(playerid, PennerShowNumber);
    SetTimerEx("SCAN", 100, 0, "i",playerid);
    return 1;
    }


    public SCAN(playerid)
    {
    TextDrawShowForPlayer(playerid, CooleTypenShowNumber);
    TextDrawShowForPlayer(playerid, PennerShowNumber);
    return 1;
    }


    Ausserdem habe ich einen Timer (bei mir "GME") der den Gamemode nach 10 Minuten neustartet. Ich würde das gerne als Countdown-Textdraw machen, hab jedoch keine Ahnung, wie sich das realisieren lässt.


    Ich hoffe, ihr könnt mir helfen und bedanke mich jetzt schon mal...


    P.S.: Wundert euch nicht über die Namen, hab Coole Typen vs. Penner... :D
    Der ganze Gamemode ist übrigens hier .