Ir para conteúdo

zipter98

Herói
  • Total de itens

    2553
  • Registro em

  • Última visita

  • Dias Ganhos

    72

Tudo que zipter98 postou

  1. Que arena? O jogador iria voltar para a posição inicial alguns segundos depois ou permaneceria nesta outra dimensão?
  2. Poderia postar seu código de go/back (data/actions/scripts)? Se também puder informar os IDs das pokeballs do seu servidor, agradeço. PS: Me refiro às pokeballs usadas para conter pokémons, não para capturá-los.
  3. Pensei que o NPC trocasse os itens por um pokémon, não por um item (como foi dito no tópico). Enfim, a configuração é feita na tabela trade_pokes. Modelo: ["nome_do_pokémon"] = {itemid = ID_do_item_pedido_pelo_NPC, count = quantidade_do_item},
  4. E essa pokebag é o que, coleguinha? Um item, lol. Dê look nela, veja o ID e procure em actions.xml.
  5. Em actions.xml, provavelmente o diretório configurado na tag desta mochila é aquele ligado ao código que retorna quantos cassino coins você tem. Recomendaria dar uma olhada, procurando no arquivo mencionado usando CTRL + F com elemento de busca sendo o ID da pokebag.
  6. Abaixo de: if getPlayerStorageValue(cid, 17000) >= 1 then coloque: local fly_areas, canFly = { --{fromPos = {posição_superior_esquerda_da_área}, toPos = {posição_inferior_direita_da_área}}, {fromPos = {x = x, y = y, z = z}, toPos = {x = x, y = y, z = z}}, {fromPos = {x = x, y = y, z = z}, toPos = {x = x, y = y, z = z}}, --etc } for _, coordinates in pairs(fly_areas) do if isInRange(getThingPos(cid), coordinates.fromPos, coordinates.toPos) then canFly = true break end end if not canFly then doPlayerSendCancel(cid, "You can't fly here.") doTeleportThing(cid, frompos) return true end
  7. Se possível, poste o arquivo relacionado ao sistema de fly encontrado em data/movements/scripts.
  8. zipter98

    Tile por item!

    local itemid, count = xxx, yyy --Respectivamente, ID do item e quantidade. function onStepIn(cid, item, position, fromPosition) if getPlayerItemCount(cid, itemid) < count then doPlayerSendCancel(cid, "You do not have "..count.."x "..getItemNameById(itemid)..".") doTeleportThing(cid, fromPosition) end return true end
  9. Abaixo de: if getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and isInArray(fly, getCreatureName(getCreatureSummons(cid)[1])) then coloque: local fly_areas, canFly = { --{fromPos = {posição_superior_esquerda_da_área}, toPos = {posição_inferior_direita_da_área}}, {fromPos = {x = x, y = y, z = z}, toPos = {x = x, y = y, z = z}}, {fromPos = {x = x, y = y, z = z}, toPos = {x = x, y = y, z = z}}, --etc } for _, coordinates in pairs(fly_areas) do if isInRange(getThingPos(cid), coordinates.fromPos, coordinates.toPos) then canFly = true break end end if not canFly then return doPlayerSendCancel(cid, "You can't fly here.") end Já sobre o surf, as alterações serão feitas em um moveevent (data/movements/scripts). A lógica aplicada será basicamente a mesma do fly.
  10. local trade_pokes, options = { ["Shiny Charizard"] = {itemid = ID_do_item, count = quantidade}, ["Shiny Blastoise"] = {itemid = ID_do_item, count = quantidade}, }, {} for poke_name, trade_info in pairs(trade_pokes) do table.insert(options, poke_name.." - "..trade_info.count.."x "..getItemNameById(trade_info.itemid)) end local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg:lower(), "help") or msgcontains(msg:lower(), "trade") then selfSay("I can trade the following pokemons for the subsequent items. Which one do you wanna buy?", cid) doPlayerPopupFYI(cid, "*** TRADEABLE POKEMONS ***\n\n"..table.concat(options, "\n")) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then local poke = trade_pokes[msg] if poke then if doPlayerRemoveItem(cid, poke.itemid, poke.count) then selfSay("It was a pleasure to make bussiness with you! Make a good use of your new "..msg..".", cid) addPokeToPlayer(cid, msg, 0, nil, "normal") talkState[talkUser] = 0 else selfSay("You do not have enough itens to buy this pokemon, sorry.", cid) end else selfSay("Sorry, you probably wrote this pokemon's name wrong or I don't sell it. Make sure you're typing it in case-sensitive.") end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  11. Na spell, troque: setPlayerStorageValue(cid, config.storage, 1) por: setPlayerStorageValue(cid, config.storage, os.time() + 10) No creatureevent, troque: if getPlayerStorageValue(cid,config.storage) == 1 and isCreature(attacker) then por: if getPlayerStorageValue(cid, config.storage) > os.time() and isCreature(attacker) then E remova a linha: setPlayerStorageValue(cid,config.storage, 0)
  12. local outfit = xxx --ID da outfit. doSetCreatureOutfit(cid, {lookType = outfit}, 10000) doCreatureSetNoMove(cid, true) addEvent(function() if not isPlayer(cid) then return true end doCreatureSetNoMove(cid, false) end, 10000)
  13. Basta seguir o tutorial. Lá indica os arquivos que devem ser modificados.
  14. Primeiramente, instale esse creatureevent nas suas sources. Depois, crie um arquivo em data/creatureevents/scripts com extensão .lua e coloque o seguinte conteúdo: local poke_items = {} for _, poke in pairs(poke_item_table) do for level, itemid in pairs(poke) do table.insert(poke_items, itemid) end end function onMoveItem(cid, item) return not isInArray(poke_items, item.itemid) end Tag (não se esqueça de registrar o evento em login.lua): <event type="move" name="blockPokeItem" event="script" value="nome_do_arquivo.lua"/> Em qualquer arquivo da lib, coloque a seguinte tabela: poke_item_table = { ["Charmander"] = { --[level] = itemid, [1] = xxx, [5] = yyy, [8] = zzz, --etc }, } Em goback de actions, abaixo de: doSummonMonster(cid, i) coloque: local poke_item = poke_item_table[i] if poke_item then for level, itemid in pairs(poke_item) do if getPlayerLevel(cid) > level then doPlayerAddItem(cid, itemid, 1) end end end No mesmo arquivo, acima de: doRemoveCreature(z) coloque: local poke_item = poke_item_table[pokename] if poke_item then for level, itemid in pairs(poke_item) do if getPlayerItemCount(cid, itemid) > 0 then doPlayerRemoveItem(cid, itemid, 1) end end end Agora, em goback de creaturescripts, abaixo de: if #getCreatureSummons(cid) == 1 then coloque: local poke_item = poke_item_table[getCreatureName(getCreatureSummons(cid)[1])] if poke_item then for level, itemid in pairs(poke_item) do if getPlayerItemCount(cid, itemid) > 0 then doPlayerRemoveItem(cid, itemid, 1) end end end Finalmente, abaixo de: function onDeath(cid, deathList) coloque: local poke_item = poke_item_table[getCreatureName(cid)] if poke_item then for level, itemid in pairs(poke_item) do if getPlayerItemCount(cid, itemid) > 0 then doPlayerRemoveItem(cid, itemid, 1) end end end
  15. zipter98

    Spell que sobe

    local config = { effect = xxx, --Efeito. min = xxx, --Dano mínimo. max = xxx, --Dano máximo. area = createCombatArea{ --Área de dano. {0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 3, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 0} } } function onCastSpell(cid) local pos = getThingPos(cid) local damage_pos = pos pos.z = pos.z - 1 if hasSqm(pos) or pos.z < 0 or up.checkAround(pos) then return doPlayerSendCancel(cid, "You cannot use this spell here.") else gerarEmVolta(pos) doTeleportThing(cid, pos) pos.z = pos.z + 1 deletarEmVolta(pos) doAreaCombatHealth(cid, COMBAT_HOLYDAMAGE, damage_pos, config.area, -config.min, -config.max, config.effect) addEvent(function() pos.z = pos.z + 1 down.gerarEmVolta(pos) doTeleportThing(cid, pos) pos.z = pos.z - 1 deletarEmVolta(pos) end, 400) end return true end
  16. Ops, não li que a vassoura deve ficar no slot ammo. Tags do moveevent corrigidas.
  17. Qual a base? Se possível, poste order.lua, de data/actions/scripts (se ele existir, claro).
  18. O nível para obter os itens será o mesmo para todos?
  19. data/movements/scripts: local area = createCombatArea{ {1, 1, 1}, {1, 2, 1}, {1, 1, 1}, } function onStepIn(cid, item, position, fromPosition) doAreaCombatHealth(cid, 3080, getThingPos(cid), area, 0, 0, 255) return true end function onStepOut(cid, item, position, fromPosition) local oldtpos = fromPosition oldtpos.stackpos = STACKPOS_GROUND if getTileThingByPos(oldtpos).itemid >= 1 then doRemoveItem(getTileThingByPos(oldtpos).uid, 1) end return true end function onEquip(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Now you can fly!") doSetCreatureOutfit(cid, {lookType = FLY_OUTFIT}, -1) setPlayerStorageValue(cid, 17000, 1) return true end function onDeEquip(cid) if getTileInfo(getThingPos(cid)).itemid == 460 then doPlayerSendCancel(cid, "You can't stop flying here.") elseif getTileInfo(getThingPos(cid)).itemid >= 4820 and getTileInfo(getThingPos(cid)).itemid <= 4825 then doPlayerSendCancel(cid, "You can't stop flying here.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You stopped flying.") doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 17000, -1) return true end end Tags: <movevent type="Equip" itemid="xxx" slot="ammo" event="script" value="nome_do_arquivo.lua"/> <movevent type="DeEquip" itemid="xxx" slot="ammo" event="script" value="nome_do_arquivo.lua"/> <movevent type="StepOut" itemid="460" event="script" value="nome_do_arquivo.lua"/> <movevent type="StepIn" itemid="460" event="script" value="nome_do_arquivo.lua"/> data/talkactions/scripts: Tag: <talkaction words="/up;/down" case-sensitive="no" event="script" value="nome_do_arquivo.lua"/>
  20. Achei bem interessante. Seria tipo uma vassoura mágica que aparece em Harry Potter e no conceito estereotipado de bruxas?
  21. Os pontos são por storage ou database?
  22. Tópico movido para dúvidas / pedidos resolvidos.
  23. Tópico movido para dúvidas / pedidos resolvidos.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...