Beiträge von Douq

    Ist bei dir eine Zeitangabe, wie lange es dauert? Weil persönliches Gespräch klingt für mich nach keinem Einstellungstest, sondern tatsächlich "nur" um ein Vorstellungsgespräch. Gibt es keinerlei Angaben, ob du dich auf etwas vorbereiten solltest?


    Bei meinem Unternehmen zu einem dualen Studiumplatz musste ich mir 10 Minuten vorstellen (in welcher ich die typischen Fragen abgehandelt habe (wer, was habe ich gemacht, warum das Unternehmen, warum ich) und folgend war dann ein Fragen-Antworten Spiel, wobei dann auch etwas Smalltalk dazu kam.


    Was Unternehmen in letzter Zeit gerne machen sind Stressfragen. Ich hatte beispielsweise die Frage, wie viele Smarties in ein Smart rangehen. Das Ziel dieser Frage ist nicht die korrekte Antwort zu wissen, sondern für den jeweiligen Personalleiter zu sehen, wie man an unbekannte Problemstellung rangeht und diese versucht zu meistern.


    Sonst kann man punkten mit Wissen über das Unternehmen, die Ausbildung und je nach Angabe auch über die jeweilige schulische Ausbildung (was wird gelernt, welche Thematiken etc.)

    Naja die Anfang ist so einfach wie genial: Du musst die Tabellen hinzufügen. Beim Download des Skript wird sicherlich irgendwo auch ein mysql dumb sein, den du einfach nur importieren musst. Damit sollte das Problem behoben sein.

    Zu deinem printf ist zu sagen, dass du als Index statt id, i verwendest.


    Füge einfach folgendes zur Schleife hinzu:
    printf("%d, %.1f,%.1f,%.1f",id, shop[id][sx], shop[id][sy], shop[id][sz]);


    Sollten dort valide Koordinaten (so nenne ich einfach mal alle Koordinaten, die nicht gleich 0.0 sind) erscheinen, porte dich zu diesen und überprüfe, ob diese richtig sind.


    Zusätzlich setze unter Zeile 20 folgenden Code:
    printf("PICKUP-ID: %d", shop[id][s_pickup]);


    Falls dort -1 ausgegeben wird, hast du bereits das Pickup Limit erreicht. Zusätzlich frage ich mich, warum du in Zeile 19 scheinbar eine PickupID ausließt, die du direkt in Zeile 20 wieder überschreibst? Da würde ich mir dein Speicher und die Rechenleistung sparen und auf die Speicherung / Ladung dieser Information verzichten, vor allem weil, sofern es wirklich die unique pickup id ist, sich bei jedem Neustart verändern kann.

    Schau mal im mysql_log, eventuell fehlen dir Tabellen oder Spalten, wodurch es zu einem oder mehreren Fehlern kommt.

    Sofern ich das richtig gelesen habe liegt die Datenbank beim Hoster samp4you.com, die ausschließlich Linux-Systeme verwenden -> XAMPP fällt dann da meines Wissens nach weg.


    Kannst du dann normal dich per phpMyAdmin verbinden? Der Link ist auch im Control-Panel von samp4you.com zu finden. Falls das nicht gesehen sollte, kann dir lediglich der Support weiterhelfen.


    Andernfalls: Ist der Port eventuell nicht 3306 (auch dem Control-Panel entnehmbar)? Versuch mal die externe-IP anzugeben. Falls das alles nicht klappt würde ich mich an samp4you.com wenden, hatte auch schonmal Probleme mit falsch-konfigurierten Servern bei denen.

    Ich würde sogar gar sagen, dass man auf die Z Koordinate verzichten kann - da eh nicht (zumind. im besagtem Beispiel). Weiß auch gar nicht ob es wirklich wichtig ist, ob man zwei Nachkommastellen macht oder gar auf Floats verzichtet und Integer nimmt, weil so genaue Daten bei so einem großen Punkt irrelevant sind. Wenn du die Daten in der Datenbank sammelt (würde dir ein Schema wie ID (unique, auto_increment), playerid (unique id vom jeweiligen Spieler -> falls SQL als Speicherung dient), x (int), y (int) und date / timestamp (unix timestamp verwenden, der reicht bei deinem vorhaben völlig). Die Umsetzung via. PHP und weiteren Frameworks müsstet du dann im jeweiligen Coding-Bereich erfragen.

    Das gezeigte Video stellt keine Ingame-Aufnahme dar sondern ist von RPG im UCP integriert. Sicher, dass du das InGame anzeigen willst und nicht seitens PHP verarbeiten lassen möchtest? inGame müsstest du lediglich die Spieler-Position in einem Interval loggen und den Rest per Web abwickeln.

    Gibt es verschiedene Ansätze, einer wäre:


    Du sendest einen Query und loopst dann durch die Datensätze, die dir zurück gegeben werden. Dafür müsstest du bei der Funktion LoadFraktionData() die Schleife und die WHERE - Bedingung entfernen. Dann müsstest du lediglich bei LoadFraktionMySQL() den ersten Parameter von 0 in i umbenennen und das wäre es dann eigentlich auch schon. MAX_FRAKTION könntest du noch in cache_num_rows() umändern.

    Wenn es schon bei der Namensgebung scheitert spricht das nicht sonderlich für die Betreiber, sorry. Ein Name sollte schon von dem jeweiligen Projektgründer erschlossen werden und nicht in einem Forum erfragt werden.


    Vorschlag:


    German German Reallife

    Liegt wohl daran, dass der Lösungsvorschlag von Jeffry nur für das sscanf-Plugin zählt und nicht für die einzelne Funktion. Zumindestens vermute ich, dass du die nonplugin Version benutzt, da du bei s keine Arraygröße angegeben hast und das atypisch wäre für die Pluginversion. Falls nicht, google einfach mal sscanf2 samp und ersetz es mit deiner Funktion.

    1. Wie lange dauert es, bis man das Scripten soweit beherrscht, dass man einen Server einigermaßen sicher aufstellen kann?

    Da kann man pauschal, wie mein Vorschreiber schon meinte, keine Fixwerte ausmachen. Es kommen Faktoren wie Veranlagung, Talent, ggf. Vorverfahrungen durch andere Sprachen etc. zum Vorschein.

    2. Sollte man von 0 anfangen oder lieber zB ein Godfather editieren (soll ja Vor- und Nachteile haben)?

    Das kommt ganz drauf an. Ich habe damals in meiner Anfangszeit immer lieber gerne Skripte editiert, weil ich mir dadurch den Stil und den Aufbau aneignen konnte - jedem aber das seine.

    3. Was waren eure besten Erfahrungen, die euch beim Scripten geholfen haben?

    Erfahrung vielleicht nicht, aber die Motivation steigt wenn es direkt Spieler testen können und es ihnen Spaß macht.

    4. Eignen sich Videos mehr als Texttutorials?

    Auch hier - jedem das seine. Der eine lernt gerne mit Musik, der andere braucht völlige Stille. Ich glaube je nach System kann es unterschiedlich sein und es kann nicht verkehrt sein, einfach mal beides auszuprobieren.

    5. Wo fängt man am besten an?

    Ich habe damals versucht mir ersteinmal die Logik zu verinnerlichen, sprich die Basics und ähnliches. Auch ist das wiki.sa-mp.com immer eine gute Anlaufstelle bei Funktionsbeschreibungen.

    6. Lohnt sich der Zeitaufwand eurer Meinung nach überhaupt noch?

    Naja, jenachdem wie du lohnen auslegst. Die Chance einen Server mit ü100 Spielern zu erreichen ist ziemlich schwer und wirtschaftlich betrachtet lohnt sich ein 450EUR Job mehr als ein SA:MP Server - die Erfahrung und das Erlernen der Sprache KANN dir aber in deiner Entwicklung weiterhelfen.

    7. Über welche Stolpersteine seid ihr gefallen?

    Fehlermeldungen, die man gar nicht nachvollziehen konnte oder man wollte gern über seinen Horizont etwas entwickeln, es fehlten einem aber die Erfahrung. Ich hatte damals 2009 / 2010 tatsächlich (unter anderem Namen) als Mentor BenjaminInk, der mir zu seinerzeit noch über ICQ für jegliche dumme Fragen zur Seite stand ^^ Vielleicht hast du ja in Skype o.ä. auch jmd., der dir schnell support geben kann, denn für jede Kleinigkeit immer was im Forum zu schreiben fand ich damals als zu nervig und die Vorteile zu einem Mentor waren groß.


    LG

    Naja, du verwendest im übrigen zwei Methoden um das Passwort auf Richtigkeit zu überprüfen, welche aber beide nur halbrichtig sind:


    Entweder du lädst das Passwort VOR dem Vergleich mit der Eingabe, oder du suchst einen Account mit eben diesem SALT und PASSWORT. Letzteres ergibt für mich aber wenig Sinn, da du den Salt eh auslesen musst, da kannst du auch direkt das Passwort mitauslesen und dann den Vergleich ausführen -> du musst vor deinem DIALOG_LOGIN die Variable Password und Salt mit den korrekten Werten füllen

    Das geht ebenfalls.
    Ich würde dennoch ocmd empfehlen, da es flexibler einsetzbar ist (z.B. mehrere Befehle mit gleicher Funktion [z.B. /hilfe, /help] in einen Befehl packen).

    Würde ich so nicht behaupten: Das wäre ohne Include - Änderung nicht möglich seitens ocmd, da die Aliase limitiert sind - würde daher meine Empfehlung nicht auf ocmd beschränken, sondern die Alternativen (y_cmd, zcmd) auch nennen

    Oder man benutzt einfach die durch die Include (zcmd) bereitgestellten Callbacks OnPlayerCommandReceived() und OnPlayerCommandPerformed() , die den gleichen Funktionsumfang wie OnPlayerCommandText haben

    Das wirkt für mich alles mehr nach Schein als sein. "» Innovation - Qualität - Spielspaß - Gameplay - Community - Einzigartig - Neu - Erfrischend «" sind einfach eine Aneinanderreihung von Wörtern die nichts-sagend sind; einfach nur Floskeln. Ästhetisch, Visionen, Kompetenz - die könntet ihr auch noch hinzufügen. In euer Serverwerbung sehe ich nicht, wodurch ihr Innovation, Spielspaß, Einzigartig und vor allem neu zeigt? Nach eurem Devlog zu beurteilen wirklich kaum etwas.

    Leider finde ich meinen Beitrag nicht mehr. Jedoch habe ich schon des öfteren dazu Stellung genommen.Die verkaufte Version ist eine deutlich unterschiedliche als unsere.


    Wir würden uns wirklich freuen wenn du kommst :)

    Für mich sieht das allesamt nach Blendung aus, schaue mir aber mal den Server nächste Woche mal an um meinen ersten Eindruck zu bestätigen oder zu revidieren.

    Falls das Thema noch aktuell ist:


    Function() ist ein Makro, welches häufig in deutschen Godfathers wiederkehrt - ist also das richtige OnPlayerConnect(). M_OnPlayerConnect() ist soweit ich weiß der Funktionsaufruf für die M_Bot, das war beim LoH (glaube ich?) die Anti-Cheat Include.


    Der Codeabschnitt von Beitrag 3 ist wohl nicht ganz vollständig - denn es wird nirgends die Variable string deklariert oder einem Wert gesetzt - könntest du ein paar Zeilen vorher zeigen? Erhälst du denn jedesmal die Nachrichten:


    Zitat

    ***Herzlich Wilkommen auf unserem Server.***
    ***Um hier spielen zu können musst du dir vorerst einen Account anlegen.***

    ? Weil falls ja, liegt wohl ein Fehler bei der Formatierung von der Variable 'string' vor.

    Alternativ kannst du auch einfach die Sonderzeichen von dem Query per mysql_real_escape_string() maskieren, dann sollte es auch zu keinem Fehler kommen. (scheinst ja R5-R7 zu verwenden)