[ GRUNDLAGE ] Selfmade Reallife

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Wundervollen guten Abend,
    ich habe vor 2 Tagen ein altes Script von mir gefunden, welches ich nicht mehr gebrauchen kann.
    Das Script ist eine reine Grundlage und nicht (!) spielbereit.
    Ich habe in den letzten Tagen lediglich den Code ausgebessert und ein bisschen die neue Version implementiert.
    Das Script ist gut für Anfänger geeignet, da ich sehr auf einfache Bedienung geachtet habe.
    Fast alles läuft mit einfachen Stocks und alles, was bisher gemacht wurde, ist Serverseitig.
    Bevor ich jetzt weiter rumschwafel zähle ich einfach mal ein bisschen auf:


    [tabmenu]


    [tab='Grundsätzliches']
    Sprache Deutsch
    Zeilen 1068
    Aufgewendete Zeit In den letzten 2 Tagen ~ 1 Stunde
    Speicherung SQL Lite
    Credits
    Grundscript N0SKILL
    SendClientMessageEx Kaliber
    InfoBoxen Azure
    [tab='Funktionen']
    SendErrorMessage(playerid, text[])
    SendAdminMessage(text[], level)
    SendCustomInfoToPlayer(playerid, infotext[], text[])
    SendCustomInfoToAll(infotext[], text[])
    SendNearMessage(text[], Float:X, Float:Y, Float:Z, Range)
    Log(Log[], str[])
    GetAdminName(level)
    GetAdminNameOF(level)
    GetFraktionsName(id)
    IsPlayerAnAdmin(playerid, level)
    SendPermissionError(playerid, level)
    SendAdutyError(playerid)
    KickPlayer(playerid, kicker[], Grund[], bool:Anonym)
    BanPlayer(playerid, banner[], Grund[], bool:Anonym)
    SendSecurityMessage(text[])
    GiveMoney(playerid, Betrag)
    SetMoney(playerid, Betrag)
    CheckHealth(playerid)
    GetMoney(playerid)
    SetSkin(playerid, skin)
    SpawnSupporterCar(playerid, type)
    RemoveSupporterCar(playerid)
    CheckEnginePermission(playerid, vehicleid)
    CheckLockPermission(playerid, vehicleid)
    InteractLock(vehicleid)
    InteractEngine(vehicleid)
    CreateServerVehicle(model, Float:vX, Float:vY, Float:vZ, Float:vA, color1, color2, respawn, type, siren=0)
    GetNearestVehicle(playerid)
    SetPlayerLevel(playerid, level)
    CreateAccount(playerid, id, password[])
    CreateTables()
    SavePlayer(playerid)
    LoadServerData()
    SaveServerData()
    LoginAccount(playerid, Passwort[])

    [tab='Befehle']
    [subtab='Spieler Befehle']
    Allgemeines: /raenge, /credits
    Hilfe & Support: /team
    Fahrzeug: /motor (Taste 2), /lock
    [subtab='Team Befehle']
    Supporter: /ahelp, /a, /kick, /goto, /gethere, /supcar
    Moderator: /ban, /givemoney, /setskin
    Super Moderator: /akick
    Kon Administrator: /makeadmin, /aban, /setmoney
    Administrator: /veh, /vowner
    [tab='Features']
    [subtab='Konfiguration']
    Im Script selber gibt es eine Großzahl an Konfigurationsmöglichkeiten.

    #define SERVERNAME "Selfmade Reallife" // Der Servername
    #define SLOGAN "Lebe dein Reallife Selfmade!" // Der Serverslogan
    #define VERSION "0.1" // Die Scriptversion
    #define AUTHOR "N0SKILL" // Der Urheber (Unbedingt stehen lassen, siehe in der Serverlog)
    //#define EDITOR "DEINNAME" // Wenn du dieses Script editieren solltest, einfach die Klammer löschen und deinen Namen eintragen.
    #define HeadAdmin "N0SKILL" // Hier den/die Namen des/der Projektleiter(s) eintragen
    //----------------- Serverbezogenes --------------------//
    #define ACKSLIMIT "6000" //Ackslimit einstellen (Nicht zu niedrig!)
    #define LANGUAGE "German" // Sprache einstellen
    #define MESSAGESLIMIT "500" // Das Limit der Pakete die der Client an den Server senden kann
    #define MAPNAME "Los Santos" // Wo spielt der Gamemode?
    //----------------- Spielbezogenes --------------------//
    #define ADMERROR "Dein Benutzeraccount~n~verfuegt nicht ueber~n~die geforderten~n~Berechtigungen.~n~Benoetigter Rang:~n~"
    #define ADUTYERROR "Um das zu tun~n~musst du im~n~Admindienst sein.~n~~g~/aduty"


    #define STARTGELD 10000
    #define SPAWNX 0
    #define SPAWNY 0
    #define SPAWNZ 0
    #define SPAWNA 0

    [subtab='Serverseitiges Fahrzeugsystem']
    Ein Administrator kann Fahrzeuge spawnen.
    Diesem kann er verschiedenen Typen zuweisen.
    Typ 0: Noobfahrzeug, Typ 1: Teamfahrzeug, Typ 2: Privatfahrzeug, Typ 3: Fraktionsfahrzeug
    Typ 0 kann nur von Level 1 Spielern gefahren werden.
    Typ 1 nur von ihrem zugewiesenem Teammitglied und von Level 4 & 5 Teammitgliedern.
    Typ 2 kann nur von dem jeweiligen Besitzer gefahren werden.
    Typ 3 nur von der zugewiesenen Fraktion.


    ACHTUNG Wenn die Fahrzeuge offen & der Motor an ist, können sie von jedem Gefahren werden. Die Berechtigungen beziehen sich auf den Motor & das Schloss.


    Ingame kann jeder Administrator Fahrzeuge erstellen und sie mittels /howner [Besitzername/Fraktionsid] zuweisen. Dies ist nur bei Typ 2 & 3 Fahrzeugen möglich.
    Ob er in einem Typ 2 oder Typ 3 sitzt wird automatisch erkannt.
    [subtab='Log System']
    In diesem Script wird jede einzelne Tätigkeit von Usern und Teammitgliedern geloggt.
    Im Script kann ganz einfach geloggt werden.
    Beispiel:
    Log("ServerExec", "Der Server wurde hochgefahren.");[pwn]
    Dann wird eine neue .log Datei mit dem Namen ServerExec erstellt.
    Output: [pwn][12.07.2015 23:53:14] Der Server wurde hochgefahren
    [subtab=Actor System]
    Im Script können ganz leicht Actors erstellt werden.
    Dazu muss lediglich ein Array editiert werden,
    in dem man Skin, Koordinaten und den Namen angeben kann.
    [subtab=Admin System]
    Ein Admin System ist enthalten.
    Es sind insgesamt 5 Ränge mit insgesamt Befehlen enthalten: (Unter anderem auch unter "Befehle" zu finden)


    Supporter: /ahelp, /a, /kick, /goto, /gethere, /supcar
    Moderator: /ban, /givemoney, /setskin
    Super Moderator: /akick
    Kon Administrator: /makeadmin, /aban, /setmoney
    Administrator: /veh, /vowner
    [subtab=Login System]
    Es ist ein Login System implementiert, welches auf SQL Lite basiert.
    [tab=Medien (Videos und Bilder)]
    Keine vorhanden.
    Das Script ist ungetestet, es lief erst einmal um das Beispiel der Log zu verdeutlichen.
    Es ist nichts getestet, sollte aber funktionieren.
    [tab=Support und Nutzungbedingungen]
    Du darfst:
    Das Script editieren
    Deine editierte Version verkaufen
    Das editierte Script releasen (MIT Credits)
    Das Script nutzen (Server, whatever)


    Du darfst NICHT:
    Die Credits löschen
    Das editierte Script releasen (OHNE Credits)
    Das Script verkaufen


    Wenn ihr Bugs findet, meldet sie einfach hier drunter.
    Ich behebe sie schnellstmöglich.
    [tab=Changelog]

    Version 1.1

    Register System gefixxt. (Ungetestet)

    [/tabmenu]


    Viel Spaß damit.


    Download
    #MIRROR 1: Time to Drive (DIRECTLINK)


    Pastebin
    #MIRROR 1: Time to Drive


    ACHTUNG Ich empfehle dringend die beigelegten Includes zu verwenden damit alles funktioniert.

  • @PARADOXON:
    Nicht unbedingt, das sind gerade mal 1000 Zeilen mit einfachsten Funktionen.
    Neben dem Patzer mit der Speicherung, den ich nebenbei heute Abend behebe malE:, sind das alles nur einfache Zusammenhänge bei denen ich mir über die Funktionalität sicher bin.


    /E
    Den Fehler habe ich übrigens schon gefunden, allerdings nur am Handy.
    Kann ich gerade also schlecht beheben :P

  • N0SKILL:


    Also mein SQL Programm zeigt mir keine Spalten an in der Tabelle "accounts" und ich muss mich auch immer wieder im Spiel registrieren.
    Du solltest dir doch vielleicht das ganze Skript noch einmal genauer ansehen und dann noch mal zum Download freischalten, natürlich nur wenn du möchtest.


    -
    malE

  • Genau das war doch meine Frage, ob die Spalten erstellt werden.
    Aber egal, habe gestern was in der Nacht vergessen :P
    Den Spalten muss eine 'Art' gegeben werden, wenn du verstehst.


    Kannst du selber kurz bei dir beheben:
    Den Stock CreateTables ersetzen.

    stock CreateTables() {
    new tmp1[500], tmp2[500], query[1000];
    format(tmp1, sizeof(tmp1), "CREATE TABLE IF NOT EXISTS `accounts`(`ID` INTEGER PRIMARY KEY AUTOINCREMENT, `Name` VARCHAR(24) COLLATE NOCASE, `LastX` FLOAT DEFAULT 0 NOT NULL,`LastY` FLOAT DEFAULT 0 NOT NULL, `LastZ` FLOAT DEFAULT 0 NOT NULL,`LastA` FLOAT DEFAULT 0 NOT NULL, `SpawnX` FLOAT DEFAULT 0 NOT NULL, ");
    format(tmp2, sizeof(tmp2), "`SpawnY` FLOAT DEFAULT 0 NOT NULL, `SpawnZ` FLOAT DEFAULT 0 NOT NULL, `SpawnA` FLOAT DEFAULT 0 NOT NULL, `Admin` INTEGER DEFAULT 0 NOT NULL,`Passwort` VARCHAR(24) COLLATE NOCASE,`LoggedIn` INTEGER DEFAULT 0 NOT NULL,`Level` INTEGER DEFAULT 0 NOT NULL, `Money` INTEGER DEFAULT 0 NOT NULL, `Skin` INTEGER DEFAULT 0 NOT NULL, `Fraktion` INTEGER DEFAULT 0 NOT NULL, `Leben` FLOAT DEFAULT 0 NOT NULL, `Armor` FLOAT DEFAULT 0 NOT NULL)");
    format(query, sizeof(query), "%s%s", tmp1, tmp2);
    db_query(Data, query);
    Log("Tables", "Die Tabellen wurden neu erstellt.");
    RefreshAllData();
    return 1;
    }

  • Datenbank Tabelle "accounts" bleibt leer trotz Registration im Spiel und nach einfügen dem neuem stock CreateTables()


    Auch wenn das keinen Zusammenhang zum Speichern haben sollte.


    /E Mir ist gerade aufgefallen das in den Logs unter "AccountCreation" Inhalt über die Erstellung des Accounts steht, aber halt nur nichts in den Tabellen. ** Ist aber ja auch nur eine formatierte Log-Message.

    Einmal editiert, zuletzt von malE ()

  • Die Spalten sollten ja schon erstellt werden wenn die Datenbank und die Tabellen erstellt werden.
    Und das verwirrt mich gerade auch, weil sie eigentlich erstellt werden müssten.
    Ich werde morgen mal am Heimrechner schauen, da kann ich die Datenbank auch einsehen und es besser beheben.
    Bin momentan leider unterwegs und nur am Arbeitslaptip mit Internetstick, morgen werde ich mal genauer schauen.


    //EDIT
    malE:
    Also bei mir werden die Spalten einwandfrei erstellt.

  • Beitrag von Ette ()

    Dieser Beitrag wurde vom Autor gelöscht ().