Beiträge von IPrototypeI

    Zum einen benutz nicht das sternchen das bedeutet das alle daten der ganzen reihe genommen werden du brauchst ja nur ein wert
    daher


    mysql_query("SELECT `spaltename` FROM `Staat` WHERE `steuer`");
    der rest passt nur fehlt di rnoch mysql_free_result(); sonst kann sowas zu memoryleaks führen und zur beinträchtigung des plugins.

    Ich möchte einen Wert erstellen der gesetzt wird wenn sich ein Spieler in seinem Haus befindet bzw. wenn er es betritt und wieder gelöscht wird wenn er es verlässt und ich frage mich grade welches wohl die sinnvollste art wäre diesen anzulegen?


    MYSQL wäre eine Möglichkeit nur frag ich mich ob das wirklich nötig ist, Pvars könnte ich wohl nutzen nur wurde mir im laufe meiner Zeit hier bis her immer eingeprägt das Pvars böse ist und eigentlich auch nie genutzt werden muss daher es immer andere Möglichkeiten gibt.


    MySQL hier einzubringen ist wohl sinnlos es kommt drauf an was du damit genau machen willst beziehungsweise was du speichern temporär speichern willst.


    Sind es nur zwei werte kannst du auch umschwenken in die binärerichtung


    enum 1Bit:(<<= 1) {
    House,
    };
    new 1Bit:EnterHouse[MAX_PLAYERS];

    setzen :
    EnterHouse[playerid] |= House; //an true
    EnterHouse[playerid] &= ~House; //aus false
    ausgeben:
    if(EnterHouse[playerid] & House) //soll der wert true sein
    oder
    if(!(EnterHouse[playerid] & House)) // soll der wert alles außer true sein


    soll es ein wert sein zwischen 0 -255 gehen auch char-arrays das bedeutet pro zelle 4 bits


    new EnterHouse[MAX_PLAYERS char];
    EnterHouse{MAX_PLAYERS} = 10;


    Oder was auch möglich ist , ist eine normale array
    new EnterHouse[MAX_PLAYERS];

    Was spricht hier dagegen ein array mit einem enum zu benutzen



    enum motelroomdata {
    id,
    Float:X,
    Float:Y,
    Float:Z,
    Float:R,
    }


    new Float:MotelRooms[MAX_MOTELS][motelroomdata ] = {
    {1,-789.6752, 2747.5664, 48.2556, 271.8290},
    {2,-1789.6752, 1747.5664, 88.2556, 171.8290},
    ...


    };


    Somit hast du deine statischen ids

    Ich find das ganze gut umgesetzt ist aufjedenfall im Bezug auf viele andere Fahrschulen was neues.
    Jedoch würde ich dir eher empfehlen die Maps zu präsentieren, wenn du die Texturen schon gesetzt hast da es dadurch bestimmt besser Bewertungen gibt.
    Von der Form her hast du aufjedenfall was neues ich geh jetzt nicht generel von der Blockform aus. Die Inneneinrichtung ist auch sehr gut gestaltet bis auf die Eingangshalle mit der Treppe diese stört mich ein wenig. Die Treppe sieht hier mti dem gerüst ein wenig billig aus und die Tore wirken extrem klein.

    Ich glaube du hast da einen kleinen Denkfehler drin.
    Die Maximalgröße von Arrays in SA-MP ist 1024 (jedenfalls laut Wiki). Das würde bedeuten, das selbst wenn du das Array so groß machst, du nicht mehr als 1024 Tickets verarbeiten kannst bevor du theoretisch deinen Server neustarten müsstest.


    Die Aussage stimmt nicht du kannst den string so groß machen wie du willst musst jedoch auf die zugesicherten memory für stack und heap achten. Soweit wie mir mal gesagt wurde nimmt sich pawno auch trotz #pragma dynamic den memory was es braucht an memory.


    Ich denk mal eher das die Leute nicht in der Lage sind bei String Length auf die Überschrift zu achten und da steht textdraws das bedeutet im zusammenhang es ist nur möglich 1024 Zeichen
    auf einem textdraw anzuzeigen. Daher hat das nix mit deklarierten arrays zu tun man sollte nur aufpassen bei string-funktionen wie format was bei 4028 Zeichen crashen soll nach double0seven.

    änder doch IsPlayerInArea ab und prüfe noch ab ob der spieler sich in dem bereich der maximalen und minimalen höhe befindet aber eins kannst du mir glauben das , das ganze mit dem streamer plugin besser funktioniert da hier ein callback aufgerufen wird und du das ganze viel einfacher handhaben kannst. Aber mit einem timer ist das natürlich auch zu machen welcher sich immer wiederholt während des derbys

    Da reicht doch ein 2 dimensionales Array. Am besten hookst du die funktionen GivePlayerWeapon und ResetPlayerWeapons was jedoch auch nichtmal notwendig ist es reicht auch da eine eigene funktion zu schreiben hauptsache die jeweilige variabel wird gesetzt beziehungsweise wieder resetet , das reseten solltest fu auch nach dem sterben eines spielers machen.


    new bool:weapons[MAX_PLAYERS][46 char];
    weapons[MAX_PLAYERS]{0} = true;
    oder


    enum Weapons:(<<= 1) {
    FIST = 1,
    Brass_Knuckles,
    };
    new Weapons:WaffenInfo[MAX_PLAYERS];

    setzen :
    WaffenInfo[0] |= FIST; //an true
    WaffenInfo[0] &= ~FIST; //aus false
    ausgeben:
    if(WaffenInfo[0] & FIST) //soll der wert true sein
    oder
    if(!(WaffenInfo[0] & FIST)) // soll der wert alles außer true sein

    - via Streamerplugin eine Area erstellen (CreateDynamicCube)
    - Mit einer Char-Array arbeiten oder nochbesser bitarray
    - 1 Command, welcher eingegeben werden kann wenn das event aktiv ist dazu 1 globale variabel welche du setzen kannst
    wenn das race begonnen hat damit du dies bei dem befehl abfragen kannst und der spiele rnicht mehr hin geportet wird.
    - Fahrzeug erstellen CreateVehicle bei der eingabe des befehls , PutPlayerInVehicle http://wiki.sa-mp.com/wiki/PutPlayerInVehicle
    und zum erhöhen des lebens des Autos SetVehicleHealth http://wiki.sa-mp.com/wiki/SetVehicleHealth_DE
    - Um den sieger zu ermitteln kannst du die spieleranzahl auch in einer globalen variabel speichern , welche du runterzählen lassen kanst bei
    dem Callback OnPlayerLeaveDynamicArea und mit IsPlayerInDynamicArea könntest du noch die id raus bekommen, welche zuletzt in der area
    ist.


    - Um Feinde von außen fern zu halten kannst du über die array gehen da du hier ein wert setzt , wenn der spieler beitritt zum beispiel auf 1.
    sollte der wo von außen rein kommt in den bereich den wert nicht haben so kickst du ihn oder machst sonst was.


    - Anderfalls machst du das Viereck größer und um die spieler richtig zu platzieren kannst du eine position saven und dazu immer ein
    wert dazu rechnen bis zu einem bestimmten limit und danach die rotation und so weiter verfahren.

    Ja ich weis das es nicht hochzählt ist extra so.
    Ah er gibt von den 2en Spieler in der Tabelle 2mal den kompletten Account aus.



    Ich brauche da mal hilfe. Muss wissen wie ich in der Tabelle alle makiere die in der Fraktion x sind und dann wie ich die Auslese bzw in game anzeigen lassen kann


    if(!strcmp(cmd,"/TestBefehl",true)){
    mysql_query("SELECT `Name` FROM `accounts` WHERE `Member` = 5");
    mysql_store_result();
    new pName[MAX_PLAYER_NAME],NAMEALLSTRING[MAX_PLAYER_NAME*10+20],hCount;
    while(mysql_retrieve_row()){
    mysql_fetch_field_row(pName,"Name");
    strcat(NAMEALLSTRING,pName);
    strcat(NAMEALLSTRING,"/n");
    ++hCount;
    }
    printf("=======[ %d Benutzer in der Fraktion! ] =========",hCount);
    ShowPlayerDialog(playerid, DIALOG_F_MEMBERS, DIALOG_STYLE_LIST, "Fraktionsmitglieder", "NAMEALLSTRING", "Auswählen", "Beenden");
    mysql_free_result();
    return 1;
    }


    Ich hab dir mal ein Beispiel code geschrieben zum einen wenn du nur 1 eintrag aus der datenbank willst dann lass auch nur einen aus der Datenbank holen.
    vllt musst du die Datenbank Name anpassen. Mit der while schleife und mysql_retrieve_row() ist es auch möglich durch die ganze datenbank zu gehen. Sollte jemand in der Datenbank existieren wo in der Fraktion 5 ist so wird der Name ausgelesen und dieser wird gleich hier verarbeitet und in einen string eingebunden.
    Den String kannst du nacher im Dialog begutachten in einzelnen listitems. Beim anklicken eines listitems wird bei OnDialogResponse auch dieser inhalt mit aufgerufen und ist als inputtext verfügbar. Womit du den jeweiligen Eintrag bei einem Spieler updaten kannst also den wert bei Member auf 0 setzt zum beispiel.


    Mann kann die funktion auch hooken und mit gettime arbeiten und sich den timestamp zurück geben lassen , welchen man auch seperat speichern sollte.
    Was sich dazu empfehl ist ihrgend eine Timerfix.inc obwohl hier ja schon meist das ganze gehookt ist kann man das auch dort etwas ab ändern


    Wie genau Bots?
    Raksamp z.b.?


    Problem ist, dass diese Spieler nicht "spielen" sich nicht bewegen und wenig synchronisieren
    Habe ich schon gemacht ... nur wurde ich dann dauerhaft gebannt aufgrund von Server Flooding von Ssamp selber...


    Gruß


    Das ganze würde auch mit normalen Bots gehen , da der Grundverbrauch gleich ist jedoch um den server wirklich damit zu belasten naja das wird etwas schwieriger da du die befehle welche sie ausführen müssten in das npc skript packen. Was auch noch möglich wäre ist das du das ganze auch zu simulieren mit timern.