Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 12/15/22 em todas áreas

  1. systema de alavanca com 1 player

    carloos reagiu a Anderson Sacani por uma resposta no tópico

    1 ponto
    O que acontece é o seguinte: Agora que tu mudou o all_ready para maior que 0, ele vai fazer um loop e alterar o valor da storage para todos os players da tabela nomeada player, mesmo que não tenha todos os players, por tanto acontece este erro. Para arrumar isso, basta adicionar uma verificação de isPlayer dentro do loop, como isto: -- CONFIG -- local playersOnly = "no" local questLevel = 1 local STORAGE_BOSS_CD = 17457 local cdtime = 1 * 1 * 1 -- exhaust in seconds local room = { -- boss room fromX = 1802, fromY = 675, fromZ = 7, -------------- toX = 1868, toY = 724, toZ = 7 } local monster_pos = { [1] = { pos = { 1837, 716, 7 }, monster = "Cursed Prospector Soul" } } local players_pos = { { x = 1834, y = 702, z = 6, stackpos = 253 }, { x = 1834, y = 701, z = 6, stackpos = 253 }, { x = 1835, y = 701, z = 6, stackpos = 253 }, { x = 1836, y = 701, z = 6, stackpos = 253 }, { x = 1837, y = 701, z = 6, stackpos = 253 }, { x = 1838, y = 701, z = 6, stackpos = 253 }, { x = 1837, y = 702, z = 6, stackpos = 253 }, { x = 1836, y = 702, z = 6, stackpos = 253 }, { x = 1835, y = 702, z = 6, stackpos = 253 }, { x = 1838, y = 702, z = 6, stackpos = 253 } } local new_player_pos = { { x = 1830, y = 715, z = 7 }, { x = 1842, y = 715, z = 7 }, { x = 1836, y = 720, z = 7 }, { x = 1836, y = 710, z = 7 }, { x = 1836, y = 715, z = 7 }, { x = 1836, y = 715, z = 7 }, { x = 1835, y = 713, z = 7 }, { x = 1833, y = 721, z = 7 }, { x = 1838, y = 718, z = 7 }, { x = 1837, y = 718, z = 7 } } -- CONFIG END -- function onUse(cid, item, fromPosition, itemEx, toPosition) local all_ready, monsters, player, level = 0, 0, {}, 0 if item.itemid == 9826 then for i = 1, #players_pos do table.insert(player, 0) end for i = 1, #players_pos do player[i] = getThingfromPos(players_pos[i]) if player[i].itemid > 0 then if string.lower(playersOnly) == "yes" then if isPlayer(player[i].uid) == true then all_ready = all_ready + 1 else monsters = monsters + 1 end else all_ready = all_ready + 1 end end end if all_ready > 0 then for i = 1, #players_pos do player[i] = getThingfromPos(players_pos[i]) if isPlayer(player[i].uid) == true then if getPlayerStorageValue(player[i].uid, STORAGE_BOSS_CD) > os.time() then doPlayerSendCancel(cid, "Acesso so liberado a cada 20h.") return false end if getPlayerLevel(player[i].uid) >= questLevel then level = level + 1 end else level = level + 1 end end if level == #players_pos then if string.lower(playersOnly) == "yes" and monsters == 0 or string.lower(playersOnly) == "no" then for _, area in pairs(monster_pos) do doSummonCreature(area.monster, { x = area.pos[1], y = area.pos[2], z = area.pos[3] }) end for i = 1, #players_pos do if isPlayer(player[i].uid) then doSendMagicEffect(players_pos[i], CONST_ME_POFF) doTeleportThing(player[i].uid, new_player_pos[i]) doSendMagicEffect(new_player_pos[i], CONST_ME_ENERGYAREA) setPlayerStorageValue(player[i].uid, STORAGE_BOSS_CD, os.time() + cdtime) end end doTransformItem(item.uid, 9825) else doPlayerSendTextMessage(cid, 19, "Only players can do this quest.") return false end else doPlayerSendTextMessage(cid, 19, "All Players have to be level " .. questLevel .. " to do this quest.") return false end else doPlayerSendCancel(cid, "You need " .. table.getn(players_pos) .. " players to do this quest.") return false end elseif item.itemid == 9825 then local player_room = 0 for x = room.fromX, room.toX do for y = room.fromY, room.toY do for z = room.fromZ, room.toZ do local pos = { x = x, y = y, z = z, stackpos = 253 } local thing = getThingfromPos(pos) if thing.itemid > 0 then if isPlayer(thing.uid) == true then player_room = player_room + 1 end end end end end if player_room >= 1 then doPlayerSendTextMessage(cid, 19, "There is already a team in the quest room.") return false elseif player_room == 0 then for x = room.fromX, room.toX do for y = room.fromY, room.toY do for z = room.fromZ, room.toZ do local pos = { x = x, y = y, z = z, stackpos = 253 } local thing = getThingfromPos(pos) if thing.itemid > 0 then doRemoveCreature(thing.uid) end end end end doTransformItem(item.uid, 9826) end end return true end
  2. [TFS 1.5 - 8.60] STYLLER OT - 2023

    DiigooMix reagiu a luanluciano93 por uma resposta no tópico

    1 ponto
    voce provavelmente criou um char com group id 6, porem a acc também deve ter o type 6 ... https://github.com/luanluciano93/styller/blob/master/schema.sql#L6
  3. Nesse tópico você irá aprender a diferença entre ItemID, ActionID e UniqueID na criação de scripts. Primeiramente vamos começar com o ItemID, imagine que você está criando um simples script que o player pode ter acesso a uma área VIP, só que para ele entrar, primeiro precisará passar por um tile especial que possui o ID 471, até aqui tudo bem, só que qualquer player do servidor irá ter acesso também, já que não possui nenhuma restrição. Como poderíamos resolver isso? É aqui que entra a função da ActionID, com ela podemos dizer que os tiles que tiverem o valor 1000 no atributo ActionID, serão os tiles referentes a área VIP. Agora temos uma maneira de diferenciar os tiles comuns dos que são VIPs, veja como ficaria: (tiles sem as ActionIDs no valor de 1000) Repare que os 3 tiles tem apenas o atributo ItemID: [471]. Todos os players poderiam passar sem problemas… Caso você use apenas esse tipo de tile para as suas áreas VIPs então não tem problema, agora se você usa esses mesmos tiles para outras finalidades, então você precisará recorrer a ActionID, para que assim consiga diferenciá-los. Vamos adicionar as ActionIDs então: (tiles com as ActionIDs adicionados no valor de 1000) Pronto, agora apenas esse tiles terão a função de controlar a entrada para a área VIP! Bom, então você deve estar se perguntando, aonde que o UniqueID entra nessa história? O UniqueID é parecido com a ActionID com apenas uma diferença. O valor que você define para ele deve ser único para o servidor inteiro, caso ele se repita aparecerá um aviso na sua distro, mais ou menos como este… Repare quantos UniqueIDs duplicados existem, isso é ruim porque quanto mais tiver mais tempo demorará para o servidor iniciar, entre outras coisas como conflitos de scripts. Concluindo… O ItemID é usado quando você quer que todos os itens com esse ID façam uma ação, por exemplo a fishing rod, qualquer player pode comprar uma no NPC e começar a pescar. A ActionID é usado geralmente quando você quer diferenciar os mesmos itens um dos outros. Eu tenho 2 crystal rings só que apenas um deles vai me curar 500 de vida quando usá-lo. O UniqueID é quando você quer definir um ID único para um determinado item e só terá apenas um dele no servidor, um exemplo seria uma estátua que vai dar ao player um determinado item e só existirá somente uma dela no jogo. Tentei ser o mais breve e direto sobre esse assunto, espero que tenha ficado claro… Agora é só praticar!
  4. Novo no Tk! Explicação sobre ItemAttribute

    Spraiinedweb reagiu a Sun por uma resposta no tópico

    1 ponto
    ~ Olá galera, fiz parte do grupo por uns anos e fiquei 3 longos anos sem dar as caras Antes pessoas me ajudavam, hoje, consigo ajudar as pessoas, e queria compartilhar com vocês conhecimento sobre itemAttribute! essa função do tibia é maravilhosa, porém muitos não sabem seu potencial ou até mesmo não coloca ela em seus planos, ela é bem simples porém deixa duvida em muitos, principalmente servidores de Poketibia que utiliza isso em quase tudo. getItemAttribute(uid, key) -- ## oque é get? get em inglês seria algo como obter, então a função traduzida seria, obter atributo do item! ## -- getItemAttribute(uid, key) -- ## UID seria direcionado a qual item eu estaria perguntando seu attributo, lembrando que eu obtenho isso com a key ##-- --## quando se pesquisa pelo atributo do item, o mais importante seria a chave que está contido no item, a key, no caso é uma {string} doItemSetAttribute(uid, key, value) -- ## oque é set? set seria algo como "definir", usamos para "dar" algo, traduzido fica definir atributo no item doItemSetAttribute(uid, key, value) -- ## uid novamente! seria o item a ser setado o attributo, chave, será algo que iremos colocar, como "defense" ## -- -- ## oque seria value? value seria o valor, como 1, etc já que é defense podemos fazer se tiver mais, defende mais ## doItemEraseAttribute(uid, key) --## oque é do? do seria como "faça", na tradução seria, faça um corte no atributo do item doItemEraseAttribute(uid, key) --## uid novamente! será o item, a chave seria aque você setou no item, essa função retira o attributo!. ##-- exemplo dos Attribute sendo usados -- ## exemplo de catch seria o charmander ## -- Ensino = {"Charmander", 3200, 1515, 4} -- ## fazemos de exemplo que 3200 seria vida do charmander e 1515 seria o id do item do seu portfoil e 4 o sexo item = doCreateItemEx(12664, 1) -- ## 12664 seria o id da pokebola, 1 seria a quantia doPlayerAddItemEx(cid, item, true, CONST_SLOT_BACKPACK) doItemSetAttribute(item, "poke", 3200) -- ## vida do pokemon ## -- doItemSetAttribute(item, "nome", "Charmander") -- ## nome do pokemon ## -- doItemSetAttribute(item, "portrait", 1515) -- ## portrait do pokemon ## -- doItemSetAttribute(item, "gender", 4) -- ## 4 seria o sexo dele ## -- -- ## claro que ná hora de fazer seu system de catch irá ser assim, mas isso é apenas um exemplo de como irá funcionar ## -- -- ## lembrando que o valor do doItemSetAttribute pode ser além de numero. ## -- Espero que muitos pratiquem ai, e que vocês tenham conseguido entender o tópico e se aventurem para usar a função!. bye
  5. Descompilador Tibia Unbinder v0.3

    IGlanot reagiu a jadsonj65 por uma resposta no tópico

    1 ponto
    https://tibiaking.com/applications/core/interface/file/attachment.php?id=41106 Aí galera
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo