• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Komenda wyświetlająca wykonane questy

Darius93

New Member
Joined
Oct 16, 2022
Messages
3
Reaction score
0
Witam mam problem m.in chciałbym wykonać komendę że po wpisaniu !quests wyskoczy graczowi tekst:

Wykonałeś: dhq, poi, desert

Lua:
questId = {
    [1] = {name = "Annhi", text = "Ksss Ksss", storage = 97770},
    [2] = {name = "DHQ", text = "Ksss Ksss", storage = 97771},
    [3] = {name = "poi", text = "Ksss Ksss", storage = 97772},
    [4] = {name = "desert", text = "Ksss Ksss", storage = 97773}
}


function onSay(player, words, param)
if param == "" then
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,  "Wykonales: .")
end
return false
end

I od strony technicznej to wygląda tak że mam taką tabelkę i chciałbym by sprawdziło storage czy jest równe 1 (te co jest w tabeli) gdy np. gracz ma storage z Annhi i DHQ równe 1 to zwróci Wykonales: Annhi, DHQ.


Pomoże ktoś albo naprowadzi jak to zrobić bo nie mam pojęcia jak to wykonać a tabelka musi być tego typu bo w innym skrypcie już pobieram z niej informacje poprzez in pairs.

Pozderki
 
Witaj,

Musisz pojechać po wartościach z wspomnianej tabeli.

W Lua wygląda to tak:
Code:
local wykonales = ""
for _, quest in pairs(questId ) do
    if player:getStorageValue(quest.storage) > 0 then
        wykonales = wykonales .. quest.name .. ", "
    end
end

print(wykonales)

Na koniec jeszcze można by usunąć przecinek w ostatnim queście. Ale to już kwestia estetyczna.
 
Witaj,

Musisz pojechać po wartościach z wspomnianej tabeli.

W Lua wygląda to tak:
Code:
local wykonales = ""
for _, quest in pairs(questId ) do
    if player:getStorageValue(quest.storage) > 0 then
        wykonales = wykonales .. quest.name .. ", "
    end
end

print(wykonales)

Na koniec jeszcze można by usunąć przecinek w ostatnim queście. Ale to już kwestia estetyczna.
działa wyśmienicie a np. w jaki sposób mógłbym jeszcze pobrać wartości z tabeli bez pętli bądź jest na to jakiś inny sposób bo mi nic do głowy nie przychodzi?
Bo dla przykładu jakbym chciał pobrać wartość name z tabeli w ten sposób:


Lua:
for _, nazwy in pairs(questId) do
        if param == nazwy.name then 
            if player:getStorageValue(quest.storage) > 0 then
                print(""..nazwy.name.." ma ID: "..nazwy.." i go juz wykonales.")
            else   
                print("Sorry ale nie posiadasz "..nazwy.name.." questa.")
            end
        else   
            print("Sorry ale nie ma takiego questa w bazie.")
        end
    end

Chodzi o to że teraz wyświetla mi się wszystko * tyle ile pozycji jest w tabeli - tak samo nie wiem w jaki sposób pobrać ID czyli wartość tą co jest w [ ].
 
działa wyśmienicie a np. w jaki sposób mógłbym jeszcze pobrać wartości z tabeli bez pętli bądź jest na to jakiś inny sposób bo mi nic do głowy nie przychodzi?
Bo dla przykładu jakbym chciał pobrać wartość name z tabeli w ten sposób:


Lua:
for _, nazwy in pairs(questId) do
        if param == nazwy.name then
            if player:getStorageValue(quest.storage) > 0 then
                print(""..nazwy.name.." ma ID: "..nazwy.." i go juz wykonales.")
            else  
                print("Sorry ale nie posiadasz "..nazwy.name.." questa.")
            end
        else  
            print("Sorry ale nie ma takiego questa w bazie.")
        end
    end

Chodzi o to że teraz wyświetla mi się wszystko * tyle ile pozycji jest w tabeli - tak samo nie wiem w jaki sposób pobrać ID czyli wartość tą co jest w [ ].

Musiałbyś albo inaczej tabelę skonstruować, tzn. name przesunąć w index.

Coś ala:
Code:
questId = {
    ["Annhi"] = {text = "Ksss Ksss", storage = 97770},
    ["DHQ"] = {text = "Ksss Ksss", storage = 97771},
    ["poi"] = {text = "Ksss Ksss", storage = 97772},
    ["desert"] = {text = "Ksss Ksss", storage = 97773}
}

param = "DHQ"

print(questId[param].text)

Ja sobie tutaj ustawiłem param, bo testuję online: Lua: demo (https://www.lua.org/cgi-bin/demo)

A co do wartości w [], to jest to to: _ (dolna linia)

for index, nazwy in pairs(questId) do

możesz zamienić na co chcesz, często w skryptach ludzie ustawiają na _ bo jest nieużywana.

1694287946162.png
 

Similar threads

Back
Top