Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Natychmiastowy ItemShop


Rekomendowane odpowiedzi

Opublikowano

Cześć! Przedstawiam Wam mojego questa na ItemShop, chodziło o to, aby przedmioty były odbierane od razu, wiem, że jest to lekkie przeciążenie bazy, bo zamiast jednej kwerendy do `player`.`item` idzie najpierw, do `web_data`.`ingame_shop`, a potem pc.giveitem2() dodaje bo `player`.`item`, aczkolwiek quest dawał dobrze rade.

 

Przykładowa kwerenda, ze strony do bazy, jak ktoś kupi przedmiot:

INSERT INTO `web_data`.`ingame_shop` (characterName, itemVnum, itemCount) VALUES ({$charName}, {$itemVnum}, {$itemCount});
quest itemShop begin
    state start begin
        when 9005.chat."Odbierz przedmioty z ItemShopu" begin
            say("Oto Twoje przedmioty!")
            local charName = pc.get_name()
            local checkQuery = mysql_query("web_data", "SELECT * FROM ingame_shop WHERE characterName = '"..charName.."' LIMIT 1;")
            
            while checkQuery[1][1] != nil do
                local itemVnum = mysql_query("web_data", "SELECT itemVnum FROM ingame_shop WHERE characterName = '"..charName.."' LIMIT 1;")
                local itemCount = mysql_query("web_data", "SELECT itemCount FROM ingame_shop WHERE characterName = '"..charName.."' LIMIT 1;")
                pc.give_item2(tonumber(itemVnum[1][1]), tonumber(itemCount[1][1]))
                checkQuery = mysql_query("web_data", "SELECT * FROM ingame_shop WHERE characterName = '"..charName.."' LIMIT 1;")
                mysql_query("web_data", "DELETE FROM ingame_shop WHERE itemVnum = '"..itemVnum[1][1].."' AND characterName = '"..charName.."' LIMIT 1;")
            end
        end
    end
end

YhNvaXz.png

Opublikowano

HMMMMMMMMMMMMMMMMMMMMMMM głupie to może nie jest, ale serio ktoś byłby tak leniwy, żeby nie otworzyć magazynu IS? xD

Opublikowano

I tu i tu trzeba kliknąć NPC, czyli używając tego questa zaoszczędzimy ~5 sekund które byśmy poświęcili na wpisanie hasla i wyciągniecie przedmiotu = bez sensu i nie potrzebne.

Nie mówiąc już o tym że 99% serwerów ma przedmioty z IS pod buttonem w eq, czyli ten quest w takim wypadku by tylko utrudnił wyciąganie przedmiotów.

sygna1.png

Opublikowano

Napisałem tego questa, bo z jakiegoś powodu nie pojawiały mi się itemy w MALL, gdy dodawałem je do tabeli `item` (;

 

P.S przepiąłem go tak samo pod button

YhNvaXz.png

Opublikowano

Napisałem tego questa, bo z jakiegoś powodu nie pojawiały mi się itemy w MALL, gdy dodawałem je do tabeli `item` (;

 

P.S przepiąłem go tak samo pod button

is'owskie itemy powinny trafiać do item_award (?)
Opublikowano

to już wiem, dlaczego te itemy się nie pojawiały :D ale takie dojście na około też jakoś dawało radę,

 

@Terenzo_

dzięki ;>

YhNvaXz.png

Opublikowano

nie do tabeli item mają trafić a to jest nie głupi system ale bardzo kiepsko rozwinięty po za tym jak miał bym robic takie coś to tak jak na alme## miałem z casawirem że is w grze ale nie zdaje to egzaminu bo gracze się gubią co do pomysłu dobry lecz nie widzę głębszego zastosowania :)

Opublikowano

I niech to zrobi setka osob jednoczesnie :)  Channel OFF lub cale DB

DB Metina Ci nie padnie, bo to jest dbcache, a mysql_query idzie bezpośrednio do bazy (;

YhNvaXz.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...