Beiträge von BlackFoX

    Die heutigen Programmierer sollte man eher Kopierer nennen. :thumbdown:

    /sign


    nein String ist kein wirklicher Datentyp sondern setzt sich aus bestimmten Datentypen zusammen, Allgemein wird String auch Array genannt.


    Zum Thema selber, das Tutorial ist wirklich nichts mehr als kopieren und einfügen.
    Das ist in etwa das gleiche wie der Pawn , das Godfather Script und die Fragen in diesem Forum, nach jedem Fehler wird man merken man kommt nicht weiter und erst einmal
    ein neues Thema erstellen in dem man allen berichtet wie man gerade am weinen ist weil man feststeckt so nach dem Motto "Papa ich hab kaputt gemacht ;( , mach bitte wieder ganz"
    Ich denke wer eine Sprache lernt sollte vor allem erst einmal lernen um so das Prinzip zu begreifen , denn eine Sprache entspricht keinen Muster sprich ein Muster und gut ist,
    nein egal ob ein Code das gleiche tut er kann immer komplex anders gestaltet werden , so tut er im Endeffekt vielleicht das gleiche jedoch mit einer anderen Methode.

    Native ist dazu Verweise auf eine Bibliothek zu erstellen sprich Funktionen die in der (.dll / .so etc ) Bibliothek sind zu verknüpfen,
    sprich es wird bei Funktionsverknüpfungen von Plugins verwendet Beispielsweise, werden die Funktionen in der Bibliothek nicht erkannt so
    sollte dies Fehler ergeben im Code der Verknüpfung sprich undefiniert.
    Der "Include Loader" im Editor Pawno erkennt den Include Ordner von Pawn ließt ihn aus und fügt alle Nativen hinzu auch wenn sie kommentiert wurden,
    und kommentieren musst du deine eigenen Verknüpfungen ja damit es keine Fehler gibt da du keine Verknüpfung auf eine Bibliothek erstellst sondern
    nur Vorgaben in die Liste definierst sprich eine Vorgabe wie die Parameter aussehen sollten, welchem Format sie entsprechen usw.

    reinste Ressourcenverschwendung sag ich nur...
    wenn man etwas macht, ohne es jetzt böse zu meinen, sollte man versuchen Logischer vorzugehen...


    new Text3D:supports[MAX_PLAYERS];



    if(PlayerInfo[playerid][pAdmin] >= 1339)
    {
    supports[playerid] = Create3DTextLabel("ServerOwner",COLOR_REDA,0,0,0,20.5,1);
    Attach3DTextLabelToPlayer(supports[playerid], playerid, 0.0, 0.0, 0.45);
    }
    else if(PlayerInfo[playerid][pAdmin] == 1)
    {
    supports[playerid] = Create3DTextLabel("Moderator",COLOR_REDA,0,0,0,20.5,1);
    Attach3DTextLabelToPlayer(supports[playerid], playerid, 0.0, 0.0, 0.45);
    }
    /*usw*/


    Unter OnPlayerDisconnect...


    if(PlayerInfo[playerid][pAdmin] > 0)Delete3DTextLabel(supports[playerid]);


    Warum für jeden Bereich eine neue Variable mit 500 Plätzen und das gleich 6x das ergibt 3000 Speicherplätze die ordentlich Ressourcen fressen da
    der Speicher im Endprodukt dem Script also dem Binären Teil freigehalten wird somit trotzdem Speicher frisst...
    Eine Variable reicht da doch vollkommen oder etwa nicht ?

    Ich bezog die Umstände nicht auf das erstellen des simplen Scripts eher auf die Steuerung und Handhabung und mit Tastenbelegung schaut es da ganz schlecht aus,
    also ist S0beit in solchen Sachen einfach unverzichtbar aber ich denk der Entwickler von S0beit "nutfuks" sich bald die Mühe machen wird mit deinem Helfer
    und eine neue Version auf die Beine stellen wird, Prinzipiell müsste da nicht viel umgeschrieben werden.
    Das Problem ist das der Prozess wohl geschützt wird sobald er läuft jedoch erst ab einer bestimmten Zeitspanne sprich während des Spielverlaufs also könnte
    man das ganze dort in den Prozess mit einbringen. Aber wir sprechen hier ja nicht über derartige Programme aber es betrifft ja in gewisser Weise auch die Wine Benutzer
    von daher sollte man dort eventuell auch bald einen sogenannten "Loader" für bauen aber nun gut warten wir bis zur Finalen Version ^^


    Man kann ja einfach eine AirBrk Funktion per Script schreiben, und auch viele andere Sachen kann man von s0beit als Script erstellen.
    kP ob da manche Sachen geben die man NICHT als Script machen kann ^^

    Natürlich ist dies alles Möglich aber würde einfach zu viele Umstände breiten finde ich zudem wird ja nur die d3d9.dll blockiert
    aber somit haben meines Wissens nach auch die Nutzer Probleme die den Wine Emulator nutzen.
    Zum anderen meinte Woet das die sperre spätestens in der Final Version entfernt wird, als nichts mehr mit S0beit blockieren ;)

    das erneute zurücksetzen der Fahrzeuge ist von der Funktion abhängig sprich sie besitzt schon eine Zeit in der die Autos Automatisch zurückgesetzt werden,
    entweder du benutzt CreateVehicle oder AddStaticVehicleEx wie von ]hp[ bereits vorgeschlagen.


    Und um die Unterschiede nochmal zu erläutern...


    • CreateVehicle , hiermit können Fahrzeuge auch während der Laufzeit erstellt werden was bei den anderen beiden nicht der Fall ist
    • AddStaticVehicle , erstellt Statische also feste Fahrzeuge, können nur beim Start erstellt werden nicht während der Laufzeit
    • AddStaticVehicleEx , genau das gleiche wie bei 'AddStaticVehicle' nur das hier nochmal die Zeit bis zum zurücksetzen gesetzt werden kann.

    so wie Dedi es dir beschrieben hat und gezeigt hat stimmt alles soweit.


    aber zum Punkt das


    #define MAX_STREAM 8000


    im Script vorhanden sein muss stimmt nicht ganz, verändert wird die Maximale Anzahl nur im beigelegten FS und hat somit keinerlei Funktion im eigenen Script,
    sie gibt im beigelegten FS nur die Maximalen Globalen Objekte für den Streamer an.
    Ist zwar kein großer Fehler bevor es missverstanden wird wollte ich das nochmal erwähnen.


    So das war es war ich noch hinzufügen wollte, ansonsten danke Dedi für die schnelle und deutliche Erklärung für die Benutzer.



    Zum Problem das die Objekte nicht angezeigt werden, der Streamer muss als FS geladen bevor alle anderen Filterscripts zum Einsatz kommen die
    den Streamer nutzen sprich seine Funktionen da, das Script Logischerweise erst die nötigen Funktionen Registrieren muss sonst erfolgt kein Zugriff.


    mfg. BlackFoX_UD_



    //EDIT:


    So nochmal kurz zur Information, ich hab den Streamer nochmal auf Herz und Nieren getestet,
    er läuft optimal bzw. ohne Probleme, so wie er laufen sollte.
    Das ein zigste worauf man bitte achten sollte und was ich bisher auch schon mehrmals erwähnt habe,
    bitte ladet den Streamer sprich das Filterscript vor allen wirklich allen Filterscript die den Streamer benutzen,
    so sollte er normalerweise seinen Zweck voll und ganz erfüllen, beim Gamemode sollte es keine Probleme geben das wird
    so oder so nach allen Filterscripts geladen ;)


    Zum Thema Konvertieren, ganz einfach , der Streamer nutzt die gleichen Parameter wie CreateObject auch fest hat sprich,
    Modell X Y Z Koordinaten + Rotationsdaten alles was danach kommt ist mehr oder weniger optional sprich,
    diese Parameter gelten als extra Option müssen jedoch nicht belegt werden da sich Standardmäßig einen bereits vorhandenen Wert verwenden,
    der so wie er ist stimmen sollte für die Standardobjekte .
    Um die extra Optionen etwas genauer anzusprechen und das ganze auch etwas genauer zu erwähnen, diese wären Beispielsweise die Angabe für
    die Virtuelle Welt in der sich das Objekt befinden soll ,ein Raum ( wie einige es kennen Interior = Innenraum ) in dem das Objekt existieren soll,
    sprich das Objekt ist dann speziell nur für den Raum verfügbar. ( Innenraum id -1 = Alle Räume , bei den Virtuellen Welten ebenso wenn der Parameter auf -1 gesetzt wird ).


    Ansonsten empfehle ich einigen sich damit etwas auseinander zu setzen zu schauen wo die Fehler genau liegen und so weiter.


    Es ist einfach nicht mehr als das und ihr braucht auch keine extra Einstellungen treffen danach ...


    • Include in den Pawn Standard Include Pfad packen
    • Filterscript in den Filterscript Pfad packen ( eventuell das FS Nachbearbeiten bezüglich des Globalen Objekt Limits ) , kompilieren
    • Euer gewünschtes Script öffnen die Include einbeziehen Funktionen die ich im Hauptthema aufgelistet habe so benutzen wie sie da stehen und gegen die Original Sa-mp Funktionen ersetzen soweit es von Notwendigkeit ist.
    • so nun die Server Konfiguration einstellen und das FS wie bereits erwähnt vor allen anderen Filterscripts die seine Funktionen nutzen laden da ja Logischerweise erst alles registriert werden muss an Funktionen damit der Funktionszugriff überhaupt stattfinden kann.
    • so das war es , ihr solltet es soweit geschafft haben und der Streamer sollte seine Arbeit erledigen.


    So zum angeblichen Problem mit der 0.3b RC X.. Version , ich habe diese Version nun zum ersten mal getestet mit dem Streamer und es hat auf Anhieb geklappt.
    Also müssten diejenigen Personen die sagen das er nicht funktioniert wohl oder übel etwas falsch gemacht haben.

    Zu Schade das S0beit nicht mehr richtig geht, dafür wird sich sicher bald eine Lösung finden lassen,
    da einige Leute es brauchen werden bezüglich der Erstellung von Scripts sprich es erleichtert vieles,
    mal schauen ob man das ganze auch anders hin bekommt.
    Ansonsten sind es ja ganz nette Features auch wenn es nur langsam voran geht.

    allso ist das neue, die distance einstellung überflüssig, für die die ein objectstreamer benutzten

    Ich bin mir zwar nicht sicher aber ich denke das hat was mit dem Limit zu tun, bisher wurde aber auch nichts genaueres erwähnt und
    das Limit besagt das Global 400 Objekte verfügbar sind die entweder für alle sichtbar sind oder halt 400 Spieler Objekte je Spieler versteht sich.


    Zu der Sache mit den Tasten, diese sind nicht fest belegt auf eine bestimmte Taste sondern werden abgerufen durch die jeweiligen Aktionen,
    z.b. springen bei mir belegt auf Shift sag ich mal so frage ich KEY_JUMP ab sprich immer die Aktion springen die ich mit der jeweiligen im Spiel
    belegten Taste abrufe, bestimmte Tasten wirst du nicht abrufen können, ich bin mir nicht sicher aber KEY_JUMP sollte auch die Hupe des Autos sein sprich
    diese wäre bei mir ebenfalls Shift gewesen.

    new Float:pos[3],plname[MAX_PLAYER_NAME],
    frm[255];
    GetPlayerName(playerid,plname,sizeof plname);
    format(frm,sizeof frm,"%s sagt : %s",plname,text);
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i) || IsPlayerNPC(i))continue;
    GetPlayerPos(i,pos[0],pos[1],pos[2]);
    if(IsPlayerInRangeOfPoint(playerid,4.0,pos[0],pos[1],pos[2]))SendClientMessage(i,farbe1,frm);
    else if(IsPlayerInRangeOfPoint(playerid,7.0,pos[0],pos[1],pos[2]))SendClientMessage(i,farbe2,frm);
    else if(IsPlayerInRangeOfPoint(playerid,9.0,pos[0],pos[1],pos[2]))SendClientMessage(i,farbe3,frm);
    /* usw */
    }



    Farben selber ergänzen bitte , ansonsten OnPlayerText noch 0 wiedergeben lassen damit der normale Ausgabetext nicht in die Chatkonsole gesendet wird.

    Nein das Maximale Limit liegt im gesamten bei 400 Objekten also braucht man doch einen Streamer damit die Objekte
    auch so erstellt werden das sie nur für den Moment existieren wo sich der Spieler in ihrer Nähe befindet sprich sind mit einem
    Streamer 400 Objekte verfügbar in einem Umkreis in dem sich der Spieler befindet.

    ich muss echt sagen toller Versuch, manchmal Frage ich mich wie Naiv die Leute sind und auf solche Spielchen hereinfallen können,
    wenn man keine Ahnung davon hat sollte man am besten die Finger ganz davon lassen und sein Köpfchen nutzen ;)

    new plname[MAX_PLAYER_NAME];
    new string[MAX_PLAYER_NAME];
    GetPlayerName(playerid, plname, sizeof(plname));
    format(string, sizeof(string), "/account/%s.ini", plname);



    Der Spielername muss vorher in die Variable übertragen werden sonst bleibt die Variable "plname" leer und enthält nicht den gewünschten Namen,
    habe es oben mal abgeändert.

    Muss ich die .map-datei in createobject converten wenn ja wie geht es weiter ?

    wäre der erste schritt ..


    CreateObject(Modell,x,y,z,Rotation X,Rotation Y, Rotation Z);


    nun CreateObject in b_CreateObject umwandeln mit der Ersetzen Funktion, sollte ganz einfach sein.


    So danach folgen noch Optionale also nicht wirklich notwendige Parameter.


    Code
    interiorid = 0,virtualwid = 0,stream_dis = STREAMER_DISTANCE,forplayerid = -1,Draw Distanz


    die du ergänzen kannst wenn du möchtest. Aber kein muss nur wenn du sie verwendest


    Hier nochmal eine kurze Anleitung zur Installation


    • die Include Datei in den Pawn(o) Include Ordner packen
    • Include ins Gamemode einbeziehen / Funktionen verwenden > Kompilieren
    • das beigelegt FS in den FS Ordner
    • Server.cfg konfigurieren und das FS vor allem anderen FS's laden die den Streamer auch benutzen
    • Speichern und loslegen

    LoL`? Also 1 . Macht es keiner umsonst (falls jemand macht verlangt er mid. 500€) und 2. Ich denke net das es jemand macht weil das Monate lang dauert auser du weißt perfekt c++

    C++ und Pawn das ist mal ein schlechter Vergleich.


    für C++ müsste man schon studieren sprich es intensiv ran nehmen min. 2 Jahre und man hat es noch immer nicht voll drauf, weil die Sprache an sich extrem Komplex ist.


    zu Pawn, dafür braucht man ehrlich gesagt nicht einmal 2 Wochen wenn man sich Dinge gut merken kann aber dann sollte man auch dabei beginnen das Prinzip einer Sprache zu begreifen,
    was Rückgaben z.b. bewirken , was Parameter sind und Befehle bedeuten sprich Fachbegriffe kennenlernen und ihr Definition begreifen.


    Und bevor ich hier um den heißen Brei herum rede.. das wars ;)

    in Osteuropa gibt es doch keine Mafien,pff 8|

    Naja da wäre ich mir nicht so sicher :D


    Aber bevor wir hier über die Mafia diskutieren...
    GTA V spielt 100% in London ich denke der Hauptentwickler will daraus einen besonderen Teil machen da die ganze Geschichte dort begonnen und
    eventuell in neuem Stil zurückkehrt mit vielen neuen Features und Extras ich denke auch das ist der Sinn der Sache ^^