Beiträge von DrMurphy

    Dein Vorhaben hört sich recht simpel an, daher würde ich dir empfehlen eine hybrid App zu schreiben, schau dir dazu mal PhoneGap von Adobe, das sollte dein multiplatform Problem lösen.

    Werde ich mir mal anschauen und dann eventuell auch das IPhone als Plattform hinzufügen


    Ebenfalls ist es nicht schwer auf einem Windows PC, den du vermutlich besitzt, eine Windows 10 App zu schreiben, die auch für Windows Phones kompatibel ist, auch wenn du dadurch nicht die größte Schicht ansprichst, haben manche Leute so ein Gerät :D Ich zum Beispiel.

    Klar wäre dies möglich. An Windows Apps habe ich derzeit aber noch kein Interesse. Ich denke es reicht auch erstmal aus, die App auf den zwei größten Plattformen (Android, iOS) anzubieten. Eventuell kann man später noch über eine Expansion zu Windows 10 nachdenken.

    Richtig gute Idee!

    Danke :)


    Aber an alle die die hier überlegen: Der Preis ist verdammt günstig

    Ja sehe ich auch so. Aber Betreiber eines SAMP Servers machen dies auch in den meisten Fällen nicht, um mit dem Server dick Asche zu machen, sondern einfach Spaß zu haben.
    Da muss man den Leuten nicht das Geld aus der Tasche ziehen.



    So oder so immer einen Mittelsmann ranziehen

    Ja kann man gerne machen, falls der Kunde dies wünscht :)

    Guten Tag zusammen,
    ich möchte mich heute anbieten, eine App für einen Server zu programmieren. Diese kann alle gewünschten Funktionen des Kunden beinhalten.



    Mögliche Funktionen (Beispiele):



    Eine nützliche Funktion sollte dabei zum Beispiel die Verwaltung des eigenen Accounts durch Spieler sein. Dies wäre ähnlich, wie bei einem UCP, ist jedoch per App für den Spieler mobil und schneller erreichbar.
    Ebenfalls könnte man Funktionen einbauen, welche für Admins oder andere Servermitarbeiter nützlich wären. So beispielsweise die Möglichkeit Push-Benachrichtigungen an Nutzer der App zu schicken. So könnte man sie beispielsweise über Events etc. informieren. Die Nachricht bekommen die Nutzer dann direkt auf ihr Smartphone.
    Verlinkungen zur Webseite oder zum Forum des Servers stellen natürlich auch kein Problem dar.



    Mobile Plattformen der App:



    Aus technischen Gründen ist es mir leider nur möglich Android Apps zu erstellen.
    Für die Erstellung einer IPhone App, bräuchte ich einen iMac oder ein MacBook. Dieses besitze ich zur Zeit noch nicht.
    Dennoch sollten auch über Android viele User erreichbar sein.
    Zudem lässt es den Server aus der großen Masse herrausstechen, da man nun damit werben kann, sogar eine eigene App zu besitzen, die den Usern einige Vorteile bringen könnte.



    Geld verdienen mit der App:



    Falls man anstrebt, mit der App Geld zu verdienen, so lässt sich auch dies durch beispielsweise In-App-Käufe realisieren.
    So könnten Nutzer der App sich zum Beispiel über einen einfachen Knopfdruck eine Premium Mitgliedschaft auf dem Server kaufen.



    Voraussetzungen für die Erstellung der App:



    Um die Verwaltung von User Daten vornehmen zu können, muss der Kunde eine MySQL Datenbank zur Verfügung stellen, in welcher der SAMP Server die Daten der Spieler sichert.
    Zudem muss der Kunde einen Webspace mit zugehöriger Domain besitzen und mir dort einen Ordner zur Verfügung stellen. (Hier werden php Scripts abgelegt, welche zum Auslesen/Ändern der MySQL Datenbank benötigt werden)
    Eine weitere wichtige Voraussetung ist jedoch auch die Zeit. Eine App zu programmieren dauert zwar nicht so lange, wie ein gutes Selfmade Roleplay Script, ist allerdings trotzdem recht anspruchsvoll und zeitaufwändig.
    Somit müssen hierfür, je nach Anspruch des Kunden, schon ein paar Wochen oder Monate eingeplant werden. Das sich lohnende Resultat (die App) sollte jedoch Ansporn genug sein, diese Zeit aufzubringen.



    Tests der App:


    Natürlich soll sich kein Kunde blind etwa kaufen. Aus diesem Grund besitze ich einen eigenen Webspace, eine eigene Domain und eine eigene MySQL Datenbank.
    Diese Mittel werde ich während der Erstellung der App verwenden. Über Skype können dann Videoanrufe getätigt werden, in denen ich die App dann live präsentiere.
    Sobald alle Tests abgeschlossen sind und der Kunde zufrieden ist, ersetze ich meine Testmittel mit denen des Kunden (Webspace, Domain, Datenbank des Kunden).



    Kosten der Erstellung:



    Die Kosten für die Erstellung der App hängen selbstverständlich vom geforderten Umfang ab. Professionelle App Entwicklungsfirmen starten hier mit 5000€ für eine ganz simple Anwendung.
    Da ich jedoch alleine arbeite und keine eigene Firma damit betreiben muss, kann ich diesen Preis auf 100€ bis 200€ senken. Der Preis kann jedoch auch darunter oder darüber liegen.
    Hierfür am besten einfach mal ein persönliches Angebot per Nachricht hier im Forum oder Mail an mail@jan-kronenberg.de anfordern. Dabei solltet ihr kurz beschreiben, welche Funktionen ihr von der App erwartet und welche Preisvorstellung ihr habt.



    Zahlungsarten:

    • Überweisung



    Mit freundlichen Grüßen
    DrMurphy (Jan)


    PS: Fragen beantworte ich gerne hier in den Kommentaren, sodass sie jeder sehen kann, der eventuell die gleichen Fragen hat :)

    Grundsätzlich funktioniert das so. Jedoch gibt es ein Problem mit dem Timer, wenn du diesen Timer für mehrere Tore nutzt, da der Timer nicht weiß, welches Tor geschlossen werden soll.
    Ansonsten kannst du einfach weitere Abfragen (also Tore) mit "if(IsPlayerInRangeOfPoint...." einfügen.


    @ShadowSpark_LP
    Deine Möglichkeit geht natürlich auch. Hierbei muss das Tor jedoch auch manuell per Befehl geschlossen werden und du brauchst für jedes Tor einen neuen Befehl.
    Die Möglichkeit mit "/tor" ist deutlich benutzerfreundlicher.


    Gruß
    DrMurphy

    Du scheinst die Variable "cInfo[i][besitzer]" mal als String und mal als Integer verwenden zu wollen. Wenn du den Namen des Besitzers speichern möchtest, muss die Variable als String genutzt werden.
    Dann funktioniert die Abfrage, ob zwei Strings gleich oder ungleich sind, jedoch nicht mit "!=" sondern mit der Funktion "strcmp".
    Bei deinen formats und prints musst du dann als Platzhalter auch überall "%s" angeben.



    Wenn du die Position bzw. Angle eines Spielers oder Fahrzeugs setzen möchtest, muss die Variable vom Typ Float sein. Deine Variablen "x", "y", "z" und "r" sind jedoch vom Typ Integer.
    So erstellst du die Variablen richtig:


    Code
    new Float:x, Float:y, Float:z, Float:r;





    Gruß
    DrMurphy

    Also ich bin der Meinung, dass der Scripter den notwendigen Grundstein für ein Projekt darstellt. Von ihm hängt alles ab. Ohne ihn ist ein guter Server nicht möglich, da er für das komplette Script sorgen muss. Somit sehe ich den Scripter als das notwendigste und wichtigste Mitglied eines Teams. Daher sollte der Adminrang auf jeden Fall zugesichert bekommen, oder sogar mit als Projektleiter eingesetzt werden.


    Gruß
    DrMurphy

    Du kannst die Variable nicht ohne Index nutzen. In der ersten eckigen Klammer müsste sowas wie "frakid" oder so stehen. Kommt auf dein Script an.
    Am besten postest du mal den ganzen Teil, wo deine Zeile drin ist.


    Gruß
    DrMurphy

    Bei deinem Befehl veränderst du globale Variablen eines bestimmten Spielers. Da das System anscheinend so lange funktioniert, wie der Server noch läuft, wird er Fehler vermutlich bei der Speicherung der globalen Variablen des Spielers liegen.
    Deshalb müsstest du mal den Teil deines Scripts posten, wo die Variablen gespeichert werden (z.B. die Variable "Spieler[pID][pAutoLic]").
    Da der Fehler jedoch auch beim Laden der Spielerdaten liegen könnte, solltest du auch diesen Teil deines Scripts posten.


    Gruß
    DrMurphy

    Dann musst du wieder in einer globalen Variable für alle Spieler die Farbe speichern. Diese Farbe vergibst du ja bei "OnPlayerSpawn" zum Beispiel mit deiner Variable "FraktSpawns[fID][Color]".
    Der Rest funktioniert wie bei den vorherigen Beispielen auch.
    Bezüglich der weißen Chatfarbe:
    Die farbliche Gestaltung des Chats ist unabhängig von der Farbe des Spielers. Diesen musst du also seperat modifizieren durch Color-Codes und die "format" Methode.

    Du fügst es dort ein, wo deine Spielerdaten geladen werden. Bei dir müsste das dann bei OnDialogResponse bei der Dialog ID "DIALOG_LOGIN" sein.
    Ich gehe davon aus, dass du irgendwo eine Zeile hast mit "SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"))". Nach dieser Zeile fügst du folgendes ein:

    Code
    level[playerid] = GetPlayerScore(playerid);

    Leider klappt das noch nicht so ganz

    Was klappt jetzt noch nicht so ganz? Das mit dem Nickname oder die anderen Sachen (Farbe,Level,...) oder was meinst du?

    ich möchte das es auch noch die Farbe, das Level, den Leaderrank und den Adminrank ändert bzw. für alle anderen nicht mehr angezeigt wird aber an sich habe ich die Ränge noch.

    Das funktoniert genauso wie beim Nicknamen:
    - Globale Variable für alle Spieler erstellen (bsp: new level[MAX_PLAYERS])
    - Globale Variable bei OnPlayerConnect definieren (bzw. dort, wo die Spielerdaten geladen werden)
    - Bei "/nick" einen anderen Wert setzen (bsp: SetPlayerScore(playerid,score hier eintragen))
    - Bei "else if" bei "/nick" den wahren Wert wieder setzen (bsp: SetPlayerSore(playerid,level[playerid]))

    Ich habe ein solches Script nicht auf Lager. Jedoch könnte ich es für dich anfertigen und dabei regelmäßig Rücksprache mit dir halten, sodass alle Wünsche erfüllt werden können.
    Der Nachteil ist dabei, dass es sicherlich einige Zeit in Anspruch nehmen würde.
    Eine andere Idee wäre, dass ich lediglich einzelne Teile deines gewünschten Scripts erstelle. Diese könnten als dynamisches System in Form eines Filterscripts, oder direkt in deinem Gamemode eingebaut werden.
    Diese Möglichkeit wäre nicht ganz so zeitaufwändig, jedoch hast du dann auch nur einige deiner gewünschten Funktionen.


    Gruß
    DrMurphy

    Ich habe ein solches Script nicht auf Lager. Jedoch könnte ich es für dich anfertigen und dabei regelmäßig Rücksprache mit dir halten, sodass alle Wünsche erfüllt werden können.
    Der Nachteil ist dabei, dass es sicherlich eine Zeit in Anspruch nehmen würde.
    Eine andere Idee wäre, dass ich lediglich einzelne Teile deines gewünschten Scripts erstelle. Diese könnten als dynamisches System in Form eines Filterscripts, oder direkt in deinem Gamemode eingebaut werden.
    Diese Möglichkeit wäre nicht ganz so zeitaufwändig, jedoch hast du dann auch nur einige deiner gewünschten Funktionen.


    Gruß
    DrMurphy

    Erstelle mal eine globale Variable für alle Spieler ("new playername[MAX_PLAYERS][MAX_PLAYER_NAME]"). Unter "OnPlayerConnect" würde ich nun diese Variable mit dem richtigen Namen des Spielers belegen ("GetPlayerName(playerid,playername[playerid],sizeof(playername)").
    Bei deinem "/nick" Befehl kannst du nun die Variable "name" entfernen, sowie die Zeile "GetPlayerName".
    Zudem musst du deine "format" Zeile folgendermaßen abändern:

    Code
    format(string,sizeof(string),"[SERVER]: %s hat einen neuen Nickname",playername[playerid]);

    Bei "else if" ersetzt du nun noch die Variable "name" bei "SetPlayerName" durch "playername[playerid]".
    So sollte es funktionieren.


    Zu der zufälligen Vergabe eines Nicknames folgender Vorschlag:
    Du könntest ein Array aus mehreren Strings erstellen. Diese Strings definierst du als verschiedene Nicknames.
    Falls du ein dynamisches System wünschst, könntest du mit Dini oder MySQL arbeiten. Dabei werden die Nicknames am Anfang des Scripts geladen, können ingame verwaltet werden und werden anschließend wieder gespeichert.
    Egal welche Methode du nimmst, musst du schließlich noch eine Zufallszahl ermitteln, welche dann den Nickname auswählt, den der Spieler bekommen soll.


    Gruß
    DrMurphy

    Du musst in der "cfghaus.cfg" Datei den Wert von "Nutze_Spawnsystem" auf 1 setzen und die Koordinaten des Noob-Spawns angeben.
    Erst dann funktioniert der Befehl "/hchangespawn".


    Vielen Dank :)

    Der Spieler muss in der Nähe der Kamera stehen. Demnach musst du auch seine Position immer setzen. (SetPlayerPos)


    Hier noch ein kleines Tutorial was ich mal gemacht habe:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.