Beiträge von xivo

    Du hast schon ein Thread aufgemacht ?


    Zu 1. Du musst bei OnPlayerSpawn eine Abfrage machen, ob der spieler in der Frak ist, wen ja dan setzt
    du ihn nach ... SetPlayerPos(...)


    Zu 2. Fraktionen löschen, musste leider selber herrausfinden, ist bei jedem Script anders, wer sich mit GF
    auskennt, kann dir bestimmt weiterhelfen.


    zu 3. machst du einfach eine Abfrage bei OnPlayerenterVehicle oder OnPlayerStateChange

    Ehm DT_Cars hat seinen Autoaladen soweit ich weiss, nähe BSN an der Tankstelle gegenüber am Hotel. Oder was das sein soll...


    Dort ist dan ein Pickup zu finden.

    Muss ich eigentlich dan nicht Godfather umschreiben ?


    Vielleicht schau ich mir deine Idee ab, und ändere das Design und sonstiges bisschen ab ;)
    Credits bleiben natürlich drinne.


    Naja ich schreibe momentan eh am Selfmade RL Mysql Script ;)

    @ Master_FM && chilly...


    Es ist jedem selbst überlassen, ob er es in GUI haben möchte oder nicht, mir selber gefällt
    Gui einfach besser, da es eine Grafische Oberfläche bestizt, und halt etwas mit der Zeit
    mitkommt ;)


    Und zu


    @ DizZy


    Dir fehlt PlayerToPoint, du kannst aber auch am besten IsPlayerInRangeOfPoint
    verwenden, ist schneller und arbeitet genauso wie PlayerToPoint, dort musst du allerdings
    nichts definieren. Und auch kein public oder Forward erstellen.


    Wenn du dennoch PlayerToPoint verwenden möchtest hier :


    forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);


    public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    tempposx = (oldposx -x);
    tempposy = (oldposy -y);
    tempposz = (oldposz -z);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    return 1;
    }
    }
    return 0;
    }

    z.b bei einem Befehl, oder bei einem Public, z.b OnPlayerEnterVehicle
    dan rufst du den Timer auf, wen dieses Public aufgerufen wird, OnPlayerenterVehicle
    wird z.b aufgerufen wen du in das Fahrzeug steigst.


    Das beste wär natürlich, wen du den Timer in ein Public setzt, und er nur dan aufgerufen wird,
    und nicht unter OnGameModeInit, kannste aber natürlich dennoch machen ;)


    Manchmal kommt man einfach nicht drum rum.

    Die 1 gibt aus, ob der Timer wiederrufen wird oder nicht, setzt du die Zahl jedoch auf 0
    dan läuft der Timer nur ab, wen du ihn aufrufst.

    Fällt dir hier nichts auf ?


    format(string2, sizeof(string2), "[Kills: %d] [Deaths: %d] [Ratio: %0.2f] [Wanted: %d] [Cash: %d]",Player[playerid][Kills],Player[playerid][Deaths], Float:Player[playerid][Kills]/Float:Player[playerid][Deaths],GetPlayerWantedLevel(playerid),GetPlayerMoney(playerid));
    format(string3, sizeof(string3), "[Score: %d] [Adminlevel: %d] [Grass: %d] [Heroin: %d] ",GetPlayerScore(playerid),Player[playerid][admin],Player[playerid][gras],Player[playerid][heroin]);
    format(string3, sizeof(string3), "[LSD: %d]",Player[playerid][lsd]);


    Du verwendest die variable string3 für 2 Ausgaben.

    Ich finde Case etc schlimm. Jedem das seine, ich verwende listitem.


    Also du definierst dein Dialog mit :


    #define DIALOG 0


    So, versuchs anstatt mit Case mal so.



    if(dialogid == DIALOG)
    {
    if(lisitem == 0)
    {
    //Was Passiert wen der das erste angeklickt hat
    }
    if(lisitem == 1)
    {
    //... und immer so weiter.