• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

CPU skacze do 100%! Czego to wina...?

Ja się zastanawiam nad jednym, jak wyskakuje mi coś w stylu: "NPC missing parametrs:" to czy jak ktoś odnajdzie tego NPC i zaspamuje mu to czego nie jest w stanie do końca wykonać to czy to może spowodować owe podwyższenie CPU?
A i przy okazji zapytam, jak ten błąd wyskakuje to on znajduje ten błąd w npc, który załadował się na mapę czy znajduje spośród wszystkich w data/NPC?

A, i wydaje mi się, że to błąd w jakichś w moich skryptów, ponieważ na żadnym innym serwerze nigdy z takim czymś się nie spotkałem. Niestety moje umiejętności w pisaniu przejrzystych skryptów nie są aż tak dobre, więc może to wina jakiegoś skryptu?
 
A, i wydaje mi się, że to błąd w jakichś w moich skryptów, ponieważ na żadnym innym serwerze nigdy z takim czymś się nie spotkałem. Niestety moje umiejętności w pisaniu przejrzystych skryptów nie są aż tak dobre, więc może to wina jakiegoś skryptu?
To może pokaż te skrypty, ja żem jasnowidzem nie jest. :D
 
Chętnie bym to zrobił tylko zastanawia mnie który może być na tyle wadliwy... Jest ich około 100 :/
btw. Ile przeciętnie skacze CPU jak serwer jest online?

#Kula
Błędy są ale tylko z monsterami, że albo nie znajduje, albo jakiś zły typ ataku jest.

Nie mam pomysłu co robić... :(

CPU się uspokoiło i waha się w granicach 6-12.
 
Missing~ , oznacza tylko, ze dany parametr/keyword nie bedzie uzyty, bo brakuje np. odpowiedzi. Dodaj sobie w npclib:
Code:
print('NPC: '.. getCreatureName(getNpcCid()))

To bedziesz wiedzial, ktore to dokladnie zeby je sobie poprawic ;p.
 
Także tak, dowiedziałem się, że 80% otsów jest podatna na ten bug i jest on spowodowany NPCkami. Ale w jaki sposob go naprawic to nie mam zielonego pojęcia.
 
dodaje exhaust na kupowanie, zwlaszcza z BP, mialem ten sam problem.
 
Działa to na każdym npcku, najprawdopodobniej spam jakiejś wiadomości, ew. coś z kupowaniem.
Koob zaraz dodam, tylko znajdę tą linijkę :P.
 
Podnoszę CPU do 30% przy tym kupowaniu, a oni to zrobili az do 100% ;o
btw. Zlagować się nie da przez kupowanie w tym "panelu", bynajmniej mi się nie udaje. Udaje mi się tylko i wyłącznie przez "buy bp sd". Jak zablokować tez "buy bp sd"? Gdzie jest za to odpowiedzialny kawałek? :P
 
Podnoszę CPU do 30% przy tym kupowaniu, a oni to zrobili az do 100% ;o
btw. Zlagować się nie da przez kupowanie w tym "panelu", bynajmniej mi się nie udaje. Udaje mi się tylko i wyłącznie przez "buy bp sd". Jak zablokować tez "buy bp sd"? Gdzie jest za to odpowiedzialny kawałek? :P

To teraz sobie wyobraz bota, ktory spamuje kupowanie. Moze zalagowac do 100%.
Hint 2: doNpcSellItem()
 
Dziwne, dodałem tam, reloadnąłem ale zero efektu. Myślałem, że to inny kawałek :D

LUA:
local exhaustionInSeconds = 3
        local storage = 34231
    local amount = amount or 1
    local subType = subType or 1
    local ignoreCap = ignoreCap and true or false
    local item = 0

        if(exhaustion.check(cid, storage) == TRUE) then
                return TRUE
        end

    if(isItemStackable(itemid)) then
        if(isItemRune(itemid)) then
            amount = amount * subType
            exhaustion.set(cid, storage, exhaustionInSeconds)
        end

        local count = amount
        repeat
            item = doCreateItemEx(itemid, math.min(100, count))
            if(doPlayerAddItemEx(cid, item, ignoreCap) ~= RETURNVALUE_NOERROR) then
                exhaustion.set(cid, storage, exhaustionInSeconds)
                return 0, 0
            end

            count = count - math.min(100, count)
        until count == 0
        return amount, 0
    end

    local a = 0
    if(inBackpacks) then
        local container = doCreateItemEx(backpack, 1)
        local b = 1
        for i = 1, amount do
            item = doAddContainerItem(container, itemid, subType)
            if(itemid == ITEM_PARCEL) then
                doAddContainerItem(item, ITEM_LABEL)
                exhaustion.set(cid, storage, exhaustionInSeconds)
            end

            if(isInArray({(getContainerCapById(backpack) * b), amount}, i)) then
                if(doPlayerAddItemEx(cid, container, ignoreCap) ~= RETURNVALUE_NOERROR) then
                    exhaustion.set(cid, storage, exhaustionInSeconds)
                    b = b - 1
                    break
                end

                a = i
                if(amount > i) then
                    container = doCreateItemEx(backpack, 1)
                    exhaustion.set(cid, storage, exhaustionInSeconds)
                    b = b + 1
                end
            end
        end

        return a, b
    end

    for i = 1, amount do
        item = doCreateItemEx(itemid, subType)
        if(itemid == ITEM_PARCEL) then
            doAddContainerItem(item, ITEM_LABEL)
            exhaustion.set(cid, storage, exhaustionInSeconds)
        end

        if(doPlayerAddItemEx(cid, item, ignoreCap) ~= RETURNVALUE_NOERROR) then
            exhaustion.set(cid, storage, exhaustionInSeconds)
            break
        end

        a = i
    end

    return a, 0
end
Powwalałem gdzie się tylko da, bo w zasadzie to nie wiem w którym momencie on daje item, co nie zmienia faktu, że skrypt powinien działać po wzmiance.

Polecam lekturkę REGULAMINU ! //by Don Daniello
 
Last edited by a moderator:
musisz resnac tfsa. Liby od NPC czytane sa przy starcie.
LUA:
 function doNpcSellItem(cid, itemid, amount, subType, ignoreCap, inBackpacks, backpack)
    local amount = amount or 1
    local subType = subType or 1
    local ignoreCap = ignoreCap and true or false
    local delay = 10
    local item = 0

    if(exhaustion.check(cid, 3455) == true) then
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESC, "Wait 10 seconds.")
        return 0, 0
    end
exhaustion.set(cid, 3455, delay)

EDIT: cos nie poszlo z editem? o_O

DD: Dziwne rzeczy się tu dzieją.
 
Last edited by a moderator:
Gówno prawda.
U mnie gdy lagowali to gość stał w domku i po prostu ''Relogał''
Gdy ja wszedłem na jego postać
Podczas Wylogowywywania się następował lagg na okolo 20sec~ Potem znów wszedłem kolejny relog = lagg !

Po restarcie serwera tego nie było ...
Wniosek
Gość to robi za pomocą własnej postaci nie żadnego
Npc/Skryptu/Drzwi Lvlowych =/
 
Gówno prawda.
U mnie gdy lagowali to gość stał w domku i po prostu ''Relogał''
Gdy ja wszedłem na jego postać
Podczas Wylogowywywania się następował lagg na okolo 20sec~ Potem znów wszedłem kolejny relog = lagg !

Po restarcie serwera tego nie było ...
Wniosek
Gość to robi za pomocą własnej postaci nie żadnego
Npc/Skryptu/Drzwi Lvlowych =/

Zobacz ile mial bp w bp w bp..
 
musisz resnac tfsa. Liby od NPC czytane sa przy starcie.
LUA:
 function doNpcSellItem(cid, itemid, amount, subType, ignoreCap, inBackpacks, backpack)
    local amount = amount or 1
    local subType = subType or 1
    local ignoreCap = ignoreCap and true or false
    local delay = 10
    local item = 0

    if(exhaustion.check(cid, 3455) == true) then
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESC, "Wait 10 seconds.")
        return 0, 0
    end
exhaustion.set(cid, 3455, delay)

EDIT: cos nie poszlo z editem? o_O

DD: Dziwne rzeczy się tu dzieją.

Nie działa, nie daje exsh. Jakieś inne rozwiązanie? Co jest wadliwe w tym skrypcie, że nie kuma co ma robić?
 
Back
Top