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

Konsola Sterowania Wydarzeniami Dropowymi


Rekomendowane odpowiedzi

Opublikowano

Publikacja wykonana przez członków MPC Modder Team

@JachuPL

Cześć. I znowu mam dla Was nową zabawkę. Dzisiaj daję Wam konsolę, dzięki której możecie sterować takimi wydarzeniami jak np. event dropowy Heksagonalnych Szkatułek. Tutaj macie kilka SSów

http://scr.hu/2ky/5jrwh
http://scr.hu/2ky/wjwfg
http://scr.hu/2ky/0bnk2
http://scr.hu/2ky/tiuv4
http://scr.hu/2ky/2ylif
http://scr.hu/2ky/gs0y7
http://scr.hu/2ky/u7o8s
http://scr.hu/2ky/honxc

Link do Questa

http://pastebin.com/Da21VEaC



Credits: - Funkcja sprawdzająca input

 

To wszystko. Jeśli znajdziecie jakiekolwiek błędy to śmiało piszcie tutaj lub na facebooku ;) Miłej gry!

57199140501148694665.png

Opublikowano
                function antibug(value) --Ta funkcja została napisana przez Nismo., jest to zabezpieczenie do inputa 
                        if value == "" or value == nil or string.find(value, "nan") then
                                return false
                        else
                                return true
                        end

japierdole xD

 

A quest fajny :) +

 

 

tu masz lepszą

function split(str, delim, maxNb)
    if str == nil then return str end
    if string.find(str, delim) == nil then return { str } end
    if maxNb == nil or maxNb < 1 then maxNb = 0 end
    local result = {}
    local pat = "(.-)" .. delim .. "()"
    local nb = 0
    local lastPos
    for part, pos in string.gfind(str, pat) do
        nb = nb + 1
        result[nb] = part
        lastPos = pos
        if nb == maxNb then break end
    end
    if nb ~= maxNb then result[nb + 1] = string.sub(str, lastPos) end
    return result
end
function datinput(value2)
    local value = tostring(value2)
    if string.len(value) == 0  or value == nil or string.find(value, "nan")  then
        return false
    else
        if tonumber(table.getn(split(value,"%."))) >1 then
            return false
        else
            return true
        end
    end
end	

Opublikowano
                function antibug(value) --Ta funkcja została napisana przez Nismo., jest to zabezpieczenie do inputa 
                        if value == "" or value == nil or string.find(value, "nan") then
                                return false
                        else
                                return true
                        end

japierdole xD

 

A quest fajny :) +

 

 

tu masz lepszą

function split(str, delim, maxNb)
    if str == nil then return str end
    if string.find(str, delim) == nil then return { str } end
    if maxNb == nil or maxNb < 1 then maxNb = 0 end
    local result = {}
    local pat = "(.-)" .. delim .. "()"
    local nb = 0
    local lastPos
    for part, pos in string.gfind(str, pat) do
        nb = nb + 1
        result[nb] = part
        lastPos = pos
        if nb == maxNb then break end
    end
    if nb ~= maxNb then result[nb + 1] = string.sub(str, lastPos) end
    return result
end
function datinput(value2)
    local value = tostring(value2)
    if string.len(value) == 0  or value == nil or string.find(value, "nan")  then
        return false
    else
        if tonumber(table.getn(split(value,"%."))) >1 then
            return false
        else
            return true
        end
    end
end	

Funkcję z jakiejś dokumentacji też mogę wziąć, poza tym co do drugiej funkcji to wychodzi po prostu na jedno, nie rozumiem do końca tylko drugiego warunku, no ale co, najlepiej zacytować post deco :-)

gwo9.jpg


Opublikowano

Funkcję z jakiejś dokumentacji też mogę wziąć, poza tym co do drugiej funkcji to wychodzi po prostu na jedno, nie rozumiem do końca tylko drugiego warunku, no ale co, najlepiej zacytować post deco :-)

tak to jest post deco dokladnie funkcja split wzieta z inetrnetu druga funkcja jest jegoi działa w 100% dzieki tej funkcji mozesz ablkowac wpisywanie kropek w inpucie

Opublikowano

tak to jest post deco dokladnie funkcja split wzieta z inetrnetu druga funkcja jest jegoi działa w 100% dzieki tej funkcji mozesz ablkowac wpisywanie kropek w inpucie

yy, to dopisujesz

 

...and string.find(value, ".")...

gwo9.jpg


Opublikowano

 

yy, to dopisujesz

...and string.find(value, ".")...

Sprawdz i zobacz ze nie dziala :)

 

bo kazda liczba ktora wpiszesz automatycznie ma liczbe po przecinku - kropce , jak wpiszesz 5 to ci czyta 5.0

string.find(value, ".") 
Opublikowano

 

Sprawdz i zobacz ze nie dziala :)

 

bo kazda liczba ktora wpiszesz automatycznie ma liczbe po przecinku - kropce , jak wpiszesz 5 to ci czyta 5.0

string.find(value, ".") 

Wydaje mi się, że jednak nie, bo jednak "." to string a nie int. Takie są moje przypuszczenia.

gwo9.jpg


Opublikowano

Jachu, dlaczego w każdym Twoim queście jest taka ilość tablic? Ani to nie jest proste do edytowania, ani nie poprawia czytelności. Zdecydowanie ich nadużywasz i nie tylko sobie utrudniasz życie ale i osobom, które chciałyby coś dodać do takiego questa.

lrip.png
Panel administratora Metin2 specjalnie dla MPCForum.pl

Oceniajcie, dawajcie nowe pomysły i krytykujcie, wszystko po to, aby jak najszybciej pojawił się na MPC!

Opublikowano

Jachu, dlaczego w każdym Twoim queście jest taka ilość tablic? Ani to nie jest proste do edytowania, ani nie poprawia czytelności. Zdecydowanie ich nadużywasz i nie tylko sobie utrudniasz życie ale i osobom, które chciałyby coś dodać do takiego questa.

 

czy problemem jest dodanie wpisu według określonego schematu? wystarczy przyjrzeć się budowie tablicy:

[1] = {["deName"] = "Nazwa", ["deDesc1"] = "Opis1", ["deDesc2"] = "Opis2", ["deDesc3"] = "Opis3", ["deItemVnum"] = id przedmiotu dropiącego w evencie, ["deEventFlagName"] = "nazwa wydarzenia, którą wpisujesz do game.get/set_event_flag()", ["deEventFlagMin"] = minimalna wartość, dla którego przedmiot dropi, ["deEventFlagMax"] = maksymalne ograniczenie, dla którego wartość ma jakikolwiek sens logiczny, ["deWorkType"] = typ działania opisany powyzej},

 

to jest JEDYNE co musisz edytować, by dodać nowy event. Reszta robi się automatycznie, quest jest maksymalnie uproszczony. Te tablice możecie traktować jako moją odpowiedź na Wasze if'y :D Pozdrawiam

57199140501148694665.png

Opublikowano

A powiedz mi Jachu, gdzie mogę ustawić konkretny drop?

Jak w WorkType przy Blaskach dam 0, to lecą tak jak na PL, nie?

Jak ustawię 1 (im mniejszy tym rzadziej) i wpiszę 100 to powinno lecieć z każdego moba? Czy jak to jest?

727881401622271220780.jpeg
Opublikowano

A powiedz mi Jachu, gdzie mogę ustawić konkretny drop?

Jak w WorkType przy Blaskach dam 0, to lecą tak jak na PL, nie?

Jak ustawię 1 (im mniejszy tym rzadziej) i wpiszę 100 to powinno lecieć z każdego moba? Czy jak to jest?

 

WorkType przy tych eventach zostało skonstruowane według game. Robiłem to w taki sposób, że sprawdzałem mechanizm sterujący dropem i dopasowywałem go do jednej z 4 kategorii, więc zmiana tego wpisu nic Ci nie ta - to po prostu "opis" znaczenia, mający na celu poinformowanie w jaki sposób event został skonstruowany w game. Żeby zmienić typ dropu dla określonego eventu (np. zmienić heksagonalne szkatułki, żeby zamiast "im większy tym rzadziej" było "im mniejszy tym rzadziej"), musiałbyś pogrzebać w game.

57199140501148694665.png

Opublikowano

 

WorkType przy tych eventach zostało skonstruowane według game. Robiłem to w taki sposób, że sprawdzałem mechanizm sterujący dropem i dopasowywałem go do jednej z 4 kategorii, więc zmiana tego wpisu nic Ci nie ta - to po prostu "opis" znaczenia, mający na celu poinformowanie w jaki sposób event został skonstruowany w game. Żeby zmienić typ dropu dla określonego eventu (np. zmienić heksagonalne szkatułki, żeby zamiast "im większy tym rzadziej" było "im mniejszy tym rzadziej"), musiałbyś pogrzebać w game.

Ale żeby któryś z WorkType powiększyć, tzn od czego są te liczny 1-100? Czemu one służą?

727881401622271220780.jpeg
Opublikowano

Ale żeby któryś z WorkType powiększyć, tzn od czego są te liczny 1-100? Czemu one służą?

 

Po raz drugi, WorkType nie ma nic do rzeczy. Odpowiada jedynie za wyświetlanie komunikatu o sposobie działania wydarzenia i został stworzony na podstawie wpisów w game. Liczby deEventFlagMin to najmniejsza wartość, która aktywuje wydarzenie. Liczby deEventFlagMax, to największa wartość, która wpływa na częstość dropu. Powyżej tej wartości nie zachodzą żadne zmiany w częstotliwości dropu.

57199140501148694665.png

Opublikowano

 

Po raz drugi, WorkType nie ma nic do rzeczy. Odpowiada jedynie za wyświetlanie komunikatu o sposobie działania wydarzenia i został stworzony na podstawie wpisów w game. Liczby deEventFlagMin to najmniejsza wartość, która aktywuje wydarzenie. Liczby deEventFlagMax, to największa wartość, która wpływa na częstość dropu. Powyżej tej wartości nie zachodzą żadne zmiany w częstotliwości dropu.

Czyli wpisując 100 drop w jakiś sposób powinien się zwiększyć?

727881401622271220780.jpeg
Opublikowano

Czyli wpisując 100 drop w jakiś sposób powinien się zwiększyć?

 

Zależy o czym mówimy - jeśli o edytowaniu tabelki to game ma swoje własne limity, które umieściłem w queście. Pełne prawa edycji, możecie kombinować z tym ile wlezie, w końcu najlepiej się uczyć na błędach ;)

57199140501148694665.png

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...