Beiträge von LeonMrBonnie

    Erstens:
    Es sieht so aus als wäre der Query String zu klein, vergrößer ihn.


    Zweitens:
    Du benutzt MySQL nicht richtig...
    1. Benutz "mysql_query" NUR wenn du genau weißt was du machst! Sonst sorgt das nur für Lags.
    2. Welche MySQL Version verwendest du?

    Hab den Fehler nun "gefunden".


    Anscheinend wird aus irgendeinem anderen Addon auch PlayerSpawn gehookt und dort werden die Waffen auch gegeben, also hab ich nun einfach timer.Simple(1, function() end) verwendet, um das ganze zu verzögern, da es Deathrun ist, und es ja eh am Anfang Freezetime gibt, klappt alles jetzt.

    Hallo,
    ich versuche gerade mit GLUA für das Addon Blue's Unboxing 3 ein Autoequip System hinzuzufügen.
    Es funktioniert auch (fast) alles wie ich das möchte, nur werden mir irgendwie die Waffen nicht gegeben und die alten nicht entfernt...

    Code: sv_autoequip.lua
    hook.Add("PlayerSpawn", "Core_AutoEquipSpawn", function(ply)
    	PrintMessage(3,"Core_AutoEquipSpawn aufgerufen! Für: "..ply:Name())
    	local wep = ply:GetInfo("BU3_AutoEquip")
    	if(wep == "") then return end
    	PrintMessage(3,ply:Name()..": "..wep)
    	ply:StripWeapon("csgo_default_t")
    	local knife = ply:Give(wep)
    	local crowbar = ply:Give("weapon_crowbar")
    	PrintMessage(3,ply:Name().." is done")
    end)

    Es werden auch alle Prints ausgegeben, und es ist auch alles richtig, die Waffe wird richtig ausgegeben und der Name ist auch richtig.
    Auch die "is done" Nachricht kommt, aber mir wird halt das Default Knife nicht entfernt und die Crowbar und die Waffe erhalte ich nicht.


    Wo liegt das Problem?

    Wenn der Dialogtype nicht DIALOG_STYLE_MSGBOX ist, dann ist der inputtext[] der bei OnDialogResponse übergeben wird, automatisch der Text vom ersten Tab in der Zeile.
    Da ja dort der erste Tab in der Zeile die ID ist, kannst du dann einfach strval(inputtext) verwenden, und das ist dann die gewählte ID.

    Du hast vergessen am Anfang mit %s wieder das alte Format ins neue mitzukopieren.
    Deswegen ist die Query die abgesendet wird nur:
    "`Hotelid` = '%d', `Hotelzimmer` = '%d' WHERE ID = '%d'"


    Also muss es so:

    mysql_format(handle, query, sizeof(query), "%s`Hotelid` = '%d', `Hotelzimmer` = '%d' WHERE ID = '%d'",query, pInfo[playerid][pHotel], pInfo[playerid][pHotelzimmer], pInfo[playerid][p_id]);
    mysql_pquery(handle, query);

    Yo hab ich gemacht. Hab aber jetzt nur ein Warning:

    Zeig mal wo du Textdraw0 erstellt hast, und wo du den Textdraw String setzt.

    Und ich habe noch bei OnPlayerConnect das hier drin? Soll das bleiben oder soll ich es raus tun?: (Nur ist deaktiviert, wusste halt nicht ob ich es aktiviert lassen soll oder nicht=

    Wo wird denn der Textdraw erstellt? Such mal nach"Textdraw0 = TextDrawCreate" und dann musst du das ja irgendwo finden. Wenn du es sonst nirgends findest, musst du es bei OnPlayerConnect wieder auskommentieren.

    format(string,sizeof(string),"/Deagle %d /Deagle1 %d /Deagle2 %d /Deagle3 %d /Deagle4 %d /DM1 %d /DM2 %d /DM3 %d /DM4 %d /CBUG %d /1o1",GetInArena(1),GetInArena(2),GetInArena(3),GetInArena(4),GetInArena(5),GetInArena(6),GetInArena(7),GetInArena(8),GetInArena(9),GetInArena(10));
    Hast am Ende ); vergessen.


    Wo hast du new Textdraw0 gemacht? Das musst du ganz oben im Script machen, als globale Variable.

    Also;
    Du brauchst einen Timer.
    Bei OnGamemodeInit:
    SetTimerEx("SecondTimer",1000,true)


    Dann erstellst du eine public Funktion:

    forward SecondTimer();
    public SecondTimer()
    {
    UpdateTextdraw();
    }


    Erstellst die Funktion UpdateTextdraw:

    UpdateTextdraw()
    {
    new string[256];
    format(string,sizeof(string),"/Deagle %d /Deagle1 %d /Deagle2 %d /Deagle3 %d /Deagle4 %d /DM1 %d /DM2 %d /DM3 %d /DM4 %d /CBUG %d /1o1",GetInArena(1),GetInArena(2),GetInArena(3)..//und so weiter
    TextDrawSetString(Textdraw0,string);
    }


    Und erstellst dann hier die Funktion GetInArena:

    GetInArena(arena)
    {
    new count;
    foreach(new i : Player)
    {
    if(GetPVarInt(i,"arena") == arena) count++;
    }
    return count;
    }