Beiträge von LeonMrBonnie

    Hallöchen,
    ich bin nun wieder seit einiger Zeit (ca. 3 Wochen) an einem neuem Gamemode zugange, welches ich hier präsentieren möchte.
    Diesmal ist das Script komplett von Grund auf Selfmade.


    Was ist das für ein Gamemode?
    Der Gamemode ist ein klassischer Deathmatch Gamemode mit verschiedenen Arenen. Es gibt bis jetzt 6 spielbare Arenen, es sind aber noch weitere geplant.
    Es wird natürlich auch einige besondere Arenen geben. Momentan gibt es zwei besondere Arenen; die CBUG Arena. In dieser wird beim schießen automatisch der C-BUG simuliert. Und die Sniper Arena; in welcher nur Headshots töten.


    Nennenswerte Features
    Bei der Erstellung von diesem Gamemode war mir wichtig, dass fast alles über Dialoge geregelt wird und es InGame sehr viele Anpassungsmöglichkeiten gibt.
    Der Gamemode soll komplett ohne Control Panel nutzbar sein. Deswegen können Spieler, Clans und Servereinstellungen InGame angepasst werden.
    Nochmal ein paar einzelne Features:
    Clansystem - Das Clansystem ist bis jetzt noch relativ simpel. Man geht zu einem Actor und kann dort ab Level 20 für 50.000$ einen Clan mit einem individuellen Namen erstellen. In diesem Clan kann man Leute inviten und ininviten, über den Clanchat kommunizieren und bald auch Clanfights starten. Im Clan gibt es 5 Ränge. Rang 5 hat nur der Leader (Ersteller des Clans) und Rang 4 kriegen die Co Leader, alle weiteren Ränge haben keine Vorteile außer einen anderen Rangnamen. Die Rangnamen 1-5 können vom (Co)Leader selbst angepasst werden. Es kann auch in die Clanbank eingezahlt werden, mit diesem Geld kann man dann später Upgrades für den Clan kaufen.
    Arenasystem - Es gibt 6 verschiedene Arenen, mit verschiedenen Waffen und teilweise besonderen Eigenschaften. Es gibt die Deagle Arena (im bekannten Deagle Interior), die Deagle2 Arena (Auf dem RC Battlefield und mit Rüstung), die DM Arena (Im Bordell, mit Deagle, Shotgun und M4), die Sniper Arena (Nur Sniper, nur Headshots können töten und machen 1 Hit), die CBUG Arena (im bekannten Deagle Interior mit Deagle und automatischem CBUG) und die 1o1 Arena (für 1gegen1 Duelle mit Deagle)
    Logsystem - Die meisten der Befehle und Aktionen werden geloggt und können InGame von den Admins eingesehen werden.
    Leaderboard - Eine Bestenliste der Spieler, in welcher man die Sortierung selbst wählen kann.
    Achievementsystem - Es gibt bis jetzt 11 verschiedene Achievements die man erreichen kann. Für jedes Achievement erhält man eine individuellen Belohnung.
    Anticheat - Es ist bereits ein kleines Anticheat System für Health Hack, Money Hack, Aimbot und Airbreak vorhanden.


    Letztes Update:
    v.0.9: (21.9.2018)
    - Schwarmarkt hinzugefügt. Bis jetzt können dort aber nur Fightstyles gekauft werden, weiteres ist bereits geplant.
    - Einstellungen hinzugefügt. Hitsound und Arena Join/Leave Nachrichten können de/aktiviert werden. Es wird dazu auch gespeichert.
    - Passwörter werden nun mit Whirlpool gehasht. (Vorher MD5)
    - Das TV System wurde noch einmal komplett neu geschrieben.
    - Ein Ticketsystem wurde hinzugefügt. Plus Textdraw für Teammitglieder, wieviele Tickets noch offen sind.
    - Das 1o1 System wurde nochmal überarbeitet, und funktioniert jetzt deutlich besser.
    - Das Anticheat wurde mit einem Anti Cbug erweitert.


    Testserver
    Server IP: 37.114.56.53:7778
    Bitte per PN melden, um auf die Whitelist zu kommen.


    Screenshots:
    *Klick*


    Ich hoffe euch gefällt die Vorstellung. Ich werde in den nächsten Tagen einige Screenshots posten.


    Für Ideen und Verbesserungsvorschläge bin ich immer offen!

    Auch interessantes Servermotto: "Wir machen 2018 zur legende"
    Schonmal nen Rechtsschreibfehler im Banner und ich glaub nicht dass ihr mit einem 0815 Script überhaupt was reißt. Das Forum ist auch fast komplett leer und es sieht aus als wurde hier wirklich sehr wenig Zeit reininvestiert.


    EDIT:
    Ich war jetzt auch mal auf dem Server drauf und es ist schlimmer als erwartet; es ist einfach nur das pRP Edit mit schlechten Textdraws, schlechter Benutzerfreundlichkeit und ner Menge Langweile. Warum sollte ich 15 Minuten auf meinen Perso warten, wenn ich ohne diesen Perso NICHTS machen kann außer in der Stadt rumfahren?
    Also kurzgefasst; Der Server ist schlecht, lohnt sich nicht überhaupt drauf zu gehen.

    Wenn ich mit dem gleichen Namen wie er schon in der Datenbank steht connecte, wird er trotzdem eingetragen, warum?
    Eigentlich werden ja mit strexplode alle Namen die mit einem , getrennt sind einzelnt ausgeschrieben, also loop ich durch ob der Name dort schon irgendwo vorhanden ist, und wenn nicht soll der Name hinzugefügt werden.
    Der Name wird aber immer hinzugefügt..

    Kann mir jemand mit meinem Code oben helfen? Es hat sogar mal funktioniert aber hab eigentlich nichts daran geändert. :/

    Du benutzt die falsche Include Version.
    Lad dir hier: Klick
    Das win32 Paket runter, da ist auch eine Include dabei, die ziehst du dann in deinen Pawno Include Ordner, und compilest das Script einmal neu.

    if(dialogid == DIALOG_MDC){if(response == 1){switch(listitem){case 0:{ShowPlayerDialog(playerid,DIALOG_MDCCHECK,DIALOG_STYLE_INPUT,"Spieler abfragen","Gebe nun den exakten Spielernamen ein!!","Eingabe","Verlassen");}case 1:{ShowPlayerDialog(playerid,DIALOG_MDCFAHNDUNG,DIALOG_STYLE_INPUT,"Spieler Fahnden","Gebe nun den exakten Spielernamen ein!","Eingabe","Verlasen");// Hier Eventuell der RPName bzw Hitmen / FBIname ka}}}return 1;}if(dialogid == DIALOG_MDCFAHNDUNG){ShowPlayerDialog(playerid,DIALOG_MDCREASON,DIALOG_STYLE_INPUT,"Spieler fahnden","Gebe einen Grund zur Fahndung\ndes Spielers an:","Starten","Verlassen");}if(dialogid == DIALOG_MDCREASON){if(!response) return 1;for(new i = 0; i < MAX_PLAYERS; i++){if(IsPlayerConnected(i)){if(IsACop(i)){// if(sscanf(theMDCChecked[playerid],"u", pid))// GetPlayerName(theMDCChecked[playerid],giveplayers,sizeof(giveplayers));new pid = GetPVarInt(playerid,"FahndetName");// if(sscanf(pid,"u", giveplayeryo))new string62[128];format(string62, sizeof(string62), "HQ: Alle Einheiten: Reporter: %s",GetName(playerid));SendClientMessage(i, TEAM_BLUE_COLOR, string62);format(string62, sizeof(string62), "HQ: %s wird Gesucht, Verbrechen: %s",GetName(pid),inputtext);SendClientMessage(i, TEAM_BLUE_COLOR, string62);SendClientMessage(pid,-1,"du wirdst gesucht!"); // [b]Problem hierbei Message wird an PLAYERID und nicht an PID gesendet(der gesuchte)[/b]return 1;}}}return 1;}


    Problembeschreibung ist im Text markiert zu finden


    /edit 17:20 zeile 43

    Formatier das bitte mal ordentlich, sonst kann man dir schlecht helfen.

    Welches Include/Plugin benutzt du dafür denn? Welche Version?
    Sonst können wir dir schlecht helfen.


    EDIT:
    Wofür möchtest du es denn überhaupt entschlüsseln? ?(
    Um es für Login/Register abzufragen hasht du einfach die Eingabe vom Spieler auch mit MD5 und fragst sie dann halt aus der Datenbank ab, MD5 ist übrigens ziemlich unsicher. Nutze lieber SHA oder Whirlpool.

    OnPlayerConnect:

    mysql_format(handle,Query, sizeof(Query), "SELECT * FROM `multiaccounts` WHERE `IP` = '%s'", PlayerIP(playerid));
    mysql_pquery(handle,Query,"OnCheckMulti","d",playerid);


    OnCheckMulti:

    forward OnCheckMulti(playerid);
    public OnCheckMulti(playerid)
    {
    new rows,multistring[256],query[300];
    cache_get_row_count(rows);
    if(rows == 0)
    {
    mysql_format(handle,query, sizeof(query), "INSERT INTO `multiaccounts` (`IP`, `Accounts`) VALUES ('%s', '%e')", PlayerIP(playerid), GetName(playerid));
    mysql_tquery(handle,query);
    }
    else
    {
    new multis,multi[16][32],bool:found;
    cache_get_value_name(0,"Accounts",multistring);
    multis = strexplode(multi, multistring, ",");
    for(new i = 0; i < multis; i++)
    {
    if(strfind(multi[i],GetName(playerid),true) == -1) found = true;
    if(strfind(multi[i],GetName(playerid),true) != -1) found = false;
    }
    if(!found)
    {
    new name[32];
    format(name,sizeof(name),", %s",GetName(playerid));
    strcat(multistring, name);
    mysql_format(handle,query,sizeof(query),"UPDATE `multiaccounts` SET Accounts = '%s' WHERE IP = '%s'",multistring,PlayerIP(playerid));
    mysql_tquery(handle,query);
    }

    Ist noch länger, aber der Rest des Codes ist unwichtig.


    Wenn ich mit dem gleichen Namen wie er schon in der Datenbank steht connecte, wird er trotzdem eingetragen, warum?
    Eigentlich werden ja mit strexplode alle Namen die mit einem , getrennt sind einzelnt ausgeschrieben, also loop ich durch ob der Name dort schon irgendwo vorhanden ist, und wenn nicht soll der Name hinzugefügt werden.
    Der Name wird aber immer hinzugefügt..

    1. Von"cache_get_value_name(0, "name", name);" die 0 zu i ändern, sonst wird immer nur die erste Row ausgelesen.
    2. Wie hast du die Nummerierung von 1-5 denn mit den Textdraws gemacht? Du musst halt abfragen was i gerade ist, und dann eben den Namen an die Zeile i setzen.
    Also versuch mal das "TextDrawSetString(Top5_TextDraw[1], string);" in die Schleife zu machen, und das 1 zu i zu ändern. (Wenn du den Textdraw so gemacht hast das 1, Platz 1 ist und 2 Platz 2 etc.)


    Sonst musst du mir sagen wie du das gemacht hast.

    Du machst eine for Schleife die 5 mal durchloopt, also durch alle 5 Rows, während diesem Loop liest du den Namen des Spielers aus der Datenbank mit cache_get_value_name(i, "Name", name) und speicherst es.
    Dann fügst du nach der Schleife die Namen einfach in den Textdraw ein.