Beiträge von IPrototypeI

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums

    Sag mir mal bitte wozu ein Mapper die Aufgaben eines Supporters übernehmen soll.
    Mapper und Scripter kann man nicht vergleichen. Ein Scripter muss vollzugriff haben wobei der Mapper ebenhalt weniger rechte hat.


    RayJohnson:


    Das hat nichts mit Vertrauen zu tun^^, jeder hat seine eigene Aufgabe und ich Vertraue jeden einzigen.
    Ich weiß nur nicht wieso ein Mapper zugleich Supporter rechte haben soll. Schließlich hat er sich ja für den Posten Mapper "Beworben".


    Was hier angesprochen wird beziehts sich darauf, dass der Designer und Mapper auch mal auf den Server geht und da man im Team ist sollte man auch entsprechende Rechte haben, dazu gehören bestimmte
    Adminrechte, wie hier bereits genannt das Kicken oder Bannen von Usern. Meiner Meinung nach sind es Grundbefehle /Grundrechte, welche jedem festen Teammitglied zustehen.

    function Login($username, $password){
    global $mysqli;
    $stmt = $mysqli->prepare("SELECT `id` FROM `loadbase_members` WHERE `username`=? AND `password`= PASSWORD(?) LIMIT 1;");
    $stmt->bind_param("ss", $username, $password);

    $stmt->execute();
    $stmt->store_result();
    if($stmt->num_rows()){
    $stmt->bind_result($id);
    $stmt->fetch();
    print $id;
    }
    $stmt->free();
    }


    probier das ganze mal so, da fetch() nur NULL oder TRUE zurück gibt sie hier


    http://php.net/manual/de/mysqli-stmt.fetch.php


    //edit


    eine alternative


    Du kannst dazu einen neuen Checkpoint erstellen hinter dem Auto und anschließend einen beim Haus.


    Was den Checkpoint angeht hinter dem Auto dazu kannst du diese Funktion nutzen


    http://forum.sa-mp.de/gta-mult…Ctzliche-codeschnipsel-36


    nur musst das bissle abändern


    stock IsPlayerBehindVehicle(playerid,veh)
    {
    new Float:vcoord[3]; GetVehiclePos(veh,vcoord[0],vcoord[1],vcoord[2]);
    new Float:vangle; GetVehicleZAngle(veh,vangle);
    new Float:vinfo[3]; GetVehicleModelInfo(GetVehicleModel(veh),VEHICLE_MODEL_INFO_SIZE,vinfo[0],vinfo[1],vinfo[2]);
    new Float:lenge = floatdiv(vinfo[1],2.0);
    new Float:radius = floatdiv(vinfo[0],2.0);
    vcoord[0] = floatadd(vcoord[0],(-lenge * floatsin(-vangle,degrees)));
    vcoord[1] = floatadd(vcoord[1],(-lenge * floatcos(-vangle,degrees)));
    if(IsPlayerInRangeOfPoint(playerid,radius,vcoord[0],vcoord[1],vcoord[2])){return 1;}
    else{return 0;}
    }

    Hier mal ein kleiner Ansatz

    • Tabelle mit ID der Fraktion und Geldbetrag
    • 2 dimensionales Array
    • Ladefunktion
    • Speicherfunktion

    Beim auslesen übergibst du die Werte an das Array



    #define MAX_FRAKTION (Anzahl muss hier noch hin)


    enum pFrakkasse { frakID, frakMoney,
    };
    new FrakData[MAX_FRAKTION][pFrakkasse];

    Such dir was aus ^^


    SpielerInfo[playerid][PayDay]++;


    ++SpielerInfo[playerid][PayDay];


    SpielerInfo[playerid][PayDay] = SpielerInfo[playerid][PayDay] + 1;


    SpielerInfo[playerid][PayDay] += 1;



    Aber das hat nix mit MySQL zu tun du inkrementierst nur eine Variable. Wenn du den Wert in der Datenbank direkt auch updaten möchtest ws nicht umbedingt nötig ist machst du das mit einem UPDATE Query

    Also ich bin wirklich von dir überrascht, bei dem Design wurde etwas unsauber gearbeitet, aber sonst siehts gut aus. Im Vergleich zu deinen letzten Designs, welche ziemlich scheiße waren hast du einen großen Schritt nach vorne gemacht, daher gute Arbeit und weiter so.



    PS: mit dem grün machst du alles wieder kaputt, mach da nicht so einen krassen Farbunterschied, da reicht ein etwas helleren oder dunkleren Grauton.

    Dir ist schon bewusst das eine Kernfusion nur unter bestimmten Bedingungen herbeigeführt werden können, dazu benötigst du einen ziemlich hohen Druck und dazu eine unvorstellbare Hitze um ein sogenanntes Neutronenplasma zu erzeugen, ich glaube mit dem was du da hast ist das nicht möglich. Nur frag ich mich was du damit genau möchtest, weil viel Energie erzeugst du damit nicht ?

    geilster Satz aus dem "Das Ende" Thread.
    Aber verstehe jetzt die Statsback Aktion.


    Viel Glück


    Also , wenn sowas noch direkt in diesem "Das Ende" Thread
    steht wirft das kein gutes Licht auf den Server, aber nun gut legen wir mal diesen Punkt auf die Seite.


    Ich hab zuletzt den Server mal getestet unter einem anderen Namen, die Aussagen zum Adminteam kann ich nur bestätigen, sie scheinen mir ebenfalls sehr unerfahren quasi wie ein Haufe planloser Hühner. Als ein User in der Lobby angefangen hatte die anderen User zu boxen darunter auch die Admin begannen diese ebenfalls hirnlos auf die anderen User einzuprügeln , nun gut es ist ein DM Server , aber eher unpassend sowas direkt in der Lobby zu tun.


    Zum Skript kann ich nur sagen , dass es ein billiger Versuch ist das GDM Skript nachzubauen, obwohl die bereits vorhandenen Systemen im Umfang nicht mal annähernd an die der orignalen Systemen von GDM ran kommen, dass wirkt mir eher wie ein verzweifelter Versuch irgendwie an User zu kommen. Daher hätte sich der Skripter 3 mal überlegen sollen ob er überhaupt diesen Server mit einem unfertigen Skript was kaum etwas zu bieten hat aufzumachen.



    Zum Forum kann ich Max nur beipflichten , entweder war der Coder besoffen als er das Design gecodet hat oder es ist gerippt, auch abgesehen davon ist dieses orange - gelb nicht so passend.


    Ich bin zwar nicht gespannt darauf das sich hier was ändert, aber vllt tut sich danach diesen Kritikpunkten etwas.



    PS: Eine Statsback Aktion ist auch wirklich keine gute Idee, es entmutigt einfach die Spieler etwas zu erreichen.

    Das "German Unknown Reallife" gefällt mir sehr. Steht dieses gecodet zum Verkauf?


    Das Design ist nicht gecodet müsste ich noch machen und ja du kannst es erwerben. Du kannst mich ja mal einschreiben via PN:


    //edit


    Ein älteres Design:



    //EDIT



    NEUES DESIGN


    Sowas wie Vier gewinnt ist aber ein wenig "lahm" :p


    Also da ihr wie du in dem ersten Post geschrieben hast


    Zitat

    keinerlei Erfahrung im Bereich App Entwicklung haben


    Würde ich mir an deiner Stelle nicht zu hohe Ziele stecken, klar wenn man im Bereich Programmierung ziemlich begabt ist kann man auch mal etwas größeres in Angriff nehmen, aber wenn ich mir so dein Werdegang auf Breadfish ansehe sehe ich da auch keinerlei Ansatz in diese Richtung, dass du darin besonders begabt bist. Wenn du ein Spiel programmierst musst du auch wissen wie man das Ganze umsetzst und Lehrer können dir da meist nicht weiter helfen. Da ich mich bereits damit auseinander gesetzt habe kann ich dir sagen das die Dokumentationen über die Funktionen meist sehr dürftig sind ( im Vergleich zu php.net, SA:MP Wiki).

    Den Flyhack könnte man via SetPlayerVelocity umsetzen
    mann könnte dennoch die Tastenbelegung von w a s d auf die Pfeiltasten legen, dann wäre es auch möglich.

    Was meiner meinung noch fehlt wäre ein Teleporthack (über OnPlayerClickMap), direktes spawnen und das man sich direkt zu einem Spieler porten kann.
    Was noch lustig wäre , wäre eine Version des fly hacks, aber mal so eine Frage funktioniert Airbreak hier auch in Fahrzeugen ?

    Ich attache sie aneinander, um den GUI der EditObject Funktion zu nutzen, um die Objekte beliebig zu verschieben und dann, wenn man speichert die Position zu speichern. Das ist also zum Verschieben gedacht (http://wiki.sa-mp.com/wiki/EditObject)


    (Davor habe ich die Objekte zum Objekt hinzuberechnet, aber so ists einfacher mit der Rotation und bessere Performance, da nicht immer noch extra was berechnet wird, sondern nur über den GUI)


    Entweder reden wir aneinander vorbei oder du verstehst einfach nicht was ich meine.


    Zum einen würde ich den streamer dafür nutzen du kannst maximal 1000 Objekte global erstellen und zum anderen die Objekte müssen nicht aneinander attached werden um ein einzelnes zu bewegen oder
    geht es dir darum alle Objekte zu verschieben, wenn man die "Grundfläche" verschiebt falls ja kannst du von dir dieses filterskript anschauen und davon die berechnung übernehmen.


    http://forum.sa-mp.com/showthread.php?t=506610

    Nee musst du nicht, du musst keine Objekte aneinander attachen. Das Streamer Plugin bietet die Funktionen um gewissen Bereich zu erstellen und darüber kannst du ganz einfach abfragen ob die Koordinaten sich noch innerhalb der Zone befinden.


    Dahet finde ich es extrem unnötig die Objekte aneinander zu attachen .

    Danke schonmal 123marvin123 und IPrototypeI :)
    Aber wie soll ich das anlegen? Ich lade die Objekte dynamisch, das ist ein Haussystem. Das heißt ich habe Dateien, in denen Objekte angegeben sind, die ich dynamisch lade und so initialisiere, dann habe ich ja die Daten in einem Array. Platzieren, speichern und laden geht ja, nun will ich aber die Rotation noch angeben... Damit es benutzerfreundlich ist, habe ich den GUI von editObject genommen, nun muss ich aber halt die Rotationsänderung iwie angeben, wenn ich die Objekte so an einen anderen Ort platziere, muss ich das nicht. Das wundert mich nämlich und da es dynamisch ist: wie kann ich das dynamisch machen und wie berechne ich das ? :/



    Wenn das ein Hausbausystem ist , wieso attache du die Objekte an einem anderen, welcher sinn steckt dahinter ?
    Du kannst die Objekte doch ganz einfach an den jeweiligen abgelegten Koordinaten ablegen.


    Also zusätzliche Hilfe kann ich dir mein AttachObjectToVehicleEditor empfehlen besser gesagt diesen Codeschnipsel davon:


    public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz){
    state _ALS_:hooked;
    switch(response){
    case EDIT_RESPONSE_CANCEL:{
    AttachDynamicObjectToVehicle(objectid, PlayerData[playerid][vCarID],PlayerData[playerid][voObjX],PlayerData[playerid][voObjY],PlayerData[playerid][voObjZ],PlayerData[playerid][voObjRx],PlayerData[playerid][voObjRy],PlayerData[playerid][voObjRz]);
    PlayerData[playerid][vObjID] = false;
    return 1;
    }
    case EDIT_RESPONSE_FINAL:{
    static Float:Pos[6];
    GetVehiclePos(PlayerData[playerid][vCarID],Pos[0],Pos[1],Pos[2]);
    GetVehicleZAngle(PlayerData[playerid][vCarID],Pos[3]);
    AttachDynamicObjectToVehicle(objectid, PlayerData[playerid][vCarID], ((x - Pos[0])*floatcos(Pos[3],degrees)+(y - Pos[1])*floatsin(Pos[3],degrees)), ((-(x - Pos[0]))*floatsin(Pos[3],degrees)+(y - Pos[1])*floatcos(Pos[3],degrees)), z-Pos[2], rx, ry, rz-Pos[3]);
    PlayerData[playerid][vObjID] = false;
    return SelectObject(playerid);
    }
    }
    return H_OnPlayerEditDynamicObject(playerid, objectid, response, x, y, z, rx, ry, rz);
    }


    AttachDynamicObjectToVehicle(objectid, PlayerData[playerid][vCarID], ((x - Pos[0])*floatcos(Pos[3],degrees)+(y - Pos[1])*floatsin(Pos[3],degrees)), ((-(x - Pos[0]))*floatsin(Pos[3],degrees)+(y - Pos[1])*floatcos(Pos[3],degrees)), z-Pos[2], rx, ry, rz-Pos[3]);


    damit bekommst du die Offset- Koordinaten raus von der normalen Position des Objektes in relation zu dem Fahrzeug, das geht bei Objekten ebenso