Beiträge von IPrototypeI

    Hallo Liebe Community.. ich habe mal etwas früher mal hier einen thread gesehen womit man mehr Objecte sehen lassen kann
    es wurde einfach z.B bei einem object


    CreateDynamicObject(3095, 2067.5, -1852.80005, 12, 0, 0, 0);


    hinten was hinzugefügt bei jeden dann konnte man ganz viele maps einfügen und alle wurden angezeigt^^
    wie heißst der code bzw was ist da drinne da war iwas ,12,0,); aufjedenfall waren an jedes map object
    hinten zahlen dran gemacht weis die jemand damit man mehr maps haben kann?


    Du beziehst dich auf die Drawdistanz und die Streamdistanz


    CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 200.0, Float:drawdistance = 0.0);


    Sollen die Objekte von einer höheren entfernung angezeigt werden so musst du die Drawdistanz und Streamdistanz anpassen, falls es gewünscht ist das Objekt nur bei einer geringen distanz zu sehen
    so musst du die Streamdistanz runtersetzen.

    man kann es nicht mehr Downloaden :/


    Doch nur war fileupload nur in diesem moment down , die links funktionieren alle.


    @Eddy


    Deine gewünschte Idee, dass beim konvertieren der Map sich die texturierten Objekte ganz unten befinden ist in der neueren Version vorhanden.
    Sonst ist nix neues in der neuen Version drinne.
    Daher braucht man den code der Include nur mit dem neuen ersetzen und das skript neu kompilieren.

    Ich komme damit garnicht kla. Wie stelle ich alles genau ein? also Datenbank etc. ein Tutorial wäre mir gerade echt Lieb ^^.


    Hier bitte das gewünschte Tutorial.



    Tutorial


    In diesem Tutorial wird gezeigt wie ihr meinen Mapeditor richtig zum laufen bekommt.
    Hier nun spezifisch für einen Windows Server, in diesem Fall euer PC.


    Schritt 1:


    Was wird dazu benötigt:
    - Das komplet Packet meines Editors, diesen findet ihr hier oder auch auf der Startthread.
    Klick mich
    - Einen MySQL Server, falls ihr keinen Zugang zu einer Datenbank habt könnt ihr euch auch einen MySQL Server aufsetzen, dazu benötigt ihr entweder WAMP oder XAMPP.


    Möglich gestellte Fragen:


    Ich habekeinen Zugang zu einer Datenbank und möchte WAMP oder XAMPP nicht.


    Das ist kein Problem ihr könnt ja euch bei einem Serversponsor melden, welcher euch
    einen Server hosten würde, da ist meist eine Datenbank noch inbegriff diese könnt ihr auch
    nutzen. Dazu einfach noch im Skript, die Daten anpassen.

    Code
    sqlHandler = mysql_connect("localhost", "root", "amazing", "");


    Synatx:

    Code
    mysql_connect(const host[], const user[], const database[], const password[], port = 3306, bool:autoreconnect = true, pool_size = 2);



    Ich möchte WAMP oder XAMPP installieren.


    Ich persönlich nutze WAMP, falls euch XAMPP eher zusagt könnt ihr es hier Downloaden:
    https://www.apachefriends.org/de/index.html
    Eine Installationsanleitung wäre ebenso hier zu finden:
    https://www.apachefriends.org/faq_windows.html


    WAMP könnt ihr hier Downloaden:
    http://www.wampserver.com/en/#download-wrapper


    Bevor ihr das ganze downloaded beachtet das
    Visual C++ Redistributable for Visual Studio 2012 installiert ist sollte dies nicht der Fall
    sein so installiert das ganze zuerst. Danach könnt ihr WAMP downloaden und installieren.
    Sollte die installation fertig sein und das WAMP Icon unten rechts grün leuchten.



    So könnt ihr das Icon mit der linken Maustaste anklicken und phpmyadmin öffnen.
    Sollte das Symbol nicht grün sein sondern Gelb so wird es daran liegen das eine Anwendung
    von euch einen Dienst von WAMP blockiert. Ein Beispiel könnte Skype sein, daher könnt ihr
    Skype ausschalten oder den Port von Skype ändern.
    Dazu in Skype Aktionen => Optionen... => Erweitert => Verbindung und das Häckchen bei
    "Ports 80 und 443 als Alternative für eigehende Verbindungen verwenden" entfernen.


    Nun müsst ihr nur noch in phpmyadmin eine Datenbank mit dem nahmen "amazing" anlegen , der Name kann auch anderst gewählt sein, jedoch müsst ihr das wieder in der Include anpassen.



    Schritt 2:


    Nun haben wir eine gewisse Basis worrauf wird aufbauen können. Um nun die Tabelle zu erstellen müsst ihr lediglich einmal die samp-server.exe in dem "Mapeditorfullpack" Ordner
    starten. Somit werden automatisch die Tabelle erstellt.


    Schritt 3:


    Bei Schritt 3 erkläre ich euch wie ihr eure Maps einbindet, dazu benutzt ihr das enthaltene
    Tool, welches sich "converter.exe" nennt. Sollte es Fehler geben bei der Verwendung so müsst
    ihr die "mysql-connector-net-6.8.3.exe" starten da euch eine gewisse
    Mysql.data.dll fehlt.


    Um das Tool überhaupt richtig verwenden zu können, müsst ihr erstmal eine Verbindung zu eurem
    MySQL Server aufbauen. Dies tut ihr in dem ihr auf MySQL klickt und anschließend auf Verbinden und die Verbindungsdaten zu eurem MySQL Server eingibt.



    Um die Map zu konvertieren , welche der SAMP Mapeditor ausspuckt müsst ihr einfach nur auf Datei gehen und auf Laden und das entsprechende FIle auswählen danach könnt ihr es kompilieren. WICHTIG (Jedoch nicht die Bezeichnung vergessen).







    Zusatzinformationen:

    Code
    #define Update_Time 60  // 60 => 60 Minuten


    Die Updatezeit ist die Zeit, in der das Skript alles selbsständig updatet und den cache leert. Das bedeutet die gesetzten Pointer sind danach auch weg.
    Diese Zeit kann je nach wunsch verändert werden.


    Code
    #define Set_Height 0.01


    Das ist der Offset wert um den ein Objekt nach oben verschoben wird bei dem Befehl /entflackern


    Dein problem besteht durch das falsch gesetzte return.


    Dadurch wird eine Schleife unmittelbar abgebrochen.


    Daher plaziere dein return außerhalb der For- Schleife.



    for(new i=0;i<sizeof(Atms);i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 3, 2316.5691,-7.3099,26.7422))
    {
    ....
    }
    return SendClientMessage(playerid,Rot,"Du bist nicht in der nähe eines Bankautomaten oder in der Bank!");


    //edit Einrückung neu gemacht

    Dafür willst du wirklich 25 € ausgeben , wenn du willst kannst du dich per PN bei mir melden und wir machen ein Termin am Wochenende aus wo ich mir die Zeitnehme dir das zu erklären.
    Das ganze ist natürlich kostenlos.

    Wir werden ja auch Maps haben, welche für die großen Schiffe gedacht sind. Habt ihr da eine Lösung?


    Entweder du machst es so wie bereits genannt von MyU einen gewissen radius darum oder du kannst die zone ebenfalls als polynom erstellen mit dem streamer plugin.
    Solltest du genug ahnung haben kannst du ebenfalls die SAfull.hmap bearbeitet und dort neue koordinaten hinzufügen.
    Dazu müsstest du nur wissen wie du ein 3 Dimensionaler abdruck erstellst, anschauen kannst du dir das Ergebniss von den Koordinaten dann in MATLAB, ob es grob dem orginal entspricht.


    Zum Thema Safull.hmap müsstest du die koordinaten noch umkonvertieren da diese alle gepackt sind.

    Es wäre erstmal nicht schlecht zu erfahren was du genau machen möchtest.


    Eine andere Alternative wäre ein Dynamisches Array oder doch umzuschwenken auf das mysql r35+ plugin von maddinat0r da du hier die ausgelesenen Daten zwischen speichern im cache
    und somit ganz ohne query darauf zugreifen kannst.


    Ganz nebensächlich wie schon @Mellnik hier geschrieben hat wäre

    SQL
    SELECT COUNT(`id`) FROM `table`;

    die beste variante um die anzahl der einträge zu ermitteln.

    #define weis 0xFFFFFFFF


    Ein define für den Farbcode zu verwenden ist jedoch überflüssig daher kannst du bei deinem code gleich eine Zahl eintragen -1(weiß) 0(schwarz) oder was auch immer.

    SendClientMessage(%0,-1," ");



    SendClientMessage(%0,0," ");

    Wie Rocky schon sagte sind das zu viele Objekte für ein kleinen Raum. Du könntest die wichtigsten (äußeren) Details des Gebäudes normal laden lassen und die man nicht direkt sieht mit dem Streamer



    Das ist keine gute Idee und verfehlt die richtige nutzung des Streamer plugins


    Erklärung siehe ein altes Zitat von mir:


    Zitat


    Du erstellst nicht zufällig 1000 Objekte via CreateObject ?
    Falls ja liegt darin dein Problem du kannst maximal 1000 Objekte erstellen für einen Spieler via CreatePlayerObject daher nutzen auch Streamer CreatePlayerObject und erstellen das objekt nur wenn der Spieler in der nähe ist, sollte er nicht in der nähe sein so wird es wieder zerstört . Nutzt du CreateObject wird dieses Object für jeden Spieler erstellt auch wenn
    er nicht in der nähe des Objektes ist der Nachteil es geht somit 1 Slot für die Objekte verloren von den normal 1000 freien Slots für den Spieler. Daher solltest du 1000 Objekte darüber erstellen können
    nicht mehr Objekte gestreamt werden da kein freier Slot zur Verfügung steht das System hinter dem Streamer funktioniert somit auch nicht. Da wie schon oben erwähnt CreatePlayerObject
    sich auf einen Spieler bezieht.


    Daher kann man erstmal die Anzahl an angezeigten Objekten von 500 auf 1000 erhöhen beim streamer und ebenfalls noch mit der streaming Distanz arbeiten.


    Das Streamer Plugin ist der beste Objektstreamer den es in SA:MP gibt , nur bist du wahrscheinlich nicht fähig genug diesen entsprechend zu nutzen.
    Daher beschäftige dich mal mit der Funktionsweise eines Streamers und schaue dir ebenfalls die Einstellmöglichkeiten des Streamer Plugins an.

    Wird die Farbe des Designs bzw. einzelner Elemente beim Kauf im Fall der Fälle denn auch auf Wunsch angepasst?
    Wenn ja, kostenlos oder nicht


    Ja natürlich falls jemand die Farbe nicht gefallen sollte kann diese natürlich geändert werden und zwar auch kostenlos.
    Der Verkauf des Designs bleibt trotz farblicher Abänderung als Unikat, somit wird jedes Design nur 1 mal verkauft.



    //push 28.4.2014
    //push 30.4.2014

    Danke für das Update.
    jetzt funktioniert es, so wie ich es will :)


    Bitte , ich danke dir für den Bugreport und ich hab noch zwei gute Befehle hinzugefügt , da man zum einen nun die maps ganz löschen kann und Objekte ohne kollisonen nun auch ein zugriff hat , da folgende sich gut dazu eignen
    Texte auf ihnen zu platzieren , da diese zum einen unsichtbar sind und keine kollisionen haben.

    #-----------------------------------------------------------------
    # Blank planes for text signs
    19475, Plane001, signsurf, 300, 2097284
    19476, Plane002, signsurf, 300, 2097284
    19477, Plane003, signsurf, 300, 2097284
    19478, Plane004, signsurf, 300, 2097284
    19479, Plane005, signsurf, 300, 2097284
    19480, Plane006, signsurf, 300, 2097284
    19481, Plane007, signsurf, 300, 2097284
    19482, Plane008, signsurf, 300, 2097284
    19483, Plane009, signsurf, 300, 2097284

    Du hast mir ja eigentlich schon gut geholfen, habe jedoch noch ne kleine Frage. Also wenn ich die Verbindung zum MySQL Server erstelle und die Map speicher steht da "551 Datensätze hochgeladen". So, wie sehe ich die Map nun auf den Server? Bitte um Hilfe :)



    Also falls du es nun auf deinem Testserver hast, dann solltest du auch die richtigen Daten angeben von der MySQL Datenbank des Textservers nicht die localen falls du wamp noch geöffnet hast.

    @m4a_X und den Rest danke für das Feedback.


    Der Editor gefällt mir.
    Nur habe ich Probleme mit diesem "Texture" "Model-ID", "Index", usw.
    Das war jetzt nur ein Test mit den Mülltonnen, den ich aus Zufall "hinbekommen" habe:



    Gibts dazu irgendwelche Tipps o.ä womit man alles einweig vereinfachen kann?


    Future e-Life hat ja eine interessante Seite erstellt extra für Texturen
    http://textures.future-elife.com/?page=textures


    Dort kannst du ganz einfach den Befehl herraus kopieren.



    /create [id] [kommentar]
    Mit diesem Befehl kannst du Objekte erstellen das zugefügte Kommentar dient zur erkennung in der Datenbank.


    /setrot [rotx] [roty] [rotz]
    Manuelle Einstellung der Rotationen es geht jedoch auch über den Editor von samp einfach auf das Symbol neben der Memory Disk klicken.


    /edit
    Befehl um in den Editormodus zu kommen | vorsicht bei eingebundenen Filterskripts


    /entflackern
    Sollten sich Objekte überlappen so wird das angeklickte Objekt um einen kleinen Wert nach oben geschoben , das ganze kann man jedoch in der Include anpassen.
    Streamer_SetFloatData(STREAMER_TYPE_OBJECT, objectid, E_STREAMER_Z, z+0.001);


    /removetextur [index]
    Um die Texture eines Objektes zu entfernen wird erst wirksam nach dem anklicken der Memory Disk


    /removetexturall
    Entfernt alle Texturen von dem Objekt


    /setpointer [pointer] [index]
    Dadurch lassen sich pointer setzen somit kan man mehre Objekte mit dem Befehl /edittexturep texturieren, zum beispiel alle Objekte mit dem pointer 1 oder 2


    /edittexturep [pointer] [modelid] [txdname] [texturname] [Farbe]
    Wie oben schon angemerkt hast du die Möglickeit alle Objekte mit dem entsprechenden pointer zu setzen. Pointer bitte nicht hier mit dem index verwechseln.


    /edittext [index] [text] [fontface] [fontsize] [bold] [FontFarbe] [Backgroundcolor]
    Hier kannst du ein Text auf den jeweiligen index eines Objektes legen


    /edittexture [index] [modelid] [txdname] [texturname] [Farbe]
    Damit kann man den index eines Objektes, welches davor angeklickt wurde texturieren.


    /duplicate [kommentar]");
    Erst das Objekt zum duplizieren anklicken, danach hast du genau ein Duplikat dieses Objektes sprich Position ist gleich und textur ist auch die selbe oder Text.

    /deleteobj
    Zum löschen von Objekten


    /convertmap [mapname]
    Dadurch wird ein .txt File erstellt in dem maps ordner, welcher sich unter skriptfiles befindet. Der mapname ist hier das Kommentar welches sich jeweils hinter einem Datenbankeintrag eines Objektes befindet.


    /saveobj


    Normal läuft ein Timer, welcher momentan alle 10 Minuten die datenbank update, du kannst diesen Timer auch entfernen oder erhöhen und diesen befehl nutzen wenn du das ganze speichern möchtest.
    Nachteil: Dadurch werden die ganzen Dynamischen Arrays geleert und die pointer gehen verloren.



    Das war nochmal eine kleine Beschreibung der Funktionen. Ich hoffe das ganze bringt etwas Klarheit. Ebenfalls kann man mit mehreren Leuten auf einem Server mappen und garantiert für Spaß.



    //edit


    Farid


    Ja das geht in der Tat dafür ist ja das Tool da du kannst bestehende Maps konvertieren und hochladen somit kannst du diese Ingame texturieren und bearbeiten und zum schluss je nach wunsch auch wieder ausgeben lassen.

    Prototypel, ich wollte jetzt gerade ne Map von mir texturieren mit deinem Editor, jedoch bekomme ich komischerweise 18 Errors. Kannst du mir vielleicht helfen?


    Ich hab dir eine Pn geschrieben, falls es probleme gibt kann man sich jederzeit bei mir per PN melden , Lösungen werden falls dies nicht ein einzelfall sein sollte auch hier gepostet und in den anderen Foren, wo diese
    Include angeboten wird.