Jump to content
Close

Roy

Member
  • Content Count

    79
  • Joined

  • Last visited

  • Days Won

    1

Roy last won the day on December 20 2018

Roy had the most liked content!

3 Followers

About Roy

  • Rank
    Não deixe que um dia ruim transforme sua vida ruim.

Profile Information

  • I am
    OT-Admin

Recent Profile Visitors

628 profile views
  1. Troque essa linha: if target == isMonster or isCreature then Por essa e veja se funciona. if target == isPlayer then
  2. Roy

    Outro Pedido de Logo

    Que combine com o Site. Telara.rar
  3. Afinal qual você vai usar, o com Party ou que o DEKU pediu? Enfim mude esse: doSetItemActionId(uid, 9003) Por esse: doItemSetAttribute(uid, "aid", 9003) Se não funcionar verifique se em seu 050-function tem essa função. function doItemSetActionId(uid, aid) return doItemSetAttribute(uid, "aid", aid) end Se não tiver adicionar. e testa.
  4. Tem tudo aqui no TK amigo só usar a barra de pesquisa e você encontra o que procura, principalemte como criar um client próprio e deixar seu site Online. Sobre as configurações não é um bicho de 7 cabeças enfim, só postar aqui o erro ou, o que você deseja que o pessoal que souber vai lhe ajudar.
  5. É o seguinte ele irá castar a Spell em alguém tipo. Exiva Black Fenix E ambos terá que está em party(somente em party) e então serão teleportado para o local. O portal criado não irá funcionar mais até porque somente ambos irá poder passar pelo portal do outro lado no caso. adicionar na tag xml da spell: needtarget="1" params="1" range="1" range="1" = distância necessária para poder castar a spell. 1 = Player próximo um do outro. E irá ficar assim: <instant name="test" words="test" lvl="0" needtarget="1" params="1" range="1" maglv="0" manapercent="0" soul="0" exhaustion="1000" prem="0" enabled="1" script="test.lua"/> Spell .lua ------------------------------------------------------------------------------------------------------------------- Sim tem sim, mas você vai adicionar uma action no piso para onde o Player irá ser teleportado. Tag Movements.xml <movevent type="StepIn" actionid="9002" event="script" value="Piso-TPos.lua"/> Piso-TPos.lua ------------------------------------------------------------------------------------------------------------------- Porque só salva a posição do Jogador que usou a spell. doSavePlayerPos(cid, config.storage, getThingPos(cid)) Eu acho que tive uma solução para todos que entrarem no portal criado. Substituir esse no lugar do outro spell .lua Movements.xml adicionar essa tag. <movevent type="StepIn" actionid="9003" event="script" value="teleport2.lua"/> em Movements/scripts criar um arquivo com nome. Teleport2.lua e adicionar isso dentro. OBS: Lembrando que o tempo do teleport criado tem que ser menor que o tempo para entrar no outro Teleport assim o player(s) voltará para o local de onde o Teleport foi criado.
  6. Ter tem,mas não acho necessário é só o player castar a spell e outro jogador pode entrar
  7. Poxa cara. Tudo bem então Você vai fazer o seguinte, vai criar a Spell e colocar o script dela acima Ok. Agora você vai adicionar essas duas linhas no seu movements.xml <movevent type="StepIn" actionid="9000" event="script" value="piso.lua"/> <movevent type="StepIn" actionid="9001" event="script" value="teleport.lua"/> você pode colocar o nome que quiser o cria uma arquivo .lua com o script de cada.
  8. <movevent type="StepIn" actionid="9000" event="script" value="piso.lua"/> <movevent type="StepIn" actionid="9001" event="script" value="teleport.lua"/> No piso onde o player precisa passar para acessar o portal coloca action 9000 e no Teleport que o player irá ser teleportado 9001
  9. É o seguinte o portal será criado Ok, mas o tempo do outro portal deve ser maior senão o player irá voltar para o local onde ele foi teleportado ou seja, não o local onde o portal foi criado, a partir do momento em que o portal criado for removido ao ele usar o outro portal ele será teleportado para o Removido, Acho que deu para entender. Spell local config = {storage = 8001}--Seleciona a storage 8001 e separa entre 3, exemplo - "8001, 8002, 8003", Entao nao use nenhuma dessas 3 storages em outros scripts. local cfg = {storage = 8000, Tempo = 1*60} --1 minuto. Tempo que poderá passar no piso ao redor do Teleport. local function doSavePlayerPos(uid, storage, pos) doCreatureSetStorage(uid, storage, pos.x) doCreatureSetStorage(uid, storage+1, pos.y) doCreatureSetStorage(uid, storage+2, pos.z) end function onCastSpell(cid, var) ---------------------------------------------------------------------------------------------------------------------------------------------------------------- local TeleportID = 1387 local Teleport = { config = { ToPos = {x = 309, y = 287, z = 7}, -- Local onde o jogador será teleportado Pos = getCreaturePosition(cid), Time = 10, --Quanto tempo irá durar o Teleport }, } function removeTeleport(Teleport) local t = getTileItemById(Teleport.config.Pos, TeleportID) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(Teleport.config.Pos, CONST_ME_POFF) end end doCreateTeleport(TeleportID, Teleport.config.ToPos,Teleport.config.Pos) addEvent(removeTeleport, Teleport.config.Time * 1000, Teleport) setPlayerStorageValue(cid, cfg.storage, os.time()+cfg.Tempo) doSavePlayerPos(cid, config.storage, getThingPos(cid)) ---------------------------------------------------------------------------------------------------------------------------------------------------------------- return TRUE end Movements.xml <movevent type="StepIn" actionid="9000" event="script" value="piso.lua"/> <movevent type="StepIn" actionid="9001" event="script" value="teleport.lua"/> piso.lua function onStepIn(cid, item, position, fromPosition) local config = {storage = 8000} if (getPlayerStorageValue(cid, config.storage) <= os.time()) then return true else doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "Você deve aguardar " ..getPlayerStorageValue(cid, config.storage) - os.time().." para poder entrar nesse portal!") end return true end Teleport.lua function onStepIn(cid, item, position, fromPosition) local config = {storage = 8001} local function getSavedPlayerPos(uid, storage) return {x = getCreatureStorage(uid, storage), y = getCreatureStorage(uid, storage+1), z = getCreatureStorage(uid, storage+2)} end if (getPlayerStorageValue(cid, config.storage) <= os.time()) then doTeleportThing(cid, getSavedPlayerPos(cid, config.storage)) else doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "Você deve aguardar " ..getPlayerStorageValue(cid, config.storage) - os.time().." para poder entrar nesse portal!") end return true end
  10. Veja ai se vai funconar de uma meneira que você queira. <?xml version="1.0" encoding="UTF-8"?> <npc name="ItemsDonor" script="data/npc/scripts/donor.lua" speed="0" floorchange="0"> <health now="100" max="100"/> <look type="129" head="78" body="88" legs="0" feet="88" addons="3"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME| eu sou um vendendor muito conhecido pelos belissimos itens que vendo, tenho certeza que não irá se arrepender!" /> <parameter key="message_walkaway" value="Volte Sempre."/> <parameter key="message_farewell" value="Espero sua volta!" /> </parameters> </npc> Quando ele comprar até o storage chegar em 6 ele não pdoerá comprar mais, mas ai com um pouco de conhecimento você pode aumentar e um Scriper pode melhorar de uma forma que possa diminuir o script e ficar melhor. local cfg ={ price = 100 } 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 isInArray({"donate","donor"}, msg) then if getPlayerStorageValue(cid, 2357) <= 0 then npcHandler:say('Você gostaria de comprar um {item donor} por {'..cfg.price..' gold\'s ingot\'s}', cid) talkState[talkUser] = 1 elseif getPlayerStorageValue(cid, 2357) == 1 then npcHandler:say('Você gostaria de comprar um {item donor} por {'.. cfg.price*5 ..' gold\'s ingot\'s}', cid) --*5 = 500 talkState[talkUser] = 2 elseif getPlayerStorageValue(cid, 2357) == 2 then npcHandler:say('Você gostaria de comprar um {item donor} por {'.. cfg.price*10 ..' gold\'s ingot\'s}', cid) --*10 = 1000 talkState[talkUser] = 3 elseif getPlayerStorageValue(cid, 2357) == 3 then npcHandler:say('Você gostaria de comprar um {item donor} por {'.. cfg.price*15 ..' gold\'s ingot\'s}', cid) talkState[talkUser] = 4 elseif getPlayerStorageValue(cid, 2357) == 4 then npcHandler:say('Você gostaria de comprar um {item donor} por {'.. cfg.price*20 ..' gold\'s ingot\'s}', cid) talkState[talkUser] = 5 elseif getPlayerStorageValue(cid, 2357) == 5 then npcHandler:say('Você gostaria de comprar um {item donor} por {'.. cfg.price*30 ..' gold\'s ingot\'s}', cid) talkState[talkUser] = 6 end elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if getPlayerItemCount(cid, 9971) >= cfg.price then doPlayerTakeItem(cid,9971,cfg.price) doPlayerAddItem(cid,2160,1) setPlayerStorageValue(cid,2357,1) npcHandler:say('Foi um prazer negociar com você!', cid) else npcHandler:say('Volte quando tiver os {'..cfg.price..' gold\'s ingot\'s}', cid) end elseif(msgcontains(msg, 'yes') and getPlayerStorageValue(cid,2357) == 1 and talkState[talkUser] == 2) then if getPlayerItemCount(cid, 9971) >= cfg.price*5 then doPlayerTakeItem(cid,9971,cfg.price*5) doPlayerAddItem(cid,2160,2) setPlayerStorageValue(cid,2357,2) npcHandler:say('Foi um prazer negociar com você!', cid) else npcHandler:say('Volte quando tiver os {'.. cfg.price*5 ..' gold\'s ingot\'s}', cid) end elseif(msgcontains(msg, 'yes') and getPlayerStorageValue(cid,2357) == 2 and talkState[talkUser] == 3) then if getPlayerItemCount(cid, 9971) >= cfg.price*10 then doPlayerTakeItem(cid,9971,cfg.price*10) doPlayerAddItem(cid,2160,3) setPlayerStorageValue(cid,2357,3) npcHandler:say('Foi um prazer negociar com você!', cid) else npcHandler:say('Volte quando tiver os {'.. cfg.price*10 ..' gold\'s ingot\'s}', cid) end elseif(msgcontains(msg, 'yes') and getPlayerStorageValue(cid,2357) == 3 and talkState[talkUser] == 4) then if getPlayerItemCount(cid, 9971) >= cfg.price*15 then doPlayerTakeItem(cid,9971,cfg.price*15) doPlayerAddItem(cid,2160,4) setPlayerStorageValue(cid,2357,4) npcHandler:say('Foi um prazer negociar com você!', cid) else npcHandler:say('Volte quando tiver os {'.. cfg.price*15 ..' gold\'s ingot\'s}', cid) end elseif(msgcontains(msg, 'yes') and getPlayerStorageValue(cid,2357) == 4 and talkState[talkUser] == 5) then if getPlayerItemCount(cid, 9971) >= cfg.price*20 then doPlayerTakeItem(cid,9971,cfg.price*20) doPlayerAddItem(cid,2160,5) setPlayerStorageValue(cid,2357,5) npcHandler:say('Foi um prazer negociar com você!', cid) else npcHandler:say('Volte quando tiver os {'.. cfg.price*20 ..' gold\'s ingot\'s}', cid) end elseif(msgcontains(msg, 'yes') and getPlayerStorageValue(cid,2357) == 5 and talkState[talkUser] == 6) then if getPlayerItemCount(cid, 9971) >= cfg.price*30 then doPlayerTakeItem(cid,9971,cfg.price*30) doPlayerAddItem(cid,2160,6) setPlayerStorageValue(cid,2357,6) npcHandler:say('Foi um prazer negociar com você!', cid) else npcHandler:say('Volte quando tiver os {'.. cfg.price*30 ..' gold\'s ingot\'s}', cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  11. Nada tá dano certo porque o cara já começa com um dia de Premium account então o script vai checar se é somente premium account e vai mudar o storage. Agora na hora de comprar uma PA no NPC ou item que der os dias de Premium adicione essa linha abaixo: setPlayerStorageValue(cid, 45586, 1) e mude os demais pra esse: Assim irá checar se é Premium Account e com a Storage que foi dada pelo NPC/Item que da a Premium comprada. if isPremium(cid) == TRUE and getPlayerStorageValue(cid, 45586) == 1 then Veja ai se vai funcionar.
  12. Rapais veja ai se funciona do jeito que você quer. Obs: Caso ele não transforme é só relogar. Em Items.xml altere para esse. <item id="2123" article="a" name="ring of the sky"> <attribute key="weight" value="40" /> <attribute key="slotType" value="ring" /> <attribute key="stopduration" value="1" /> <attribute key="showduration" value="1" /> <attribute key="transformEquipTo" value="2124" /> </item> <item id="2124" article="a" name="crystal ring"> <attribute key="weight" value="90" /> <attribute key="slotType" value="ring" /> <attribute key="showduration" value="1"/> <attribute key="decayTo" value="0" /> <attribute key="duration" value="21600"/> <attribute key="transformDeEquipTo" value="2123" /> </item> Em Movements.xml Altere para esse. <movevent type="Equip" itemid="2123" slot="ring" event="function" value="onEquipItem"/> <movevent type="DeEquip" itemid="2123" slot="ring" event="function" value="onDeEquipItem"/> <movevent type="Equip" itemid="2124" slot="ring" event="script" value="Anel.lua"/> <movevent type="DeEquip" itemid="2124" slot="ring" event="script" value="Anel.lua"/> Anel.lua
  13. Baixe e instale. Caso dê erro de DLL me informe. Erro_0xc000007b.rar

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Create New...