Beiträge von Bubelbub

    Ich hab mir ein Script gebaut...
    du und andere werden es mir nicht glauben...
    30.000 Zeilen Code mit unendlich vielen PlayerInfo Variablen innerhalb von circa 30min. komplett zu PVar umgeschrieben.
    (Man bedenke, das die Strings sogar funktioniert haben, nur manchmal kam ein Fehler, das der Code nicht eingerückt war ^^)
    -> Ist auch normal wenn das Script automatisch ne Zeile für die Strings einfügt :D

    Füg mal ganz ganz ganz oben das ein:
    #define SetPlayerHoldingObject(%1,%2,%3,%4,%5,%6,%7,%8,%9) SetPlayerAttachedObject(%1,MAX_PLAYER_ATTACHED_OBJECTS-1,%2,%3,%4,%5,%6,%7,%8,%9)
    #define StopPlayerHoldingObject(%1) RemovePlayerAttachedObject(%1,MAX_PLAYER_ATTACHED_OBJECTS-1)
    #define IsPlayerHoldingObject(%1) IsPlayerAttachedObjectSlotUsed(%1,MAX_PLAYER_ATTACHED_OBJECTS-1)

    Also.


    Du gibst /tutorial ein.
    Dann öffnet sich das:


    Zitat

    "Willkommen im Tutorial von Xeor Gaming.\n\nSchön das du zu Xeor gefunden hast, durch ein klick auf Weiter\nkannst du ausswählen was du gerne erfahren möchtest.\nDu kannst das Tutorial auch ganz einfach überspringen\nindem du auf Abbrechen drückst.\nDas Tutorial kann jederzeit mit /tutorial neugestartet werden.


    Dann klickst du auf "Weiter".
    Nichts sollte passieren.


    Du klickst auf Zurück.
    Das Fenster geht zu.
    Du machst nochmal /tutorial und es passiert nichts.


    Ist das so korrekt?


    Weil ich glaube deine Definierungen sind falsch:
    DIALOG_TUTORIAL
    DIALOG_TUTCHOOSE
    DIALOG_TUTSAMP

    Für Scripter wie mich, die keine vorgefertigten Sachen benutzen, wäre es hilfreich, den Link zu LoH zu posten.
    Dann könnte ich dir jetzt helfen :D

    Versuch einfach mal das :O


    ocmd:pay(playerid, params[])
    {
    new otherid, cash;
    if(sscanf(params, "ud", otherid, cash))
    return SendClientMessage(playerid, 0xFF0000AA, "Usage: /pay [ID] [Geld]");
    if(GetPlayerMoney(playerid) > cash)
    return SendClientMessage(playerid, COLOR_RED, "You don't have that much!");
    if(!IsPlayerConnected(otherid))
    return SendClientMessage(playerid, COLOR_RED, "That PlayerID is not connected!");
    if(otherid == playerid)
    return SendClientMessage(playerid, COLOR_RED, "It is pointless to pay yourself..");
    GivePlayerMoney(playerid, -cash);
    GivePlayerMoney(otherid, cash);
    return 1;
    }


    Das funktioniert bei mir.
    Wenn am Anfang #include <ocmd> steht.


    Der Befehl ocmd:pay() muss direkt im Script stehen und nicht im http://wiki.sa-mp.com/wiki/OnPlayerCommandText
    (falls du das nicht weißt)

    Ich bin am überlegen ein Projekt mit Mafia 2 zu machen.
    Die Grafik ist geil, das Spiel (SP) ist geil.
    Einfach alles an Mafia 2 ist geil.


    Sollte der Mod draußen sein gucke ich mal weiter.
    Egal ob Lua oder Squirrel, ich kann beides :D
    Müsste man gucken, welcher Mod von beiden Ressourcen schonender ist bzw. einfach besser ist.
    Beispiel MTA & Samp ^^

    Zitat

    Helft mir einfach. ;)

    Netter Ton ^^


    ocmd:makeadmin(playerid,params[])
    {
    if(Spieler[playerid][Admin] <= 5)
    return SendClientMessage(playerid, COLOR_GREY, "Du brauchst Admin Rank 5 oder höher.");
    new pID, rank, accFormat[128], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(accFormat, sizeof accFormat, "Accounts/%s.ini", name);
    if(sscanf(params, "ui", pID, rank))
    return SendClientMessage(playerid, COLOR_GREY, "FEHLER: /makeadmin [SpielerID/TeildesNamens] [AdminLevel]");
    if(rank < 0 || rank > 6)
    return SendClientMessage(playerid, COLOR_GREY, "Nicht niedriger als 0 und höher als 6.");
    dini_IntSet(accFormat, "Admin", rank);
    return 1;
    }


    So geht es bei mir ;)

    Also Beispielsweise so:


    #include <a_samp>

    #pragma tabsize 0
    #define neondialog 8131

    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print("Neon System By Büttii<33!");
    print("--------------------------------------\n");
    return 1;
    }

    public OnFilterScriptExit()
    {
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (!GetPVarInt(playerid, "isVIP")) // Deine Player Variable hier
    return 1; // Hier vllt. nen Fehler hin
    if (strcmp(cmdtext, "/takeneon", true)==0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    ShowPlayerDialog(playerid, neondialog, DIALOG_STYLE_LIST, "Neon Color", "Blue\nRed\nGreen\nWhite\nPink\nYellow\nDellete Neon", "Select", "Cancel");
    }
    return 1;
    }
    return 0;
    }

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {

    if(dialogid == neondialog)
    {
    if(response && GetPVarInt(playerid, "isVIP")) // Anpassen
    {
    if(listitem == 0)
    {
    SetPVarInt(playerid, "Status", 1);
    SetPVarInt(playerid, "neon", CreateObject(18648,0,0,0,0,0,0));
    SetPVarInt(playerid, "neon1", CreateObject(18648,0,0,0,0,0,0));
    AttachObjectToVehicle(GetPVarInt(playerid, "neon"), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(GetPVarInt(playerid, "neon1"), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    SendClientMessage(playerid, 0xFFFFFFAA, "Neon installed");
    }
    if(listitem == 1)
    {
    SetPVarInt(playerid, "Status", 1);
    SetPVarInt(playerid, "neon2", CreateObject(18647,0,0,0,0,0,0));
    SetPVarInt(playerid, "neon3", CreateObject(18647,0,0,0,0,0,0));
    AttachObjectToVehicle(GetPVarInt(playerid, "neon2"), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(GetPVarInt(playerid, "neon3"), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    SendClientMessage(playerid, 0xFFFFFFAA, "Neon installed");

    }
    if(listitem == 2)
    {
    SetPVarInt(playerid, "Status", 1);
    SetPVarInt(playerid, "neon4", CreateObject(18649,0,0,0,0,0,0));
    SetPVarInt(playerid, "neon5", CreateObject(18649,0,0,0,0,0,0));
    AttachObjectToVehicle(GetPVarInt(playerid, "neon4"), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(GetPVarInt(playerid, "neon5"), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    SendClientMessage(playerid, 0xFFFFFFAA, "Neon installed");

    }
    if(listitem == 3)
    {
    SetPVarInt(playerid, "Status", 1);
    SetPVarInt(playerid, "neon6", CreateObject(18652,0,0,0,0,0,0));
    SetPVarInt(playerid, "neon7", CreateObject(18652,0,0,0,0,0,0));
    AttachObjectToVehicle(GetPVarInt(playerid, "neon6"), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(GetPVarInt(playerid, "neon7"), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    SendClientMessage(playerid, 0xFFFFFFAA, "Neon installed");

    }
    if(listitem == 4)
    {
    SetPVarInt(playerid, "Status", 1);
    SetPVarInt(playerid, "neon8", CreateObject(18651,0,0,0,0,0,0));
    SetPVarInt(playerid, "neon9", CreateObject(18651,0,0,0,0,0,0));
    AttachObjectToVehicle(GetPVarInt(playerid, "neon8"), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(GetPVarInt(playerid, "neon9"), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    SendClientMessage(playerid, 0xFFFFFFAA, "Neon installed");

    }
    if(listitem == 5)
    {
    SetPVarInt(playerid, "Status", 1);
    SetPVarInt(playerid, "neon10", CreateObject(18650,0,0,0,0,0,0));
    SetPVarInt(playerid, "neon11", CreateObject(18650,0,0,0,0,0,0));
    AttachObjectToVehicle(GetPVarInt(playerid, "neon10"), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(GetPVarInt(playerid, "neon11"), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    SendClientMessage(playerid, 0xFFFFFFAA, "Neon installed");

    }
    if(listitem == 6){DestroyObject(GetPVarInt(playerid, "neon")); DeletePVar(playerid, "Status"); DestroyObject(GetPVarInt(playerid, "neon1")); DeletePVar(playerid, "Status"); DestroyObject(GetPVarInt(playerid, "neon2")); DeletePVar(playerid, "Status"); DestroyObject(GetPVarInt(playerid, "neon3"));
    DeletePVar(playerid, "Status"); DestroyObject(GetPVarInt(playerid, "neon4")); DeletePVar(playerid, "Status"); DestroyObject(GetPVarInt(playerid, "neon5")); DeletePVar(playerid, "Status"); DestroyObject(GetPVarInt(playerid, "neon6")); DeletePVar(playerid, "Status"); DestroyObject(GetPVarInt(playerid, "neon7"));
    DeletePVar(playerid, "Status"); DestroyObject(GetPVarInt(playerid, "neon8")); DeletePVar(playerid, "Status"); DestroyObject(GetPVarInt(playerid, "neon9")); DeletePVar(playerid, "Status"); DestroyObject(GetPVarInt(playerid, "neon10")); DeletePVar(playerid, "Status"); DestroyObject(GetPVarInt(playerid, "neon11"));
    DeletePVar(playerid, "Status");
    }
    }
    }
    return 0;
    }


    Die Variablen anpassen.
    Wenn du in deinem Script sowas verwendest:
    PlayerInfo[playerid][isVIP]
    dann machst du bei der definierung von PlayerInfo[playerid][isVIP] noch ein (darunter) SetPVarInt(playerid, "isVIP", Value).
    Bei jeder Änderung dann das selbe.

    Sei mir nicht Böse wenn jetzt irgendwas nicht funktioniert.
    Denn das Script ist echt übel ^^


    #include <a_samp>


    #define COLOR_RED 0xAA3333AA
    #define DialogNr 1


    new DERBY[MAX_PLAYERS][10];
    new RACE1[MAX_PLAYERS][10];
    new RACE2[MAX_PLAYERS][10];
    new Race3[MAX_PLAYERS][10];
    new vehicle;


    public OnPlayerConnect(playerid)
    {
    DERBY[playerid] = "FALSE";
    RACE1[playerid] = "FALSE";
    RACE2[playerid] = "FALSE";
    Race3[playerid] = "FALSE";
    return 1;
    }


    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" Derby - by Hubarz");
    print("--------------------------------------\n");
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/derby", cmdtext, true, 10) == 0)
    { SetPlayerInterior(playerid, 82);
    format(DERBY[playerid], 10, "TRUE");
    SetPlayerCameraPos(playerid, -1516.63, 1004.24, 1038);
    SetPlayerCameraLookAt(playerid, -1417.8927, 932.4482, 1041.5313);
    ShowPlayerDialog(playerid, DialogNr, DIALOG_STYLE_LIST, "Bitte ein Fahrzeug wählen", "Sandking\nBloodring Banger\nHotring Racer", "Beitreten!", "");
    return 1;
    }
    if (strcmp("/exit", cmdtext, true, 10) == 0)
    {
    if(strcmp("TRUE", DERBY[playerid], true, 4) == 0)
    {
    DestroyVehicle(vehicle);
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, 1572.5245361328, -1244.7938232422, 782.60906982422);
    SetCameraBehindPlayer(playerid);
    format(DERBY[playerid], 10, "FALSE");
    return 1;
    }
    }
    return 0;
    }



    public OnPlayerDisconnect(playerid)
    {
    if(strcmp("TRUE", DERBY[playerid], true, 4) == 0)
    {
    DestroyVehicle(vehicle);
    }
    strdel(DERBY[playerid], 0, 10);
    strdel(RACE1[playerid], 0, 10);
    strdel(RACE2[playerid], 0, 10);
    strdel(Race3[playerid], 0, 10);
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == vehicle)
    {
    switch(listitem)
    {
    case 0:
    {
    vehicle = CreateVehicle(495, -1516.63, 1004.24, 1038, 0, -1, -1, -1);
    LinkVehicleToInterior(vehicle, 82);
    PutPlayerInVehicle(playerid, vehicle, 0);
    SetCameraBehindPlayer(playerid);
    }
    case 1:
    {
    vehicle = CreateVehicle(503, -1516.63, 1004.24, 1038, 0, -1, -1, -1);
    LinkVehicleToInterior(vehicle, 82);
    PutPlayerInVehicle(playerid, vehicle, 0);
    SetCameraBehindPlayer(playerid);
    }
    case 2:
    {
    vehicle = CreateVehicle(504, -1516.63, 1004.24, 1038, 0, -1, -1, -1);
    LinkVehicleToInterior(vehicle, 82);
    PutPlayerInVehicle(playerid, vehicle, 0);
    SetCameraBehindPlayer(playerid);
    }
    }
    }
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    if(strcmp("TRUE", DERBY[playerid], true, 4) == 0)
    {
    SetPlayerHealth(playerid, 0);
    SendClientMessage(playerid, COLOR_RED, "Während des Derbys darfst du dein Fahrzeug nicht verlassen!");
    }
    return 1;
    }


    Pastebin.com:
    http://pastebin.com/xpXeRcBT

    Problem: Wenn ich als Leader auf "Auszahlen" gehe, werde ich nach dem Namen des Spielers gefragt, der das Geld erhalten soll. Nach richtiger Eingabe eines Spielernamens, werde ich auf einen neuien Dialog weitergeleitet, welcher verlangt, die Höhe des Betrages einzugeben. Wird dieser korrekt eingegeben, sollte das Geld normalerweise an den Spieler, im oben angegebenen Dialog, geschickt werden. Dies erfolgt aber nicht, die Nachricht, das das Geld an den Spieler gegeben wird, sowie der Abzug des Geldes in der Fraktionskasse erfolgt dennoch.

    Also du klickst auf Auszahlen, wirst nach dem Namen gefragt.
    Dann gibst du das Geld ein.
    Dann erhält jeder eine Meldung, EGAL ob die Eingabe eine Summe ist oder nicht?