Beiträge von .#~Momo

    Juten tach :P ,


    Ich suche einen erfahrenen Programmierer der sich im Bereich Visual Basic.Net oder CSharp (C#) auskennt, ich benötige etwas Hilfe, da ich im Moment einen Scripting Editor am Programmieren bin der das Programmieren in Pawn um einiges erleichtert und dazu hilft das man Schnell, Effektiv und Fehlerfrei Programmiert.


    Folgende Funktionen werde ich einbauen:


    • Eigene IntelliSense, zeigt alle Funktionen an, sobald man eine Eingabe macht, diese Funktionen werden nach der Eingabe ausgewertet.
    • AutoComplete Funktion welche Automatisch (); und { } hinzufügt.
    • Parameter Helper: Zeigt die Parameter eines Befehls an und den Aktuellen Parameter wo ihr gerade seid.
    • Quick Server Restart / Server Managment - Server Neustarten, Beenden, Starten, etc ...
    • Syntax Highlighting: Kann Manuell eingestellt werden, so wie man die Farben haben möchte.
    • Quick Color Grabber: Die eigene Farbe im ARGB Format kann rucky zucky erstellt werden.
    • Auto-Safe Funktion: Speichert alle XX Minuten das Script
    • Auto-Backup Funktion: erstellt nach XX Minuten ein neues Backup vom Script. (Gamemode[001].pwn, Gamemode[002], ...)

    Mehr fällt mir gerade nicht ein, solltet ihr evtl. noch ein paar Ideen haben, lasst es mich Wissen :) aber ich muss euch leider enttäuschen, bis zum Release wird es etwas dauern da ich ab Montag (02.01.12) meine Grundausbildung bei der Bundeswehr anfange, ich werde dann wahrscheinlich nur am Wochenende an meinem Projekt weiter arbeiten und genau deswegen suche ich einen Co-Programmierer.


    Meldet euch einfach, ich werde dann entscheiden wer mir dabei Helfen darf.


    Gruß

    Guck dir den Code noch einmal genau an.


    Du hast eine Schleife die 500 mal durchgeht und rufst die Funktion SendClientMessageToAll 500x auf, dass heißt jeder Spieler bekommt diese Nachricht 500 mal.


    Es gibt jetzt 2x Möglichkeiten, entweder du Sendest in der Schleife jeden Spieler die Nachricht mittels SendClientMessage(...) oder du Formatierst den String, entfernst die Schleife und sendest den String mittels SendClientMessageToAll(...)


    Was'n los hier, solche Fehler müsstet ihr doch selber Fixen können... :huh:

    1) Deine IsPlayerOnline abfrage ist Sinnlos da der Spieler ja Online sein muss wenn er diesen Befehl ausführt.
    2) Wie wäre es wenn du am Ende die Gov Nachricht an allen Spielern sendest? du Formatierst nämlich nur den String und Sendest ihn nicht...
    :|


    if(strcmp(cmd, "/government", true) == 0 || strcmp(cmd, "/gov", true) == 0)
    {
    if(IsPlayerConnected(playerid)) // <--- Sinnlos da der Spieler ja Online sein muss wenn er /gov... eingibt.
    {
    if(gTeam[playerid] != 2 && !IsACop(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein Polizist !");
    return 1;
    }
    if(PlayerInfo[playerid][pRank] < 5)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du brauchst Rang 5 !");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    if ((!adds) && (PlayerInfo[playerid][pAdmin] < 1))
    {
    format(string, sizeof(string), " Versuche es später erneut %d sekunden nach der letzten Werbung!", (addtimer/1000));
    SendClientMessage(playerid, COLOR_GRAD2, string);
    return 1;


    }
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: (/gov)ernment [text]");
    return 1;
    }
    SendClientMessageToAll(COLOR_WHITE, "|___________ Regierungsnachrichten ___________|");
    if(PlayerInfo[playerid][pLeader] == 7)
    {
    format(string, sizeof(string), "Präsident %s: %s", sendername, result);
    }
    else if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pLeader] == 2)
    {
    format(string, sizeof(string), "Polizei Chief %s: %s", sendername, result);
    }
    else if(PlayerInfo[playerid][pLeader] == 21)
    {
    format(string, sizeof(string), "FBI Director %s: %s", sendername, result);
    }
    else if(PlayerInfo[playerid][pLeader] == 3)
    {
    format(string, sizeof(string), "General %s: %s", sendername, result);
    }


    SendClientMessageToAll(COLOR_BLUE, string); // <------ Sollte der Fehler sein.
    }
    return 1;
    }

    Die Funktion existiert nicht, füge irgendwo ganz unten folgendes ein:


    foward M_OnPlayerCommandText(playerid, cmdtext[]);
    public M_OnPlayerCommandText(playerid, cmdtext[])
    {
    return 1;
    }


    Sag mal, hast du überhaupt irgendeine Ahnung von dem was du tust? Ich will dich jetzt nicht Angreifen aber so etwas lernt normalerweise jeder Programmierer in den ersten paar Tagen, wenn nicht sogar am ersten Tag.

    Ich würde dir jetzt auf anhieb die Daten anbieten die ich in meiner Signatur habe, kostet rund 1000€ und kannst damit wirklich alles auf Ultra Hoch 1920x1050 Zocken und hast ne FPS konstant über 50.


    Battlefield 3, GTA IV, Skyrim, Metro 2033 läuft alles auf den höchsten einstellungen bei mir ohne Probleme.


    Gruß


    Die Vor- und Nachteile meinte ich nicht für das Programmieren sondern InGame, stell dir vor du hast ne menge Freunde Ingame und änderst plötzlich deinen Namen bzw. deine Freunde ändern auch ihren Namen sobald sie Level 3 sind, somit verlierst du ja den Überblick, ich hatte eine Idee einen Befehl einzubinden der den Registrierungsnamen anzeigt, zb: "/oldname [ID/Name]" und ich wollte eine Funktion in der Freundesliste bauen die Anzeigt mit welchen Namen sich der User registriert hat.


    Na dann mal abwarten was mir da so für Ideen einfallen, ich habe ja eh wenig Zeit da ich beim Bund bin und die freie Zeit die ich da habe hocke ich vor dem Laptop und Programmiere Hauptsächlich mein Roleplay Gamemode weiter. :thumbup:

    Stimmt, das wäre wohl keine Schlechte Idee das die Benutzer bis Level 3 mit jeden Namen Spielen können und ab Level 3 werden sie dann aufgefordert einen Roleplay-Namen zu benutzen. Das ganze hat Vor- und Nachteile.


    Das mit dem Chat habe ich auch elegant gelöst, wenn dein Nickname "Dux.Aquila oder Dux_Aquila" ist und du im Chat eine Nachricht schreibst wird diese so angezeigt:


    Dux Aquila sagt: Guten Morgen!


    Das ganze ist im Einstellungs-Menu gepackt somit kann jeder User die Chatansicht so haben wie er es möchte, man kann sogar die ID vor dem Namen dann anzeigen lassen.


    Einstellungsmenu aufbau:

    • Trennzeichen in der Chatansicht durch ein Leerzeichen ersetzen. [Ja / Nein]
    • ID vor dem Namen Anzeigen. [Ja / Nein]
    • ID Format: [ (%ID%) ] - (Es wird nur (ID) angezeigt.)


    (61) Dux Aquila sagt: Guten Morgen! - oder - (61) Dux_Aquila sagt: Guten Morgen!


    Somit kannst du einstellen, wie du selber den Chat empfangen willst.


    Gruß

    Guten Morgen,


    Ich Arbeite schon eine gewisse Zeit an einem Roleplay-Server und würde gerne mal einen Ratschlag von euch einholen, würdet ihr lieber mit Roleplay-Namen (Max_Mustermann, Klaudia.Rudy, Kai_Hoeppener, ...) oder mit normalen Usernames (Roadstar, Star, Sunlight, Motorrad, das sind halt Namen die nicht ihren eigentlichen Zweck erfüllen.) spielen?


    Stellt euch vor ihr stößt zufällig auf einem Roleplay-Server mit einem Nickname der nicht der Roleplay Voraussetzung entspricht, ihr werdet bei dem Verbinden gekickt, Grund dafür ist euer Nickname, ihr werdet gezwungen einen Roleplay-Namen zu verwenden, würdet ihr euren Namen ändern um wieder auf dem Server zu kommen?


    Ihr kennt den Server nicht seit nur aus zufall drauf gekommen, würdet ihr dann alles was oben steht machen?
    Ihr kennt den Server durch Freunden, Werbung, etc ..., würdet ihr dass ganze dann auch noch wiederholen?


    Gruß

    /Push (Entschuldigt mich aber das problem besteht weiterhin.)



    Also ich zähle kurz mal alles zusammen:


    1) MySQL (Über XAMMP) läuft auf dem selber Computer wie der GTA Server.
    2) Es ist nur eine mysql_query(..) ("UPDATE Accounts SET Admin = '5' WHERE Username = 'Cox*);")
    3) Der Server braucht ca. 40-60 M/S für diese abfrage, bei 500 Spielern nimmt dieser Abfrage 15-20 Sekunden in kauf, damals hatte ich das prob. nicht da ging alles in weniger als 1sek.
    4) Mit dem SQL-Befehl: "INSERT INTO ..." ist das gleiche, nur bei "SELECT ..." braucht er 1ms.



    Ich brauche wirklich dringend hilfe...

    mach einer abfrage unter OnPlayerUpdate, damit findest du raus ob der Spieler Ingame ist oder nicht.


    OnPlayerUpdate wird für jeden Client ausgeführt wenn dieser im Spiel ist, ist dieser nicht im Spiel updated er auch nicht und du kannst erkennen ob dieser auf dem Desk ist oder nicht.

    Ach sorry, ich war nicht ganz dabei, ja jetzt habe ich es verstanden... mein Fehler tut mir leid.


    new TestStr[64];
    new FinalResult[2][64];

    strins(TestStr, "Hallo wie geht~n~es dir", 0, 64);
    new strPos = strfind(TestStr, "~n~");
    strmid(FinalResult[0], TestStr, 0, strPos);
    strmid(FinalResult[1], TestStr, strPos+3, strlen(TestStr));


    Damit kannst du sicherlich etwas anfangen, eine Funktion kannste ja damit sicherlich selber erstellen, dürfte nicht schwer sein.


    FinalResult[0] beinhaltet: Hallo wie geht
    und
    FinalResult[1] beinhaltet: es dir.



    PS: Ein bisschen mehr Freundlichkeit wäre auch nicht schlecht, ich versuche zu helfen und werde hier unfreundlich angemacht....

    Sers leute, ich habe hier ein kleines problem, habe wieder angefangen zu scripten nach langer Zeit und habe hier ein sehr sehr großes problem.


    Meine SQL Abfrage um eine Spalte zu updaten braucht 33ms, das ist VIEL ZU VIEL des guten.


    Ich meine mich erinnern zu können das ich mit einer Loop von 500 ungefähr 25 Spalten in weniger als EINER sekunde erneuert habe, mit dem jetztigen dauert das ganze knapp 20 Sekunden wenn ich eine schleife mit 500 einbaue, da kann doch irgendwas nicht stimmen? was mache ich falsch?



    PS: Ich benutze das MySQL Plugin vom StrickenKid @ sa-mp.de


    #define Query( format(sql, sizeof(sql),
    new sql[512];
    new s = GetTickCount();
    Query("UPDATE Accounts SET Admin='5' WHERE Username='Cox'");
    printf("Time used: %i", GetTickCount() - s);



    Edit: Fehler gefunden, ich muss den Datenbank namen mit ' ' deklarieren für alle die das problem auch haben, so sollte es aussehen:


    Code
    mysql_query("UPDATE 'Accounts' SET ....");


    Edit: Nein es ist doch nicht gefixxt, also ich brauche noch hilfe hiermit...