Beiträge von BlackFoX

    Bei CS 1.6 hat man das auch gesagt, das es verschwinden würde dabei gibts dafür immer noch Bereich & Foren die
    noch länger existieren als dieses Forum, sich deswegen sorgen zu machen ist übertrieben, ist schließlich nur ein Spiel.
    Und wer sagt das dieses Forum keine Existenz Chancen mehr hat nur weil Sa-mp verschwinden könnte.

    Wenn du AddPlayerClass drinnen hast und mit Figuren die an bestimmen anderen Koordinaten gespawnt werden,
    dann liegts höchst wahrscheinlich daran das der Code an einer Stelle hängen geblieben ist, eventuell durch Falsche Zugriffe
    oder nicht vorhandene Funktionen.

    Hallo Leute,


    ich hab mir mal die Zeit genommen und ein kleines Plugin erstellt was es ermöglicht Dynamische Variablen zu erstellen ohne
    unnötige Array zu verwenden, derzeit sind es Globale Variablen, ich werde jedoch in nächster Zeit noch Variablen, extra
    für Fahrzeuge erstellen dieses System soll erkennen wenn ein Auto zerstört wird also komplett gelöscht so das die Variablen
    wieder verschwinden, so wie gesagt derzeit noch nicht vorhanden.
    Ich habe versucht mit der schnellstmöglichen Methode zu arbeiten, ohne das es groß auf die Ressourcen geht.


    Funktionen zum setzen


    SetVarString(slot,name[],value[]);

    • Setzt eine Variable als Text


    SetVarInt(slot,name[],value);

    • Setzt eine Variable als Zahl


    SetVarFloat(slot,name[],Float:value);

    • Setzt eine Variable als Komma zahl

    ( INFO : Falls die Variablen mit selben Namen existieren werden sie logischerweise verändert, auch der Typ wird übernommen, also kann man Float zu String wandeln und int zu Float usw.. )


    Zum Abrufen...


    GetVarString(slot,name[],output[],maxlen = sizeof(output));

    • Gibt die Variable als Zeichenfolge wieder ( Muss vom dementsprechenden Typ sein )


    GetVarInt(slot,name[]);

    • Gibt die Variable als Zahl wieder


    Float:GetVarFloat(slot,name[]);

    • Gibt die Variable als Komma Zahl wieder


    Extras...


    IsVarSet(slot,name[]);

    • Fragt ab ob Variable gesetzt wurde.


    DeleteVar(slot,name[]);

    • Löscht Variable komplett


    VarUbound();

    • Fragt den höchsten Index ab sprich die Anzahl aller Variablen.


    VarType(slot,name[]);

    • Gibt den Variablen Typ wieder.


    VarIndex(index,output[],maxlen = sizeof(output));

    • Gibt den Namen einer Variablen in einem Index wieder.


    VarSlot(index);

    • Slot der Variable im Index wiedergeben


    Variablen Datentypen



    #define BFX_VAR_INT 2
    #define BFX_VAR_STRING 4
    #define BFX_VAR_FLOAT 8


    if(VarType(1,"bla") == BFX_VAR_INT) // Fragt ab ob der Datentyp dem entspricht mit der, die Variable belegt ist.



    Beispiel


    SetVarFloat(1,"PI",3.14);
    SetVarFloat(1,"PT",3.34);
    SetVarString(1,"Test","String");
    new val[64];
    for(new i = 0;i<VarUbound();i++)
    {
    VarIndex(1,i,val);
    if(VarType(1,val) == BFX_VAR_FLOAT)
    {
    printf("Value %f",GetVarFloat(1,val));
    }
    }


    So das war es soweit, ich weiß es ist nichts großes & es war auch nicht viel Arbeit, aber wie gesagt es wird noch einiges verbessert & hinzugefügt.


    Download + Quellcode

    Bei Code::Blocks ist Standardmäßig der GCC MinGW Compiler dabei, wenn Windows denn nicht erkennen bzw. finden sollten .
    Tools > Compiler & Debugger > Tab > Toolchain Executables > Auto Detect anklicken & dann gehts wieder.

    Also VC 2008 geht unter lavista Kernel nicht mehr einwandfrei sprich dort hat die IDE starke Probleme,
    ich teste derzeit die RC Version von MS VS 2010 , dort läuft alles wirklich Super.
    Najo Alternativ hab ich immer noch Code::Blocks, meinen Favorit wenn es um C/C++ geht ^^

    Wurde schon mal gesagt, dort sind wir eigentlich zum Entschluss gekommen das ein persönliches Danke wirklich besser herüber kommt &
    nicht mal eben vor die Füße geschmissen.

    Für mehrere Server wäre Sinnlos, jeder Server sollte für sich existieren & nicht die Strafe eines einzelnen für jeden übernehmen,
    es bestünde nur die Möglichkeit auf eine Globale Datenbank zuzugreifen aber ob das was bringt, wobei man die Hardware ID
    Prüfung Simple umgehen kann wenn man sich damit etwas auskennt.

    Streamer = Lädt während der Laufzeit , somit werden beim laden auch diese Rückruf Funktionen aufgerufen ,
    so kann man abfragen was geladen wurde & mit welchen Daten.

    new Float:ps[3];
    if(vehicleid == Flug)
    {
    GetPlayerPos(playerid,ps[0],ps[1],ps[2]);
    SetPlayerPos(playerid,ps[0],ps[1],ps[2]);
    SendClientMessage(playerid,0x33AA33AA,"Hau ab! BLA BLA");
    }


    Ansonsten versuch es mit OnPlayerStateChange , dort reagiert die Funktion erst wenn der Status übernommen wurde,
    hier wird der Aufruf gestartet sobald der Spieler einsteigen möchte daher müsste die Aktion vorher verhindert werden.