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

tfs 1.2 itemy za level problem


Jukesnk12

Rekomendowane odpowiedzi

Opublikowano

@rafaeruod razu cie oznacze bo jestes tu najabardziej kumaty 😄

 

 

 

 

https://otland.net/threads/tfs-1-2-give-item-on-level-advance-configurable-level-and-vocations.270804/

 

Korzystam z tego i zrobilem wszystko tak jak tam opisałeś i mam taki błąd:

 

Lua Script Error: [CreatureScript Interface]
data/creaturescripts/scripts/levelitems.lua:onAdvance
data/lib/core/tables.lua:17: bad argument #1 to 'pairs' (table expected, got number)
stack traceback:
        [C]: at 0x7ff7e6792e20
        [C]: in function 'pairs'
        data/lib/core/tables.lua:17: in function 'contains'
        data/creaturescripts/scripts/levelitems.lua:69: in function <data/creaturescripts/scripts/levelitems.lua:62>

pomożesz?

 

 

 

local rookVocations = { 0 }
local sorcererVocations = { 1, 5 }
local druidVocations = { 2, 6 }
local paladinVocations = { 3, 7 }
local knightVocations = { 4, 8 }
local mainVocations = { 1, 2, 3, 4, 5, 6, 7, 8 }
local allVocations = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }

local rewardsConfig = {
    -- 2cc and Magic Sword for every 20 level on main
    {
        level = 20,
        vocations = mainVocations,
        storage = 25100,
        items = {
            { 2160, 2 },
            { 2195, 1 },
        }
    },
    -- wand of inferno for 33 sorc
    {
        level = 33,
        vocations = sorcererVocations,
        storage = 25101,
        items = {
            { 2187, 1 },
        }
    },
	    -- axe/sword/club for 35 knight
    {
        level = 35,
        vocations = knightVocations,
        storage = 25101,
        items = {
            { 7456, 1 },
			{ 7451, 1 },
			{ 2451, 1 },
        }
    },
	    -- bow and arrow for paladin 
    {
        level = 30,
        vocations = paladinVocations,
        storage = 25101,
        items = {
            { 7438, 1 },
			{ 7364, 1 },
        }
    },
	    -- Hailstorm Rod for 33 druid
    {
        level = 33,
        vocations = druidVocations,
        storage = 25101,
        items = {
            { 2183, 1 },
        }
    },
}


function onAdvance(player, skill, oldLevel, newLevel)
    if skill ~= SKILL_LEVEL then
        return true
    end

    for i1, rewardConfig in pairs(rewardsConfig) do
        if newLevel >= rewardConfig.level then
            if table.contains(rewardConfig.vocations, player:getVocation():getId()) then
                if player:getStorageValue(rewardConfig.storage) < 1 then
                    player:setStorageValue(rewardConfig.storage, os.time())
                    for i2, item in pairs(rewardConfig.items) do
                        player:addItem(item[1], item[2])
                    end
                    player:getPosition():sendMagicEffect(CONST_ME_CRAPS)
                    player:sendTextMessage(MESSAGE_INFO_DESCR, "You received reward for getting " .. rewardConfig.level .. " level.")
                end
            end
        end
    end

    return true
end

 

 

 

<event type="advance" name="LevelItems" script="levelitems.lua" />       w     data/creaturescripts/creaturescripts.xml

player:registerEvent("LevelItems") w data/creaturescripts/scripts/login.lua

Opublikowano
1 godzinę temu, rafaeru napisał:

Dodaj na górze:


table.contains = function(array, value)
    for _, targetColumn in pairs(array) do
        if targetColumn == value then
            return true
        end
    end
    return false
end

 

 

Pomogło! Dzięki!

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...