Beiträge von Douq

    Steht GK für Gebäudekomplex? Jenachdem, wie du derzeit deine Gebäude im Skript handhabst. Sollten beispielsweise sämtliche Gebäude in einem Array sein, kannst du einfach deren jeweiligen Index im Array nehmen oder falls diese in einer SQL - Datenbank gespeichert werden, nimmst du einfach den jeweiligen primary key.


    Du könntest auch theoretisch <INTERIORID>.<VIRTUALID> vom jeweiligen Shop nehmen, vorausgesetzt natürlich, dass hier wirklich eine Eindeutigkeit vorliegt.

    Also derzeit fragst du ob, ob der Spieler (sinngemäß) Job 0 - 21 hat. Ich verstehe generell deine Abfrage nicht, denn (ich behaupte es mal) dass jeder Spieler einen Job zwischen 0 - 21 hat - ergo kann jeder diese Fahrzeuge starten -> die Abfrage ist totaler nonsense.


    Du musst doch ersteinmal schauen, OB das Fahrzeug überhaupt ein Jobfahrzeug ist und FALLS JA, überprüfen ob das Jobfahrzeug dem jeweiligen SpielerJOB gleich ist.

    Würde einfach mal behaupten, dass die Länge von deinem query die 127 - Zeichenlänge überschreitet - erhöhe einfach die Größe von query z.B. auf 256 (in deinem Code Zeile 3). Sollte das nicht klappen, lass dir den formatierten Query einfach mal per printf ausgeben und führe ihn manuell (z.B. bei phpMyAdmin) aus und schau, welche Antwort dir der Server gibt.

    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