-
Total de itens
303 -
Registro em
-
Última visita
-
Dias Ganhos
4
Posts postados por wevertonvrb
-
-
OK MAS...
preciso de + detalhes de que jeito você quer??
1- você usa a chave no bau.... então ele ira virar um bau aberto e pronto?
2- voce usa a chave no bau.... então ele ira virar um bau aberto e você também ganha algum outro item
3- voce usa a chave no bau.... então ele ira sumir e você ganha algum outro item
4- caso n seja nenhum desses me diga exatamente oque acontece ao usar a chave
-
Em 02/11/2017 at 11:54, digocnt disse:
Amigo, muito obrigado pela resposta.
o arquivo tem essa function sim, por via das duvidas até copiei suas funções e colei por cima..não sei o que fazer mais, segue meu newstatussyst
Obrigado
tenta assim
REVIVE.LUASpoilerlocal storage = 121212 --storage da quest
function onUse(cid, item, frompos, item2, topos)
if getPlayerStorageValue(cid, storage) == 0 then
doPlayerSendCancel(cid, "You already have used the limit of revives for this quest.")
return true
elseif getPlayerStorageValue(cid, 990) >= 1 then
doPlayerSendCancel(cid, "You can't use revive during gym battles.")
return true
elseif getPlayerStorageValue(cid, 52481) >= 1 then
doPlayerSendCancel(cid, "You can't do that while a duel.") --alterado v1.6
return true
elseif isPlayer(item2.uid) then
doPlayerSendCancel(cid, "Please, use revive only on pokeballs.")
return true
endfor a, b in pairs (pokeballs) do
if not item2.itemid == b.on or not item2.itemid == b.off then
doPlayerSendCancel(cid, "Please, use revive only on pokeballs.")
return true
end
endlocal pokeball = getPlayerSlotItem(cid, 8)
for a, b in pairs (pokeballs) do
if item2.itemid == b.on or item2.itemid == b.off then --edited deixei igual ao do PXG
doTransformItem(item2.uid, b.on)
doSetItemAttribute(item2.uid, "hp", 1)
for c = 1, 15 do
local str = "move"..c
setCD(item2.uid, str, 0)
end
setCD(item2.uid, "control", 0)
setCD(item2.uid, "blink", 0) --alterado v1.6
doSendMagicEffect(getThingPos(cid), 13)
doRemoveItem(item.uid, 1)
doCureBallStatus(getPlayerSlotItem(cid, 8).uid, "all")
doCureStatus(cid, "all", true)
cleanBuffs2(item2.uid) --alterado v1.5
if getPlayerStorageValue(cid, storage) > 0 then
setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage)-1)
end
return true
end
end
return true
end -
3 horas atrás, gelorobo disse:
vlw pela tençao por so queria o item q ta dentro da base so ruby n presio de + nada pq sei q niguen ia desopliar
ps vcs duvido q conseguirao pegar sprite duvido
tenho ele descopilado em um pen driver aqui, vou ver se encontro e posto pra ti
-
Em 20/10/2017 at 16:36, Gabrieltxu disse:
Nem lembro mais kkkk, baixa ai e ve você mesmo
bom na verdade não tem TM nesse server não man
eu procurei nas pastas lib, actions, mods, item e xml e em nenhum arquivo possui nada relacionado a TM system -
Em 05/10/2017 at 12:24, Dandjes disse:
Já ta lá tudo isso, amigo. O problema é só que o script cria o tp e remove a pedra mas nao tira o tp nem recoloca a pedra...
caso ninguem ajude voce pode fazer por decay
-
Em 22/11/2016 at 07:50, Pedro disse:
Bom fiz algumas alterações no mapa, Arrumei alguns scripts que estava dando erro na distro!
Distro esta limpa nem duplicates nada..
Esta configurado para site, Boa sorte em seus projetos!
Level system (apenas no summon);
Task system, com contagem;
Mega Evolution(configurado apenas em um pokémon);
HM System;Addon system;
Boost;
catch com nova pokébola GS;Profissão;
Outland com seus devidos pokes;
Order; 95% Se não me ingano falta control mind
Blink; 100%
Teleport; 100% antes morria poke ao teleporta agora configurei para voltar para a ball
Nurse; 100%
Bike;Novas Sprites adicionadas
Novos atacks adionados alguns refeito
ERROS:
SURF,FLY e RIDE Bugados!
Tv eu até tinha arrumado mas upei o serve sem ele arrumado mas dps arrumo.
• Prints•
-DOWNLOADS
Serve+source- http://www.4shared.com/rar/VsXRGLvJba/SelestServer.html?
Client+source- http://www.4shared.com/rar/JiVmAQ9Xba/ClientSelest.html?
-SCAN
Créditos a equipe do pokecamp e a min por trazer essa pequena atualizaçãoBluester;
PokeCamp
Wend;
Brun123;Deadpool;
Blast(Eu)
queria ele sem lvl system
-
2 horas atrás, bombermanincius disse:
Ola coloquei uns pokes no servidor evolution fiz praticamente tudo correto no Monster no lib no action no iten editor mais n consigo dar /cb nem /s e o poke tem vida infinita alguem pode me ajudar?
man isso ja aconteceu comigo e o erro era o seguinte
voce em algum lugar deixou com letra minuscula onde deveria estar maiuscula
exemplo
onde deveria estar escrito Charmander voce deixou escrito charmander com letra minuscula
verifique tudo
-
Em 08/08/2017 at 20:06, ERAGON GAMER disse:
Mas meu OLD client quando abro as sprites no object builder cliko em extender ou Transparenter aparece varios erros no object e etc man
abra sem marcar extended e transparence, voce marca isso apenas na hora de salvar
-
4 horas atrás, Leoxtibia disse:
Mas que porcaria, tinha colocado um "s" a mais em movestable.
local lockedcds = "Pyschic"function onUse(cid, item, frompos, item2, topos) local pb = getPlayerSlotItem(getCreatureMaster(item2.uid), 8) local ball = getPlayerSlotItem(cid, CONST_SLOT_FEET).uid local tocopy = item2.uid if isMonster(item2.uid) then if hasMove(lockedcds) then doPlayerSendCancel(cid, "Seu pokemon possui o movimento " .. lockedcds .. ".") else doSendFlareEffect(getThingPos(item2.uid)) doItemSetAttribute(pb.uid, "megaspell1", 1) doRemoveItem(item.uid, 1) end endendfunction hasMove(lockedCds) local total_moves = 0 for k, v in pairs(movestable[getCreatureName(tocopy)]) do total_moves = total_moves + 1 end for i = 1, total_moves do if movestable[getCreatureName(tocopy)]["move" ..i].name == lockedCds then return true end endreturn falseend
GEROU ESSE ERRO
Spoiler[06/08/2017 01:25:39] [Error - Action Interface]
[06/08/2017 01:25:39] data/actions/scripts/Tecnical Move/Tm 29 - Psychic.lua:onUse
[06/08/2017 01:25:39] Description:
[06/08/2017 01:25:39] (luaGetCreatureName) Creature not found
[06/08/2017 01:25:39] [Error - Action Interface]
[06/08/2017 01:25:39] data/actions/scripts/Tecnical Move/Tm 29 - Psychic.lua:onUse
[06/08/2017 01:25:39] Description:
[06/08/2017 01:25:39] ...ta/actions/scripts/Tecnical Move/Tm 29 - Psychic.lua:23: bad argument #1 to 'pairs' (table expected, got nil)
[06/08/2017 01:25:39] stack traceback:
[06/08/2017 01:25:39] [C]: in function 'pairs'
[06/08/2017 01:25:39] ...ta/actions/scripts/Tecnical Move/Tm 29 - Psychic.lua:23: in function 'hasMove'
[06/08/2017 01:25:39] ...ta/actions/scripts/Tecnical Move/Tm 29 - Psychic.lua:7: in function <...ta/actions/scripts/Tecnical Move/Tm 29 - Psychic.lua:2>
17 horas atrás, Poccnn disse:CONTINUOU COM O MESMO ERRO QUE FALEI, GERA ERRO NO MOVE INESISTENTE
SE VAI ATE O M5 GERA O ERRO NO M6
A VERIFICAÇÃO NÃO ESTA PARANDO NO ULTIMO MOVE
-
3 horas atrás, Leoxtibia disse:
Tente assim, jovem:
local lockedcds = "Pyschic"function onUse(cid, item, frompos, item2, topos) local pb = getPlayerSlotItem(getCreatureMaster(item2.uid), 8) local ball = getPlayerSlotItem(cid, CONST_SLOT_FEET).uid local tocopy = item2.uid if isMonster(item2.uid) then if hasMove(lockedcds) then doPlayerSendCancel(cid, "Seu pokemon possui o movimento " .. lockedcds .. ".") else doSendFlareEffect(getThingPos(item2.uid)) doItemSetAttribute(pb.uid, "megaspell1", 1) doRemoveItem(item.uid, 1) end endendfunction hasMove(lockedCds) local total_moves = 0 for k, v in pairs(movestables[getCreatureName(tocopy)]) do total_moves = total_moves + 1 end for i = 1, total_moves do if movestables[getCreatureName(tocopy)]["move" ..i].name == lockedCds then return true end endreturn falseend
deu esse erro
Spoiler[05/08/2017 01:24:45] [Error - Action Interface]
[05/08/2017 01:24:45] data/actions/scripts/megaspell1.lua:onUse
[05/08/2017 01:24:45] Description:
[05/08/2017 01:24:45] (luaGetCreatureName) Creature not found
[05/08/2017 01:24:45] [Error - Action Interface]
[05/08/2017 01:24:45] data/actions/scripts/megaspell1.lua:onUse
[05/08/2017 01:24:45] Description:
[05/08/2017 01:24:45] data/lib/some functions.lua:2090: attempt to index global 'movestables' (a nil value)
[05/08/2017 01:24:45] stack traceback:
[05/08/2017 01:24:45] data/lib/some functions.lua:2090: in function 'hasMove'
[05/08/2017 01:24:45] ...ta/actions/scripts/megaspell1.lua:7: in function <...ta/actions/scripts/megaspell1.lua:2>
uma observação,
eu coloquei a função no some functions na pasta lib
mas caso eu deixe ela junto do script gera o mesmo erro
-
10 horas atrás, Poccnn disse:
for index = 1,14 do
if movestable[getCreatureName(tocopy)]["move"..index] and not (isInArray(lockedcds, movestable[getCreatureName(tocopy)].move1.name)) then
doSendFlareEffect(getThingPos(item2.uid))
doItemSetAttribute(pb.uid, "megaspell1", 1)
doRemoveItem(item.uid, 1)else
doPlayerSendCancel(cid, "seu pokemon possui o movimento Psychic .")
end
enddo jeito que voce colocou verifica apenas o m1 pois
move1=m1
e caso eu coloque para verificar as outras linhas do jeito que estava antes esta dando o mesmo erro, so mudou o numero da linha mas é o mesmo erro se o pokemon tem ate o move5 gera o erro no move6
tem q arruamr uma maneira de parar a verificação no move5 caso o pokemon tenha apenas ate o move 5
o erro acontece porque.
digamos q o pokemon tenha do move1 ao move5 e tenha a spell no move4
então ele para a verificação no move4 e retorna que o pokemon possui a spell
mas caso o pokemon não possui a spell ele vai pular pro move6 para verificalo tambem, porem o pokemon tem apenas ate o move5 o erro acontece ao tentar verificar um move que o pokemon não possui
-
Em 20/07/2017 at 07:36, Nogard disse:
Há algo bem bacana em alguns jogos famosos, que lhe permite presentear um amigo com certos itens. Como em League of Legends, não é bom dar de cara com uma skin ou um champion de presente? Agora você pode ter algo similar em seu servidor.
talkactions.xml:
<talkaction words="/giveto" event="script" value="arquivo.lua"/>
arquivo.lua:
--Give a present!--function onSay (cid, words, param) local s = string.explode(param, ",") if (param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Param required.") return true end if not isPlayer(getPlayerByNameWildcard(s[1])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") return true end if s[1] == getCreatureName(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You cannot give yourself.") return true end if s[3] == nil or s[3] == "" or s[2] == nil then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Write the item and value.") return true end -- local arr = { items = {2148, -- Items possible to give 2160, 2463}, } local g = "Items that you can give:\n\n"..getItemNameById(arr.items[1]).."\nDescription: A coin made of gold, nice present.\n\n".. getItemNameById(arr.items[2]).."\nDescription: ~~~~~~~~~\n\n" --[[-- For add more descriptions, copy this: ..getItemNameById(arr.items[Position of value in array]).."\n Description: ~~~~~~~~~\n\n" ]]-- if not isNumber(s[2]) then if isInArray(arr.items, getItemIdByName(s[2])) then if (doPlayerRemoveItem(cid, getItemIdByName(s[2]), s[3]) == true) then local bag = doPlayerAddItem(getPlayerByName(s[1]), 1990, 1) doAddContainerItem(bag, getItemIdByName(s[2]), s[3]) doSendAnimatedText(getCreaturePosition(cid), "Sucess!", COLOR_GREEN) doPlayerSendTextMessage(getPlayerByNameWildcard(s[1]), MESSAGE_STATUS_CONSOLE_ORANGE, "You received "..s[3].." "..s[2].." from "..getCreatureName(cid)..".") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You gave "..s[3].." "..s[2].." to "..s[1]..".") doSendMagicEffect(getCreaturePosition(getPlayerByName(s[1])), 28) if s[4] ~= nil then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Message: "..s[4].."\n Respectfully, "..getCreatureName(cid)..".") else return true end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You dont have this ammount.") return true end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You cannot give this item. Please, check list.") doShowTextDialog(cid, 2105, g) return true end return true end --- if isInArray(arr.items, s[2]) then if (doPlayerRemoveItem(cid, s[2], s[3])== true) then local bag = doPlayerAddItem(getPlayerByName(s[1]), 1990, 1) doAddContainerItem(bag, s[2], s[3]) doSendAnimatedText(getCreaturePosition(cid), "Sucess!", COLOR_GREEN) doPlayerSendTextMessage(getPlayerByNameWildcard(s[1]), MESSAGE_STATUS_CONSOLE_ORANGE, "You received "..s[3].." "..getItemNameById(s[2]).." from "..getCreatureName(cid)..".") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You gave "..s[3].." "..getItemNameById(s[2]).." to "..s[1]..".") doSendMagicEffect(getCreaturePosition(getPlayerByName(s[1])), 28) if s[4] ~= nil then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Message: "..s[4].."\n Respectfully, "..getCreatureName(cid)..".") else return true end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You dont have this ammount.") return true end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You cannot give this item. Please, check list.") doShowTextDialog(cid, 2105, g) return true end return true end
Exemplos de uso, você tem a opção de adicionar uma frase que será visualizada por quem receber o presente:
sem frase: /giveto Player, gold coin (or item id), 41
15:25 You give 41 gold coin to Player.
15:25 You received 41 gold coin from Nogard.
com frase: /giveto Nogard, gold coin, 89, Merry Christmas! (:
20:31 You received 90 gold coin from Player.
20:31 Message: Merry Christmas! (:
Respectfully, Player.
Você também precisará configurar quais itens poderão ser enviados, como prevenção do envio de itens inúteis por qualquer um:
local arr = { items = {2148, -- Items possible to give 2160, 2463}, }
É isso.
esses presentes vão pra onde? dp? player??
e se o player estiver offfline? recebe do mesmo jeito?
-
sem contar q agora ta mostrando apenas o reset, o boost sumiu
-
boa noite gente o meu script deve adicionar um atributo na pokeball do pokemon que esta sumonado logo apos usar um item nele
para os que so entendem de tibia (o meu script deve adicionar um atributo na bota do player logo apos usar um item no seu próprio summon)
E MEU SCRIPT JA ESTA FAZENDO ISSO, ESSA PARTE JA FUNCIONAporem eu quero que esse atributo seja adicionado na pokeball (bota) apenas se o pokemon (summon) não tenha uma spell especifica
que seria a spell "Psychic"
então eu consegui também fazer ele não adicionar o atributo nos pokemons que tenha essa spell
POREM OS POKEMON QUE NÃO TEM A SPELL E QUE DEVIA ADICIONAR O ATRIBUTO TA GERANDO ERRO
QUERO ARRUMAR ESSE ERRO E PESSO AJUDA NISSO, POR FAVORSCRIPT ATUAL
Spoilerfunction onUse(cid, item, frompos, item2, topos)
local pb = getPlayerSlotItem(getCreatureMaster(item2.uid), 8)
local ball = getPlayerSlotItem(cid, CONST_SLOT_FEET).uid
local tocopy = item2.uid
local lockedcds = {"Psychic"}
if not isCreature(item2.uid) or item2.uid == cid or not isSummon(item2.uid) or (item2.uid) == ball then
return doPlayerSendCancel(cid, "Voce deve usar o item em seu pokemon!")
endif not pb then
return true endif isMonster(item2.uid) then
if not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move1.name) and
not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move2.name) and
not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move3.name) and
not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move4.name) and
not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move5.name) and
not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move6.name) and
not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move7.name) and
not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move8.name) and
not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move9.name) and
not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move10.name) and
not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move11.name) and
not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move12.name) then
doSendFlareEffect(getThingPos(item2.uid))
doItemSetAttribute(pb.uid, "megaspell1", 1)
doRemoveItem(item.uid, 1)
else
doPlayerSendCancel(cid, "seu pokemon possui o movimento Psychic .")
end
end
return true
end---- pokemon q usei pra teste venonat que possui o psychic no m5 e possui ate o m8 total de 8 moves(spells) usei para demonstar --http://prntscr.com/g435tc
---- usando o item nele para demonstar --http://prntscr.com/g4388z -- podem ver que apareceu a mensagem (seu pokemon possui o movimento Psychic)
----o segundo pokemon q usei é o Blastoise que possui um total de 10 moves(spells)e nenhuma delas é o psychic --http://prntscr.com/g43913
----quando eu uso o item nele aparece a mensaguem (you cannot use this object) e gera erro na distroSpoiler[03/08/2017 20:02:44] [Error - Action Interface]
[03/08/2017 20:02:44] data/actions/scripts/megaspell1.lua:onUse
[03/08/2017 20:02:44] Description:
[03/08/2017 20:02:44] ...ta/actions/scripts/megaspell1.lua:23: attempt to index field 'move11' (a nil value)
[03/08/2017 20:02:44] stack traceback:
[03/08/2017 20:02:44] ...ta/actions/scripts/megaspell1.lua:23: in function <...ta/actions/scripts/megaspell1.lua:1>
e devia adicionar o atributo -- --http://prntscr.com/g439ng
lembrando tambem que o blastoise possui ate o m10 e o erro acontece no m11, um movimento que ele não tem,
acredito que o erro acontece ao verificar um movimento inexistente
caso eu teste em outro pokemon que possua 5 moves ou seja, ate o m5 e ele tambem não tenha o movimento Psychic o erro sera gerado no m6, ou seja em um poder inesistente, novamente
acredito que tem que adicionar algo que pare a verificação no m10 caso o pokemon tenha apenas ate o m10
ultima observação isso de verificar eu tirei do (smeargle system)e vou postar a parte que lhe cabe abaixo para analise
Spoilerlocal lockedpokes = {"Mew", "Mewtwo", "Unown Legion", "Entei", "Raikou", "Suicune", "Zapdos", "Moltres", "Articuno", "Rocket Team", "Unown", "Lugia", "Celebi", "Ho-oh", "Mew_", "Mewtwo_"}
if (isPlayer(cid) and #getCreatureSummons(cid) > 0 and getCreatureName(getCreatureSummons(cid)[1]) == "Smeargle" and getPlayerStorageValue(getCreatureSummons(cid)[1], 18554) > 0) or (isPlayer(cid) and #getCreatureSummons(cid) > 0 and getCreatureName(getCreatureSummons(cid)[1]) == "Shiny Smeargle" and getPlayerStorageValue(getCreatureSummons(cid)[1], 18554) > 0) then
if isMonster(item2.uid) and isInArray(lockedpokes, getCreatureName(item2.uid)) then
doPlayerSendTextMessage(cid, 20, "You can't copy this move.")
return true
end
local lockedcds = {"Divine Punishment", "Unown Rush", "Sing", "Unown Help", "Sleep Powder", "Volcano Burst", "Selfdestruct", "Protection", "Mysterious Power", "Power Wave", "Shredder Team", "Double Team", "Team Slice", "Ancient Fury", "Camouflage", "Future Sight", "Acid Armor", "Rollout", "Flame Wheel", "Elemental Hands", "Super Vines", "ExplodeAll", "Stampage", "Iron Defense", "Minimize", "Team Claw", ""}
for x=1, 8 do
table.insert(lockedcds, "Sketch "..x)
end
local canShiny = true
local smeargle = getCreatureSummons(cid)[1]
local shinysmeargle = getCreatureSummons(cid)[1]
local tocopy = item2.uid
local selfball = getPlayerSlotItem(cid, 8).uid
if (isShinyName(getCreatureName(item2.uid)) and canShiny) or not isShinyName(getCreatureName(item2.uid)) then
if (getPlayerStorageValue(smeargle, 18554)) or (getPlayerStorageValue(shinysmeargle, 18554))then
if (getPlayerStorageValue(smeargle, 18554) == 1 and movestable[getCreatureName(tocopy)].move1 and not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move1.name)) or (getPlayerStorageValue(shynysmeargle, 18554) == 1 and movestable[getCreatureName(tocopy)].move1 and not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move1.name)) then
if (not smeargleHaveSpell(cid, movestable[getCreatureName(tocopy)].move1.name)) or (not shinysmeargleHaveSpell(cid, movestable[getCreatureName(tocopy)].move1.name)) then
doItemSetAttribute(selfball, "skt1", getCreatureName(tocopy))
else
doPlayerSendTextMessage(cid, 20, "You smeargle already have this move.")
end
elseif getPlayerStorageValue(smeargle, 18554) == 2 and movestable[getCreatureName(tocopy)].move2 and not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move2.name) then
if not smeargleHaveSpell(cid, movestable[getCreatureName(tocopy)].move2.name) then
doItemSetAttribute(selfball, "skt2", getCreatureName(tocopy))
else
doPlayerSendTextMessage(cid, 20, "You smeargle already have this move.")
end
elseif getPlayerStorageValue(smeargle, 18554) == 3 and movestable[getCreatureName(tocopy)].move3 and not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move3.name) then
if not smeargleHaveSpell(cid, movestable[getCreatureName(tocopy)].move3.name) then
doItemSetAttribute(selfball, "skt3", getCreatureName(tocopy))
else
doPlayerSendTextMessage(cid, 20, "You smeargle already have this move.")
end
elseif getPlayerStorageValue(smeargle, 18554) == 4 and movestable[getCreatureName(tocopy)].move4 and not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move4.name) then
if not smeargleHaveSpell(cid, movestable[getCreatureName(tocopy)].move4.name) then
doItemSetAttribute(selfball, "skt4", getCreatureName(tocopy))
else
doPlayerSendTextMessage(cid, 20, "You smeargle already have this move.")
end
elseif getPlayerStorageValue(smeargle, 18554) == 5 and movestable[getCreatureName(tocopy)].move5 and not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move5.name) then
if not smeargleHaveSpell(cid, movestable[getCreatureName(tocopy)].move5.name) then
doItemSetAttribute(selfball, "skt5", getCreatureName(tocopy))
else
doPlayerSendTextMessage(cid, 20, "You smeargle already have this move.")
end
elseif getPlayerStorageValue(smeargle, 18554) == 6 and movestable[getCreatureName(tocopy)].move6 and not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move6.name) then
if not smeargleHaveSpell(cid, movestable[getCreatureName(tocopy)].move6.name) then
doItemSetAttribute(selfball, "skt6", getCreatureName(tocopy))
else
doPlayerSendTextMessage(cid, 20, "You smeargle already have this move.")
end
elseif getPlayerStorageValue(smeargle, 18554) == 7 and movestable[getCreatureName(tocopy)].move7 and not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move7.name) then
if not smeargleHaveSpell(cid, movestable[getCreatureName(tocopy)].move7.name) then
doItemSetAttribute(selfball, "skt7", getCreatureName(tocopy))
else
doPlayerSendTextMessage(cid, 20, "You smeargle already have this move.")
end
elseif getPlayerStorageValue(smeargle, 18554) == 8 and movestable[getCreatureName(tocopy)].move8 and not isInArray(lockedcds, movestable[getCreatureName(tocopy)].move8.name) then
if not smeargleHaveSpell(cid, movestable[getCreatureName(tocopy)].move8.name) then
doItemSetAttribute(selfball, "skt8", getCreatureName(tocopy))
else
doPlayerSendTextMessage(cid, 20, "You smeargle already have this move.")
end
end
setPlayerStorageValue(smeargle, 18554, -1)
setPlayerStorageValue(shinysmeargle, 18554, -1)
end
doUpdateMoves(cid)
return true
else
doPlayerSendTextMessage(cid, 20, "You can't copy moves of shinyes pokemons.")
end
endfunções sitadas
Spoilerfunction getSmeargleMoveTable(master)
local ball = getPlayerSlotItem(master, 8).uid
local moves = {}
local skts = {"skt1", "skt2", "skt3", "skt4", "skt5", "skt6", "skt7", "skt8"}
for x=1, #skts do
moves["move"..x] = getItemAttribute(ball, skts[x]) and movestable[getItemAttribute(ball, skts[x])]["move"..x] and movestable[getItemAttribute(ball, skts[x])]["move"..x] ~= -1 and movestable[getItemAttribute(ball, skts[x])]["move"..x] or movestable["Smeargle"]["move"..x] or movestable["Shiny Smeargle"]["move"..x]
end
return moves
endfunction smeargleHaveSpell(cid, spellname)
local has = false
local moves = getSmeargleMoveTable(cid)
local ball = getPlayerSlotItem(cid, 8).uid
local skts = {"skt1", "skt2", "skt3", "skt4", "skt5", "skt6", "skt7", "skt8"}
for x=1, #skts do
if getItemAttribute(ball, skts[x]) and moves["move"..x].name == spellname then
has = true
break
end
end
return has
end
ESPERO QUE POSSAM ME AJUDAR -
7 horas atrás, ERAGON GAMER disse:
ALGUEM PODE ME AJUDA? COMO EU POSSO TRANSFORMAR OLD CLIENT EM NEW CLIENT (OT CLIENT) OU COMO POSSO POR AS SPRITES DO OLD CLIENT EM UM NEW CLIENT AGORA SEM FICAR AQUELES BUGS CHATOS E ETC? PFPF ;-;
abra o dat e spr old client com o object builder
depois salve com a versão e jeito desejado
transparence ou extendido ou ate mesmo os 2 (dependendo do client novo)
depois pega o client novo e vai na pasta onde esta o dat e spr dele e substitua
(obs: se no client novo o dat e spr tiver com o nome de tibia os que voce colar ou substituir tambem devem ter o nome tibia caso tenha um nome estranho nada a ver deixe o seu tambem com esse nome estranho)
-
Em 02/08/2017 at 15:41, DrewMarques disse:
Bom dia/boa tarde/boa noite/ Preciso de uma Script que precise matar todos os pokemons em uma area para passar para area do premio
exp: o player vai entrar em uma area cheia de darkrai e darkrai nightmare, pro player poder passar na pra area do premio ele teria que matar todos os darkrai para poder clicar na porta
Alguem poderia me ajudar?
tenho um aqui espero que te sirva
ele funciona da seguinte forma
se o player estiver com battle ele não pode seguir adiante ou seja enquanto tiver pokemons atacando o player n pode ir adiante e mesmo q o player mate tudo tera que esperar o battle sair
copie e renomeie um script na pasta dat/actions/script para darkrai1.lua
e cole isso dentro
Spoilerlocal position = {x = 868, y = 1244, z = 10} --posição que o player vai parar
function onUse(cid, item, item2, fromPosition, toPosition, itemEx, toPosition)
if (getCreatureCondition(cid, CONDITION_INFIGHT) == FALSE) then
doTeleportThing(cid, position)
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT)
else
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
doCreatureSay(cid, "Espere o Battle sair para poder usar isso!", TALKTYPE_ORANGE_1)
end
return true
end
obs: voce tera que colocar um item na sala pro jogador usar apos matar tudo
em actions .xml adicione essa tag
<action actionid="19393" script="darkrai1.lua"/>
abra o map editor coloca o item na sala, pode ser qualquer item, (fixo que n mova) abra o item a adiciona com o mapa editor a actionid 19393
e pronto
-
Agora, Marshmello disse:
são um pouco mais nem tanto, isso tmbn n tira ideia do cara vim fala merda no meu post, e outra o post q ele postou nem do forum é
PEGAR ALGO DE UM FORUM E LEVAR PRA OUTRO É SIMPLES MAN MINHA ULTIMA POSTAGEM N QUERO SER NEGATIVADO
-
Agora, Marshmello disse:
Creditos de q? se minha script e bem diferente do cara acissa olha bem
Preste bem atenção na script bem diferente do cara q voce postou n fale mer.da
EU NÃO LIGO SE VC QUEIRA FICAR COM OS CRÉDITOS DOS OUTROS
ENTÃO SE EU POSTAR O MEU AQUI P CREDITO É MEU? PORQUE EU TAMBÉM FIZ MUITAS ALTERAÇÕES
CREDITOS PARA MIN
Spoilerfunction onUse(cid, item, frompos, item2, topos)
if isPlayer(item2.uid) then
return doPlayerSendCancel(cid, "Você só pode usar a boost stone em seu pokemon!")
end
if not isCreature(item2.uid) then
return doPlayerSendCancel(cid, "Você só pode boostar seu pokemon!")
end
if not isPlayer(getCreatureMaster(item2.uid)) then
return doPlayerSendCancel(cid, "Voce nao pode dar boost em pokemons selvagens.")
end
local cfg = {
qnt = 1, --Quantos boosts o pokémon irá receber.
max1 = 100,
max2 = 150,
max3 = 200,
max4 = 240,
max5 = 280,
max6 = 300, --Boost máximo do seu servidor.
chance1 = 80, --Chance de dar certo em %
chance2 = 78,
chance3 = 76,
chance4 = 68,
chance5 = 64,
chance6 = 60,
boost_fail = 80, --A partir de quantos boosts poderá falhar.
}
local myball = getPlayerSlotItem(cid, 8).uid
local summon = getCreatureSummons(cid)[1]
local boost = getItemAttribute(myball, "boost") or 0
if myball <= 0 then
return doPlayerSendCancel(cid, "Coloque um pokemon no Main Slot!")
elseif #getCreatureSummons(cid) <= 0 then
return doPlayerSendCancel(cid, "Você precisa estar usando seu pokemon para conseguir boosta-lo!")
elseif boost >= cfg.max6 then
return doPlayerSendCancel(cid, "Seu pokemon ja se encontra no nivel maximo de boost!")
end
if boost < cfg.boost_fail then
doItemSetAttribute(myball, "boost", (boost + cfg.qnt))
doSendAnimatedText(getThingPos(summon), "+1 BOOST", 215)
doPlayerSendTextMessage(cid, 27, "Seu pokemon subiu do nivel [+"..tonumber(boost).."] de boost para o nivel [+"..tonumber(boost + 1).."].")
doRemoveItem(item.uid, 1)
end
if boost >= cfg.boost_fail and boost <= cfg.max1 then
if math.random(1, 100) <= cfg.chance1 then
doItemSetAttribute(myball, "boost", (boost + cfg.qnt))
doSendAnimatedText(getThingPos(summon), "+1 BOOST", 215)
doPlayerSendTextMessage(cid, 27, "Seu pokemon subiu do nivel [+"..tonumber(boost).."] de boost para o nivel [+"..tonumber(boost + 1).."].")
doRemoveItem(item.uid, 1)
else
doItemSetAttribute(myball, "boost", (boost - cfg.qnt))
doSendAnimatedText(getThingPos(summon), "Fail!", 215)
doPlayerSendTextMessage(cid, 27, "Seu pokemon desceu do nivel [+"..tonumber(boost).."] de boost para o nivel [+"..tonumber(boost - 1).."].")
doRemoveItem(item.uid, 1)
end
end
if boost >= cfg.boost_fail and boost > cfg.max1 and boost <= cfg.max2 then
if math.random(1, 100) <= cfg.chance2 then
doItemSetAttribute(myball, "boost", (boost + cfg.qnt))
doSendAnimatedText(getThingPos(summon), "+1 BOOST", 215)
doPlayerSendTextMessage(cid, 27, "Seu pokemon subiu do nivel [+"..tonumber(boost).."] de boost para o nivel [+"..tonumber(boost + 1).."].")
doRemoveItem(item.uid, 1)
else
doItemSetAttribute(myball, "boost", (boost - cfg.qnt))
doSendAnimatedText(getThingPos(summon), "Fail!", 215)
doPlayerSendTextMessage(cid, 27, "Seu pokemon desceu do nivel [+"..tonumber(boost).."] de boost para o nivel [+"..tonumber(boost - 1).."].")
doRemoveItem(item.uid, 1)
end
end
if boost >= cfg.boost_fail and boost > cfg.max2 and boost <= cfg.max3 then
if math.random(1, 100) <= cfg.chance3 then
doItemSetAttribute(myball, "boost", (boost + cfg.qnt))
doSendAnimatedText(getThingPos(summon), "+1 BOOST", 215)
doPlayerSendTextMessage(cid, 27, "Seu pokemon subiu do nivel [+"..tonumber(boost).."] de boost para o nivel [+"..tonumber(boost + 1).."].")
doRemoveItem(item.uid, 1)
else
doItemSetAttribute(myball, "boost", (boost - cfg.qnt))
doSendAnimatedText(getThingPos(summon), "Fail!", 215)
doPlayerSendTextMessage(cid, 27, "Seu pokemon desceu do nivel [+"..tonumber(boost).."] de boost para o nivel [+"..tonumber(boost - 1).."].")
doRemoveItem(item.uid, 1)
end
end
if boost >= cfg.boost_fail and boost > cfg.max3 and boost <= cfg.max4 then
if math.random(1, 100) <= cfg.chance4 then
doItemSetAttribute(myball, "boost", (boost + cfg.qnt))
doSendAnimatedText(getThingPos(summon), "+1 BOOST", 215)
doPlayerSendTextMessage(cid, 27, "Seu pokemon subiu do nivel [+"..tonumber(boost).."] de boost para o nivel [+"..tonumber(boost + 1).."].")
doRemoveItem(item.uid, 1)
else
doItemSetAttribute(myball, "boost", (boost - cfg.qnt))
doSendAnimatedText(getThingPos(summon), "Fail!", 215)
doPlayerSendTextMessage(cid, 27, "Seu pokemon desceu do nivel [+"..tonumber(boost).."] de boost para o nivel [+"..tonumber(boost - 1).."].")
doRemoveItem(item.uid, 1)
end
end
if boost >= cfg.boost_fail and boost > cfg.max4 and boost <= cfg.max5 then
if math.random(1, 100) <= cfg.chance5 then
doItemSetAttribute(myball, "boost", (boost + cfg.qnt))
doSendAnimatedText(getThingPos(summon), "+1 BOOST", 215)
doPlayerSendTextMessage(cid, 27, "Seu pokemon subiu do nivel [+"..tonumber(boost).."] de boost para o nivel [+"..tonumber(boost + 1).."].")
doRemoveItem(item.uid, 1)
else
doItemSetAttribute(myball, "boost", (boost - cfg.qnt))
doSendAnimatedText(getThingPos(summon), "Fail!", 215)
doPlayerSendTextMessage(cid, 27, "Seu pokemon desceu do nivel [+"..tonumber(boost).."] de boost para o nivel [+"..tonumber(boost - 1).."].")
doRemoveItem(item.uid, 1)
end
end
if boost >= cfg.boost_fail and boost > cfg.max5 and boost <= cfg.max6 then
if math.random(1, 100) <= cfg.chance6 then
doItemSetAttribute(myball, "boost", (boost + cfg.qnt))
doSendAnimatedText(getThingPos(summon), "+1 BOOST", 215)
doPlayerSendTextMessage(cid, 27, "Seu pokemon subiu do nivel [+"..tonumber(boost).."] de boost para o nivel [+"..tonumber(boost + 1).."].")
doRemoveItem(item.uid, 1)
else
doItemSetAttribute(myball, "boost", (boost - cfg.qnt))
doSendAnimatedText(getThingPos(summon), "Fail!", 215)
doPlayerSendTextMessage(cid, 27, "Seu pokemon desceu do nivel [+"..tonumber(boost).."] de boost para o nivel [+"..tonumber(boost - 1).."].")
doRemoveItem(item.uid, 1)
end
end
return true
end
-
4 horas atrás, Marshmello disse:
Fala Pessoal Hoje estou trazendo um sistema de boost stone iguazinho do otPokemon
Como Funciona: Quando o Player atinge o numero de boost stone de 5 no seu pokemon aparti do 6 se ela falhar volta pro 5, entao se vc consegui fazer q a boost va ate o 10 se ela falhar volta pro 5 de boost dnv
Chega de enrrolação vamos la
Em actions/scritpt crie um arquivo chamado Boost Stone.lua
Coloque isso dentro
-- Scrit Por Marshmello
function onUse(cid, item, fromPosition, itemEx, toPosition)
local meuovo = {
qnt = 1, --quantidade de boost q vai ser adicionada
maxi = 30, --maximo de boost
chance = 64, --chance de falhar
boost_fail = 6, --- quanditade q ela pode falhar
falhar = 5, --- pra onde a boost vai voltar quando falhar
}
local minhabola = getPlayerSlotItem(cid, 8).uid
local boost = getItemAttribute(minhabola, "boost") or 0
if minhabola <= 0 then
return doPlayerSendCancel(cid, "Coloque um pokémon no Main Slot!")
elseif boost >= meuovo.maxi then
return doPlayerSendCancel(cid, "Seu pokémon já se encontra no nível máximo de boost!")
end
if boost >= meuovo.boost_fail then
if math.random(1, 100) <= meuovo.chance then
doItemSetAttribute(minhabola, "boost", (boost + meuovo.qnt))
doSendMagicEffect(fromPosition, 173)
doRemoveItem(item.uid, 1)
else
doPlayerSendCancel(cid,"Falhou!")
doItemSetAttribute(minhabola, "boost", (meuovo.falhar))
doRemoveItem(item.uid, 1)
end
else
doItemSetAttribute(minhabola, "boost", (boost + meuovo.qnt))
doSendMagicEffect(fromPosition, 173)
doRemoveItem(item.uid, 1)
end
return true
end
Agora vai em actions.xml e coloque isso
<action itemid="ID DA BOOST" event="script" value="Boost Stone.lua" allowfaruse="1"/>
Gosto Deixe Seu REP+
OBS: Peço que não remova os Creditos pois deu trabalho fazer
bom esse script não foi desenvolvido por você, ou talvez ate tenha
mas eu tenho esse script a anos
a unica diferença é que o meu não tem isso de meu ovo e minha bola que axei ridiculo
encontrei o link
http://www.###.com/forum/forums/topic/37849-action-script-de-boost-stone-parecido-com-otpokemon/
ele também não foi o criador e não pois credito, bote o credito pra ele também, pois você apenas edito esse script.
ESTOU IMAGINANDO O TRABALHO QUE VOCÊ TEVE PARA FAZER ESSE SCRIPT
-
2 horas atrás, perfollgustavo disse:
Não sei se é problema no DecayTo, porque a ID dos corpos está igual no map editor, só o corpo que vira algo sem noção depois, e se eu apagar, o corpo do monstro vai perder uma fase da deterioração.
man entra no adm (GM) e quando o corpo estiver preste a trasformar num livro voce da look e pega o id dele exemplo 14054
ou voce pode ir no items.xml e e pesquisar por dead rat (vai ter uns 3 A 5 itens com o mesmo nome talvez ate +) voce pode notar que vai tar mais o menos assim
IGUAL ABAIXO
NOTE QUE O DECAY ESTA INDO DE UM PRARA OUTRO
OQUE ACONTECE É QUE UM DOS SEUS DECAY ESTA COM O ID DO LIVRO OU DO ITEM ENTÃO O CORPO SE TRANSFORMA NELE
BASTA VOCE MUDAR O DECAY COM PROBLEMA POR ZERO IGUAL ESTA MEU ULTIMO EXEMPLO
<item id="3073" article="a" name="dead rat">
<attribute key="weight" value="6800" />
<attribute key="containerSize" value="5" />
<attribute key="decayTo" value="3074" />
<attribute key="duration" value="10" />
<attribute key="corpseType" value="blood" />
<attribute key="fluidSource" value="blood" />
</item>
<item id="3074" article="a" name="dead rat">
<attribute key="weight" value="6800" />
<attribute key="decayTo" value="3075" />
<attribute key="duration" value="600" />
<attribute key="corpseType" value="blood" />
</item>
<item id="3075" article="a" name="dead rat">
<attribute key="weight" value="6000" />
<attribute key="decayTo" value="3076" />
<attribute key="duration" value="600" />
<attribute key="corpseType" value="blood" />
</item>
<item id="3076" article="a" name="dead rat">
<attribute key="weight" value="5400" />
<attribute key="decayTo" value="0" />
<attribute key="duration" value="600" />
<attribute key="corpseType" value="blood" />
</item>
-
Em 2017-5-30 at 00:59, Viinho Sdt disse:
onde que fica? e tipo o sistema do saffari que está bugado e eu nao encontro ele para desabilitar
o player ta morrendo e sendo teleportado pro safari pois a localização do saffari esta registrada como templo
faz oque ele pediu o arquivo se encontra em data/creaturescripts/scripts
-
Em 2017-5-13 at 19:25, nociam disse:
se não me engano se coloca abixo do doCreatureAddHealth(cid, amount) um return false e testa
apezar de encher vida ele continua tomando dano de fodo, pode ajudar?
-
1 hora atrás, nociam disse:
se não me engano se coloca abixo do doCreatureAddHealth(cid, amount) um return false e testa
ele continua tomando dano
-
16 horas atrás, nociam disse:
Não fizeram ainda isso e muito fácil vai no seu exp.lua e coloca acima do ultimo return de dano isso se não souber poste seu exp.lua se for outro servidor vai em creaturescript e ache o script que tenha essa function onStatsChange(cid, attacker, type, combat, value).
Magia_config = {
["Charizard"] = {damage = FIREDAMAGE},
["Venusaur"] = {damage = GRASSDAMAGE},
["Nidoking"] = {damage = POISONEDDAMAGE},
}
if Magia_config[getCreatureName(cid)] and damageCombat == Magia_config[getCreatureName(cid)].damage then
local min_percent = 40--Porcentagem mínima do dano curada.
local max_percent = 75--Porcentagem máxima do dano curada.
local amount = math.floor(valor * math.random(min_percent, max_percent) / 100)
valor = 0
doSendAnimatedText(getThingPos(cid), "+"..amount, 65)
doCreatureAddHealth(cid, amount)
end
https://gyazo.com/b0211884199d75b7b21101665ec611d7
Esqueci vc tb pode inverter a ordem pra poder colocar mais pokemon ou ate fazer pelo elemento fogo x fogo
tipo assim
Magia_config = {
[FIREDAMAGE] = {"Charizard","Magmar"},
[GRASSDAMAGE] = {"Venusaur","Pikachu"},
[POISONEDDAMAGE] = {"Weezing","Magmar"},
}
if Magia_config[damageCombat] and isInArray(Magia_config[damageCombat], getCreatureName(cid)) then
local min_percent = 40--Porcentagem mínima do dano curada.
local max_percent = 75--Porcentagem máxima do dano curada.
local amount = math.floor(valor * math.random(min_percent, max_percent) / 100)
valor = 0
doSendAnimatedText(getThingPos(cid), "+"..amount, 65)
doCreatureAddHealth(cid, amount)
end
obrigado man funcionou perfeitamente mas so uma duvida
esta enxendo vida mas mesmo assim ele ainda toma dano de fogo
tem como esse dano de fogo ficar igual a 0?
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.
[Encerrado] Tabela de Catch
em Tópicos Sem Resposta
Postado
boa noite isso ja é feito no jogo
vamos la
digamos que a chance de pegar a tangela esteja assim
["Tangela"] = {chance = 600, corpse = 5976}, --- no caso no meu serve é assim
então digamos que o rate da pokeball é de 1, e da great 2, e ultra 4
a media pra pegar a tangela com a pokeball seria de 600 (600/1= 600)
de great 300 (600/2= 300)
de ultra 150 (600/4= 150)
logico que tambem existe a parte da sorte onde pode se pegar com 2 pokeball, mas a maioria dos personagem gasta essa media, então para que fique do jeito que voce quer basta multiplicar a o rate de cada ball pela quantidade que você queira que seja a media e deixar o resultado na chance do pokemon