-
Total de itens
77 -
Registro em
-
Última visita
-
Dias Ganhos
1
Posts postados por Oween
-
-
Estamos contratando freelancer para adicionar na source a função
doSetMonsterGym
e fazer o sistema de gym funcionar.
Interessados mandar PM.
-
Procuro mapper para criar mapa da pxg completo para min, preço a combinar
-
Em 05/10/2016 at 19:10, samlecter disse:
Vou citar só algumas coisas...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ADICIONAR POKEMONS
Muito mais prático, não precisa configurar a mesma coisa em mais de um lugar, por exemplo: Se já foi colocado o ID do corpse do pokemon no xml com o nome do mesmo, não é necessário colocar o ID do Corpse na tabela de catch no "configuration.lua"
Resumindo: Adicionei todos 151 pokemons da 1ª geração em 2 dias, e terminei de configura-los completamente em mais 2 dias e meio.
OBS: Em nossa tabela de status, existem mais status como sp.defense e todos eles foram reconfigurados com os valores oficiais da pokedex de cada pokemon, essa é uma versão antiga, não lembro o quão está configurado os pokemons e algumas outras coisas, porém todos estão funcionando.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BASE/SCRIPTS TOTALMENTE LIMPOS
Lembrando que a base começou do 0 a partir do TFS 0.4, apesar de não ter muita coisa além do básico, está totalmente limpa, sem erro na distro, server fica online em média de 10 segundos na distro atual com muito mais coisa, essa postada deve ligar mais rapido ainda...
Códigos limpos, sem erros na distro, praticidade e rapidez imensa em adicionar e configurar novos pokemons, magias e outras coisas
além de ser open source, só baixar e conferir....
-
27 minutos atrás, Deadpool disse:
Posta o pokémon moves e move1.lua.
19 minutos atrás, kttallan disse:Posta a linha 520 do arquivo data/lib/pokemon moves.lua
Para podermos tentar solucionar seu problema.
local dano = math.floor((getPokemonLevelD(name)+lvl * 3)/2)
agora reparando nessa linha mi veio a cabeça, quando eu estava colocando a pokedex sempre dava erro na linha getpokemonLevelD, o que tem haver quando eu retirei o "D" a pokedex funcionou acho que tem algo a mais nesse erro sobre essa linha lgetPokemonLevelD (name)
8 minutos atrás, Oween disse:local dano = math.floor((getPokemonLevelD(name)+lvl * 3)/2)
agora reparando nessa linha mi veio a cabeça, quando eu estava colocando a pokedex sempre dava erro na linha getpokemonLevelD, o que tem haver quando eu retirei o "D" a pokedex funcionou acho que tem algo a mais nesse erro sobre essa linha lgetPokemonLevelD (name)
reparei também que todos os erros são relacionados a está linha local dano do pokemon moves = math.floor((getPokemonLevelD(name)+lvl * 3)/2)
Retirei o D mais continua com error
[05/10/2016 18:02:21] [Error - Spell Interface] [05/10/2016 18:02:21] data/spells/scripts/ps/Poison Powder.lua:onCastSpell[05/10/2016 18:02:21] Description: [05/10/2016 18:02:21] data/lib/pokemon moves.lua:520: attempt to perform arithmetic on local 'lvl' (a boolean value)[05/10/2016 18:02:21] stack traceback:[05/10/2016 18:02:21] data/lib/pokemon moves.lua:520: in function 'docastspell'[05/10/2016 18:02:21] data/spells/scripts/ps/Poison Powder.lua:5: in function <data/spells/scripts/ps/Poison Powder.lua:1>
-
Olá boa tarde alquem sabe como resolver esse erro na base dxp ?
Error - TalkAction Interface][05/10/2016 11:14:41] data/talkactions/scripts/move1.lua:onSay[05/10/2016 11:14:41] Description:[05/10/2016 11:14:41] data/lib/pokemon moves.lua:520: attempt to perform arithmetic on a boolean value[05/10/2016 11:14:42] stack traceback:[05/10/2016 11:14:42] data/lib/pokemon moves.lua:520: in function 'docastspell'[05/10/2016 11:14:42] data/talkactions/scripts/move1.lua:182: in function <data/talkactions/scripts/move1.lua:20>
-
10 minutos atrás, Drakopoulos disse:
Refiz o script pois estava mt bagunçado..
XML
<?xml version="1.0" encoding="UTF-8"?><npc name="NPC_NAME" script="LUA_NAME" walkinterval="350000" floorchange="0" speed="0" lookdir="2"> <health now="150" max="150"/> <look type="640" head="91" body="114" legs="86" feet="0"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|. Existe um pokemon muito raro chamado Aerodactyl esse pokemon apos sua morte ele se cristaliza em um fossil chamado Old Amber essa pedra refinada se transforma em um Egg Aerodactyl se voce tem esse fossil diga {quest}"/> </parameters></npc>
LUA
local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endSTORAGE = 10018 -- Não MechaOLD = 12581 -- Item a ser removido para completar a questDQUANT = 1 -- Quantidade de items a ser removidoEGG = 17121 -- Item a ser adicionado para completar a questUNIT = 1 -- Quantidade de items a ser adicionadofunction creatureSayCallback(cid, type, msg)if(not npcHandler:isFocused(cid)) thenreturn falseendlocal talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(string.lower(msg), 'quest') then selfSay("Preciso da Old Amber para ti entregar o Aerodactyl Egg, voce a trouxe ? se sim Diga {yes}...", cid) talkState[talkUser] = 1 elseif (msgcontains(string.lower(msg), 'yes') or msgcontains(string.lower(msg), 'sim')) and talkState[talkUser] == 1 then if (getPlayerStorageValue(cid, STORAGE) < 1 and getPlayerItemCount(cid, OLD) >= 1) then doPlayerRemoveItem(cid,OLD,DQUANT) doPlayerAddItem(cid,EGG,UNIT) setPlayerStorageValue(cid, STORAGE, 1) selfSay("Pronto agora va falar com o Prof. Marlon e entregar o Aerodactyl Egg...", cid) talkState[talkUser] = 0 elseif (getPlayerStorageValue(cid, STORAGE) < 1 and getPlayerItemCount(cid, OLD) < 1) then selfSay("Voce nao possui Old Amber...", cid) return true else selfSay("Voce ja completou a quest Aerodactyl Egg...", cid) return true end endreturn trueendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())
Não esqueça de mudar o look type e talz...
Testado e aprovado obrigado pela ajuda.
-
Olá boa noite estou criando um script de quest porem estou com um problema quando o player pega a quest ele nao retira o item ex: se o player esta com o item para ser retira ele retira e entrega nessa função
doPlayerRemoveItem(cid,OLD,DQUANT)doPlayerAddItem(cid,EGG,UNIT)
queria saber como faço para colocar uma verificação no doPlayerRemoveItem(cid,OLD,DQUANT) para quando o player falar com o npc ele dizer que não tem o item (x) e assim só adicionar o outro item (y) para o player se ele tiver o item (x)
id item x = 12581
id do item y = 17121
Espero que algum me ajude
STORAGE = 10018 -- Não MechaOLD = 12581 -- Item a ser removido para completar a questDQUANT = 1 -- Quantidade de items a ser removidoEGG = 17121 -- Item a ser adicionado para completar a questUNIT = 1 -- Quantidade de items a ser adicionadolocal keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endfunction santaNPC(cid, message, keywords, parameters, node)if(not npcHandler:isFocused(cid)) thenreturn falseendif (parameters.present == true) thenif (getPlayerStorageValue(cid, STORAGE) < 1) thengetPlayerItemCount(cid,EGG,STORAGE)doPlayerRemoveItem(cid,OLD,DQUANT)doPlayerAddItem(cid,EGG,UNIT)setPlayerStorageValue(cid, STORAGE, 1)npcHandler:say('Pronto agora va falar com o Prof. Marlon e entregar o Aerodactyl Egg', cid)elsenpcHandler:say('Voce ja completou a quest Aerodactyl Egg.', cid)endendnpcHandler:resetNpc()return trueendnpcHandler:setMessage(MESSAGE_GREET, "Olá |PLAYERNAME|. Existe um pokemon muito raro chamado Aerodactyl esse pokemon apos sua morte ele se cristaliza em um fossil chamado Old Amber essa pedra refinada se transforma em um Egg Aerodactyl se voce tem esse fossil diga {quest} para voce.")local noNode = KeywordNode:new({'no'}, santaNPC, {present = false})local yesNode = KeywordNode:new({'yes'}, santaNPC, {present = true})local node = keywordHandler:addKeyword({'quest'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Preciso da Old Amber para ti entregar o Aerodactyl Egg, voce a trouxe ? se sim Diga {yes}'})node:addChildKeywordNode(yesNode)node:addChildKeywordNode(noNode)npcHandler:addModule(FocusModule:new())
-
3 minutos atrás, Josegvb disse:
aqui não deixa usar mais de 1 ves =p mas você quer colocar exausted no item, acho q seria facil porem estou com preguiça ;x e o meu funfa msm entao boa sorte ai
o seu nao funfa cara isso é bug e voce vai descobrir depois voce mi fala fica na borda e tentando ir para a agua e clicando bem rapido com contra + z ele vai puxar fora do normal e quebrar a verificação!
isso é o que um player normal faria agora players que sabem disso usam isso como beneficio intende ?
-
Agora, Josegvb disse:
testou pelo menos? =p bom ja q vc achou o msm script irei retirar-lo, desculpe pelo spam.
sim testei sem problema, isso nao impede dele usar varias vezes a vara so notifica ele que ele esta a usando! o que eu estou tentando fazer e colocar uma verificação para quando ele tentar jogar na água de novo dar exausted de 5 segundos intendeu ?
-
è o mesmo script '-'
-
Olá queria saber se alguém consegui mi ajudar com um script, tipo os players no servidor ao jogar a vara na agua eles conseguem ficar jogando a vara toda hora assim bugando o tempo de puxar o pokemon puxando varios de em pouco tempo queria saber se alguém consegue colocar uma função que ele so pode usar a vara novamente assim que ele puxar o pokemon. Ou um tempo em segundos que ele só pode usar a vara depois que esse tempo acabar!
local fishing = {[-1] = { segs = 500, pokes = {{"Magikarp", 1}} },[3976] = { segs = 500, pokes = {{"Horsea", 1}, {"Remoraid", 1}, {"Goldeen", 1}, {"Poliwag", 1}} }, -- pega no client da pxg[12855] = { segs = 500, pokes = {{"Tentacool", 1}, {"Staryu", 1}, {"Krabby", 1}, {"Shellder", 1} } },[12854] = { segs = 500, pokes = {{"Seel", 1}, {"Chinchou", 1} } },[12858] = { segs = 500, pokes = {{"Seaking", 1}, {"Seadra", 1}, {"Poliwhirl", 1}} },[12857] = { segs = 500, pokes = {{"Starmie", 1}, {"Kingler", 1}, {"Corsola", 1}, {"Qwilfish", 1}} }, -- pega no client da pxg[12860] = { segs = 500, pokes = {{"Lanturn", 1}, {"Dewgong", 1}}},[12859] = { segs = 500, pokes = {{"Cloyster", 1}, {"Poliwrath", 1}, {"Politoed", 1}, {"Octillery", 1}} },[12856] = { segs = 500, pokes = {{"Dratini", 1}, {"Dragonair", 1} }},[12853] = { segs = 500, pokes = {{"Gyarados", 1}, {"Mantine", 1}, {"Tentacruel", 1}, {"Kingdra", 1}} },}local storageP = 154584local sto_iscas = 5648454 --muda aki pra sto q ta no script da iscalocal bonus = 15local limite = 100local fightcondition = createConditionObject(CONDITION_INFIGHT)setConditionParam(fightcondition, CONDITION_PARAM_TICKS, 5 * 1000)function fightCondic(cid) if not isCreature(cid) then return true end if not isCreature(getCreatureTarget(cid)) then return true end doAddCondition(cid, fightcondition)addEvent(fightCondic, 1000, cid)endlocal function doFish(cid, pos, ppos, interval) if not isCreature(cid) then return false end if getThingPos(cid).x ~= ppos.x or getThingPos(cid).y ~= ppos.y then return false end doSendMagicEffect(pos, CONST_ME_LOSEENERGY) if interval > 0 then addEvent(doFish, 1000, cid, pos, ppos, interval-1) return true end local peixe = 0 local playerpos = getClosestFreeTile(cid, getThingPos(cid)) local fishes = fishing[getPlayerStorageValue(cid, sto_iscas)] local random = {} if getPlayerSkillLevel(cid, 6) < limite then doPlayerAddSkillTry(cid, 6, bonus * 5) end --[[if math.random(1, 100) <= chance then if getPlayerSkillLevel(cid, 6) < limite then doPlayerAddSkillTry(cid, 6, bonus * 5) end]] random = fishes.pokes[math.random(#fishes.pokes)] for i = 1, math.random(random[2]) do peixe = doSummonCreature(random[1], playerpos) if not isCreature(peixe) then setPlayerStorageValue(cid, storageP, -1) doRemoveCondition(cid, CONDITION_OUTFIT) return true end setPokemonPassive(peixe, true) doSetPokemonAgressiveToPlayer(peixe, cid) setPlayerStorageValue(peixe, storageP, 1) fightCondic(cid) if #getCreatureSummons(cid) >= 1 then doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 0) doChallengeCreature(getCreatureSummons(cid)[1], peixe) else doSendMagicEffect(getThingPos(cid), 0) doChallengeCreature(cid, peixe) end end setPlayerStorageValue(cid, storageP, -1) doRemoveCondition(cid, CONDITION_OUTFIT)return trueendlocal waters = {11756}local times = {s = 2256891, -- n mexaexhau = 5 -- tempo em seegundos para salvar denovo}function onUse(cid, item, fromPos, itemEx, toPos)if isWatchingTv(cid) thenreturn trueendlocal checkPos = toPoscheckPos.stackpos = 0if getTileThingByPos(checkPos).itemid <= 0 then return trueendif not isInArray(waters, getTileInfo(toPos).itemid) then return trueendif isRiderOrFlyOrSurf(cid) and not canFishWhileSurfingOrFlying then doPlayerSendCancel(cid, "You can't fish while surfing/flying.") return trueendif getTileInfo(getThingPos(getCreatureSummons(cid)[1] or cid)).protection then doPlayerSendCancel(cid, "You can't fish pokémons if you or your pokémon is in protection zone.")return trueendlocal delay = fishing[getPlayerStorageValue(cid, sto_iscas)].segsif getPlayerStorageValue(cid, sto_iscas) ~= -1 then if getPlayerItemCount(cid, getPlayerStorageValue(cid, sto_iscas)) >= 1 then doPlayerRemoveItem(cid, getPlayerStorageValue(cid, sto_iscas), 1) else setPlayerStorageValue(cid, sto_iscas, -1) endendif getPlayerSex(cid) == 1 thenif getCreatureOutfit(cid).lookType ~= 520 then ---- Outfit necessaria para usar o fishingdoPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa estar com a outfit de pesca para pescar.")return falseendelseif getCreatureOutfit(cid).lookType ~= 521 then ---- Outfit necessaria para usar o fishingdoPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa estar com a outfit de pesca para pescars.")return falseendendlocal outfit = getCreatureOutfit(cid)local out = getPlayerSex(cid) == 0 and 1467 or 1468doSetCreatureOutfit(cid, {lookType = out, lookHead = outfit.lookHead, lookBody = outfit.lookBody, lookLegs = outfit.lookLegs, lookFeet = outfit.lookFeet}, -1)setPlayerStorageValue(cid, storageP, 1) --alterei looktypedoCreatureSetNoMove(cid, false)local pos2 = getThingPos(itemEx.uid)doCreatureSetLookDir(cid, getLookToFish(getThingPos(cid), pos2)) --alterado ver depoisdoFish(cid, toPos, getThingPos(cid), math.random(5, delay))return trueendfunction getLookToFish(pos, pos2)local x1, y1 = pos.x, pos.ylocal x2, y2 = pos2.x, pos2.yif x1-x2 <= 0 and y1-y2 > 0 then return NORTHelseif x1-x2 < 0 and y1-y2 == 0 then return EASTelseif x1-x2 < 0 and y1-y2 < 0 then return EASTelseif x1-x2 > 0 and y1-y2 < 0 then return SOUTHelseif x1-x2 > 0 and y1-y2 <= 0 then return WESTelseif x1-x2 > 0 and y1-y2 >= 0 then return WESTelseif x1-x2 < 0 and y1-y2 < 0 then return EASTelseif x1-x2 == 0 and y1-y2 < 0 then return SOUTHendreturn WESTend--[[-- resulatados em linha reta(exatos)if x1 == x2 then -- virar para norte if (y1 - y2) > 0 then -- virar para cima return NORTH elseif (y1 - y2) < 0 then -- virar para baixo return SOUTH endelseif y1 == y2 then if (x1 - x2) > 0 then -- virar para OESTE << return WEST elseif (x1 - x2) < 0 then -- virar para LESTE >> return EAST endend-- resulatados em linha reta(exatos)if (x1 ~= x2) or (y1 ~= y2) then if (x1 - x2) < 0 then return EAST -- virar para LESTE >> elseif (x1 - x2) > 0 then return WEST endend]]
-
5 horas atrás, KarlKalvin disse:
Faz o seguinte então... marca no OBD e no OTB a função stackable, salva reiniciar o cliente/server e testa!
Resolvido Obrigado pela ajuda agora ficou correto <3
-
5 minutos atrás, KarlKalvin disse:
Não, o fundo não tem nada haver, se ainda está com 160 é porque não foi atualizado o otb nem o dat/spr, corrige pra ver se foi atualizado mesmo e tente criar o item novamente com o /i.
vou rever os 2 por que eu compilei o objetbuilder salvei e o item editor tambem
6 minutos atrás, Oween disse:vou rever os 2 por que eu compilei o objetbuilder salvei e o item editor tambem
continua compilei salvei os 2 e mesmo atualizei o servidor o client deve ser outro coisa ou algo que deve adicionar ou não sei.. uma coisa tao simples se torna tao difícil porque O-o. deve ser para desistir de vez.
-
28 minutos atrás, KarlKalvin disse:
Quando tá em vermelho é porque no dat/spr está marcado e no otb deveria estar marcado.
Você vai ter que abrir o OBJECT BUILDER, ir no item 14741 e desmarcar o stackable que está marcado, ou então você pode apenas marcar ali no otb, salvar, reiniciar o server que vai estar funcionando normalmente ao inves de 160 vai pra 100.
Quando desmarcar é só salvar, atualizar seu dat/spr e abrir o client novamente.
Que o item vai estar com 1
sim eu o fiz desmarquei dos 2 eu falo o fundo da spr que esta em vermelho!
Stackble retirado no objt
e no editor
fiz esses procedimentos e continuando 160 ao invés de 1 item porem se eu troco para outra spr o item vem normal será que pode ser esse fundo vermelho alguma opção que esta no objtbuilder que não esteja no item editor ?
-
1 hora atrás, KarlKalvin disse:
Isso pode ser muita coisa, mas o mais comun pra isso é que você sem querer marcou a opção stackable ou no items.otb ou no dat/spr.
Visualize nos 2 se estiver marcado, desmarque.
sera vou ver
não esta marcado porem esta assim!
sim desmarquei nos 2 e só ficou o fundo do item vermelho será que é isso ?
continua vindo com quantidade não 1 item ou 100 mais 160! eu desmarquei no dat/spr e no item.otb
-
Queria saber se alguém sabe o por que disso acontecer. ao eu criar um novo item ele vem com uma quantidade excessiva 160 na bag e buga queria que criasse um único item
adicionei no item.otb
others --> new item --> novo id = 17117
e em cid coloquei o id na spr
marquei as opçoes --> pickupable e usable
Porém quando eu crio o item no jogo ele vem 160 o mximo permitido é 100 buga meu char o jogo e a bag!
alguem sabe como eu deixo para criar um unico item ??
no item.xml
<item id="17117" article="a" name="Thor"/>
-
[25/09/2016 01:24:32] [Error - Action Interface]
[25/09/2016 01:24:32] data/actions/scripts/Basic/goback.lua:onUse
[25/09/2016 01:24:32] Description:
[25/09/2016 01:24:33] data/lib/newStatusSyst.lua:563: attempt to compare number with boolean
[25/09/2016 01:24:33] stack traceback:
[25/09/2016 01:24:33] data/lib/newStatusSyst.lua:563: in function 'doLeech2'
[25/09/2016 01:24:33] data/lib/newStatusSyst.lua:732: in function 'doCondition2'
[25/09/2016 01:24:33] data/lib/level system.lua:215: in function 'adjustStatus'
[25/09/2016 01:24:33] data/actions/scripts/Basic/goback.lua:216: in function <data/actions/scripts/Basic/goback.lua:18> -
4 minutos atrás, Josegvb disse:
poderia me falar com ql pokemon acontece isso?
acontece as vezes quando um pokemon morre ex: pidgeot já aconteceu com ampharos também
-
2 minutos atrás, eryrrel disse:
Bom, você que sabe, mas as vezes 1 segundo é muito tempo pra morrer
realmente!
4 minutos atrás, Drakopoulos disse:local EFFECTS = { --[OutfitID] = {Effect} ["Magmar"] = 35, ["Shiny Magmar"] = 35, ["Shiny Magmortar"] = 35, ["Shiny Electivire"] = 48, ["Magmortar"] = 35, ["Electivire"] = 48, ["Jynx"] = 17, --alterado v1.5 ["Shiny Jynx"] = 17, ["Piloswine"] = 205, --alterado v1.8 ["Swinub"] = 205, }local exausted = 3 --Tempo em seg local sto_exa = 892213 --Storage da exaustedfunction onUse(cid, item, frompos, item2, topos)if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true endif isRiderOrFlyOrSurf(cid) then return true endif getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1 then --alterado v1.9 << return true endlocal ballName = getItemAttribute(item.uid, "poke")local btype = getPokeballType(item.itemid)local usando = pokeballs[btype].uselocal effect = pokeballs[btype].effect if not effect then effect = 21 end unLock(item.uid) --alterado v1.8if item.itemid == usando and #getCreatureSummons(cid) > 0 then local summon = getCreatureSummons(cid)[1] if getPlayerStorageValue(summon, 9658783) == 1 and isInArray({"Aggron", "Sudowoodo", "Mega Aggron"}, getCreatureName(summon)) then doKillWildPoke(getCreatureSummons(cid)[1], getCreatureSummons(cid)[1]) doPlayerSendCancel(cid, "This pokemon is fainted.") if isInDuel(cid) then doRemoveCountPokemon(cid) end return true end if getPlayerStorageValue(cid, 990) == 1 then -- GYM doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.") return true end if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v1.6 if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then BackTeam(cid) end end if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then doPlayerSendCancel(cid, "You can't do that while is controling a mind") return true --alterado v1.5 end if #getCreatureSummons(cid) <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) doPlayerSendCancel(cid, "This pokemon is fainted.") return true end end local cd = getCD(item.uid, "blink", 30) if cd > 0 then setCD(item.uid, "blink", 0) end local z = getCreatureSummons(cid)[1] if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then return true end if isInDuel(cid) then doRemoveCountPokemon(cid) end checkGiveUp(cid) setPlayerStorageValue(cid, sto_exa, os.time() + exausted) doReturnPokemon(cid, z, item, effect) doPlayerSendCancel(cid, '12//,hide') --alterado v1.7 doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_DITTO_MEMORY, "sair") -- ditto memory system elseif item.itemid == pokeballs[btype].on then if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then doPlayerSendCancel(cid, "You must put your pokeball in the correct place!") return TRUE end -- rever a seguranca do pokemon ser sumanado com 0 de hp local pokemon = getItemAttribute(item.uid, "poke") if getPlayerStorageValue(cid, sto_exa) > os.time() then return doPlayerSendCancel(cid, string.format("You're exausted. (%d second%s)", getPlayerStorageValue(cid, sto_exa) - os.time(), (getPlayerStorageValue(cid, sto_exa) - os.time()) > 1 and "s" or "")) end if not pokes[pokemon] then return true end----------------------- Sistema de nao poder carregar mais que 3 pokes lvl baixo e + q 1 poke de lvl medio/alto ---------------------------------if not isInArray({5, 6}, getPlayerGroupId(cid)) then local balls = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid) local low = {} local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"} if #balls >= 1 then for _, uid in ipairs(balls) do local nome = getItemAttribute(uid, "poke") if not isInArray(lowPokes, pokemon) and nome == pokemon and not isGod(cid) then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!") else if nome == pokemon then table.insert(low, nome) end end end endif #low >= 3 then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than three pokemons equals of low level!")end end--------------------------------------------------------------------------------------------------------------------------------------------------- local x = pokes[pokemon] local boost = getItemAttribute(item.uid, "boost") or 0 if getPlayerLevel(cid) < (x.level+boost) then doPlayerSendCancel(cid, "You need level "..(x.level+boost).." to use this pokemon.") return true end ---------------------------- Sistema pokes de clan -------------------------------------- local shinysClan = { ["Shiny Fearow"] = {4, "Wingeon"}, ["Shiny Flareon"] = {1, "Volcanic"}, ["Shiny Vaporeon"] = {2, "Seavel"}, ["Shiny Jolteon"] = {9, "Raibolt"}, ["Shiny Hypno"] = {7, "Psycraft"}, ["Shiny Golem"] = {3, "Orebound"}, ["Shiny Vileplume"] = {8, "Naturia"}, ["Shiny Nidoking"] = {5, "Malefic"}, ["Shiny Hitmontop"] = {6, "Gardestrike"}, --alterado v1.4 } if shinysClan[pokemon] and getPlayerGroupId(cid) < 4 then --alterado v1.9 \/ if getPlayerClanNum(cid) ~= shinysClan[pokemon][1] then doPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!") return true elseif getPlayerClanRank(cid) ~= 5 then doPlayerSendCancel(cid, "You need be atleast rank 5 to use this pokemon!") return true end end -------------------------------------------------------------------------------------- local isNicked, nick, pokemonRealName = false, pokemon, pokemon local pokeSourceCode = "sim" if getItemAttribute(item.uid, "copyName") then -- ditto system pokemon = getItemAttribute(item.uid, "copyName") pokemonRealName = getItemAttribute(item.uid, "poke") end if getItemAttribute(item.uid, "nick") and getItemAttribute(item.uid, "nick") ~= "" then isNicked = true nick = getItemAttribute(item.uid, "nick") pokeSourceCode = doCreateMonsterNick(cid, pokemon, getItemAttribute(item.uid, "nick"), getThingPos(cid), true) else pokeSourceCode = doCreateMonsterNick(cid, pokemon, retireShinyName(pokemonRealName), getThingPos(cid), true) -- chama o pokemon com nome verdadeiro, mas se for shiny ja tera seu nome alterado end if pokeSourceCode == "Nao" then doSendMsg(cid, "Não há espaço para seu pokemon.") return true end local pk = getCreatureSummons(cid)[1] setMoveSummon(cid, true) if not isCreature(pk) then return true end ------------------------passiva hitmonchan------------------------------ if isSummon(pk) then --alterado v1.8 \/ if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" then if not getItemAttribute(item.uid, "hands") then doSetItemAttribute(item.uid, "hands", 0) end local hands = getItemAttribute(item.uid, "hands") doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1) end end ------------------------------------------------------------------------- ---------movement magmar, jynx------------- if EFFECTS[getCreatureName(pk)] then markPosEff(pk, getThingPos(pk)) sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk)) end -------------------------------------------------------------------------- doCreatureSetLookDir(pk, 2) adjustStatus(pk, item.uid, true, true, true) doRegenerateWithY(getCreatureMaster(pk), pk) doCureWithY(getCreatureMaster(pk), pk) doTransformItem(item.uid, pokeballs[btype].use) local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", (isNicked and nick or retireShinyName(pokemon))) doCreatureSay(cid, mgo, TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(pk), effect) doSendParticleAura(pk, 81) doPlayerSendCancel(cid, '12//,show') doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_BATTLE_POKEMON, tostring(pk)) setPokemonGhost(pk) if getCreatureName(pk):find("Smeargle") then local id = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "SmeargleID") setPlayerStorageValue(pk, storages.SmeargleID, "Smeargle " .. id) end else doPlayerSendCancel(cid, "This pokemon is fainted.")end -- otclient life doSendLifePokeToOTC(cid) doUpdateMoves(cid) -- otclient life return trueend
Obrigado Melhorou agora! <3
-
Agora, Drakopoulos disse:
local EFFECTS = { --[OutfitID] = {Effect} ["Magmar"] = 35, ["Shiny Magmar"] = 35, ["Shiny Magmortar"] = 35, ["Shiny Electivire"] = 48, ["Magmortar"] = 35, ["Electivire"] = 48, ["Jynx"] = 17, --alterado v1.5 ["Shiny Jynx"] = 17, ["Piloswine"] = 205, --alterado v1.8 ["Swinub"] = 205, }local exausted = 3 --Tempo em seg local sto_exa = 892213 --Storage da exaustedfunction onUse(cid, item, frompos, item2, topos)if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true endif isRiderOrFlyOrSurf(cid) then return true endif getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1 then --alterado v1.9 << return true endlocal ballName = getItemAttribute(item.uid, "poke")local btype = getPokeballType(item.itemid)local usando = pokeballs[btype].uselocal effect = pokeballs[btype].effect if not effect then effect = 21 end unLock(item.uid) --alterado v1.8if item.itemid == usando and #getCreatureSummons(cid) > 0 then local summon = getCreatureSummons(cid)[1] if getPlayerStorageValue(summon, 9658783) == 1 and isInArray({"Aggron", "Sudowoodo", "Mega Aggron"}, getCreatureName(summon)) then doKillWildPoke(getCreatureSummons(cid)[1], getCreatureSummons(cid)[1]) doPlayerSendCancel(cid, "This pokemon is fainted.") if isInDuel(cid) then doRemoveCountPokemon(cid) end return true end if getPlayerStorageValue(cid, 990) == 1 then -- GYM doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.") return true end if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v1.6 if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then BackTeam(cid) end end if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then doPlayerSendCancel(cid, "You can't do that while is controling a mind") return true --alterado v1.5 end if #getCreatureSummons(cid) <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) doPlayerSendCancel(cid, "This pokemon is fainted.") return true end end local cd = getCD(item.uid, "blink", 30) if cd > 0 then setCD(item.uid, "blink", 0) end local z = getCreatureSummons(cid)[1] if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then return true end if isInDuel(cid) then doRemoveCountPokemon(cid) end checkGiveUp(cid) setPlayerStorageValue(cid, sto_exa, os.time() + exausted) doReturnPokemon(cid, z, item, effect) doPlayerSendCancel(cid, '12//,hide') --alterado v1.7 doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_DITTO_MEMORY, "sair") -- ditto memory system elseif item.itemid == pokeballs[btype].on then if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then doPlayerSendCancel(cid, "You must put your pokeball in the correct place!") return TRUE end -- rever a seguranca do pokemon ser sumanado com 0 de hp local pokemon = getItemAttribute(item.uid, "poke") if getPlayerStorageValue(cid, sto_exa) > os.time() then return doPlayerSendCancel(cid, string.format("You're exausted. (%d second%s)", getPlayerStorageValue(cid, sto_exa) - os.time(), (getPlayerStorageValue(cid, sto_exa) - os.time()) > 1 and "s" or "")) end if not pokes[pokemon] then return true end----------------------- Sistema de nao poder carregar mais que 3 pokes lvl baixo e + q 1 poke de lvl medio/alto ---------------------------------if not isInArray({5, 6}, getPlayerGroupId(cid)) then local balls = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid) local low = {} local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"} if #balls >= 1 then for _, uid in ipairs(balls) do local nome = getItemAttribute(uid, "poke") if not isInArray(lowPokes, pokemon) and nome == pokemon and not isGod(cid) then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!") else if nome == pokemon then table.insert(low, nome) end end end endif #low >= 3 then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than three pokemons equals of low level!")end end--------------------------------------------------------------------------------------------------------------------------------------------------- local x = pokes[pokemon] local boost = getItemAttribute(item.uid, "boost") or 0 if getPlayerLevel(cid) < (x.level+boost) then doPlayerSendCancel(cid, "You need level "..(x.level+boost).." to use this pokemon.") return true end ---------------------------- Sistema pokes de clan -------------------------------------- local shinysClan = { ["Shiny Fearow"] = {4, "Wingeon"}, ["Shiny Flareon"] = {1, "Volcanic"}, ["Shiny Vaporeon"] = {2, "Seavel"}, ["Shiny Jolteon"] = {9, "Raibolt"}, ["Shiny Hypno"] = {7, "Psycraft"}, ["Shiny Golem"] = {3, "Orebound"}, ["Shiny Vileplume"] = {8, "Naturia"}, ["Shiny Nidoking"] = {5, "Malefic"}, ["Shiny Hitmontop"] = {6, "Gardestrike"}, --alterado v1.4 } if shinysClan[pokemon] and getPlayerGroupId(cid) < 4 then --alterado v1.9 \/ if getPlayerClanNum(cid) ~= shinysClan[pokemon][1] then doPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!") return true elseif getPlayerClanRank(cid) ~= 5 then doPlayerSendCancel(cid, "You need be atleast rank 5 to use this pokemon!") return true end end -------------------------------------------------------------------------------------- local isNicked, nick, pokemonRealName = false, pokemon, pokemon local pokeSourceCode = "sim" if getItemAttribute(item.uid, "copyName") then -- ditto system pokemon = getItemAttribute(item.uid, "copyName") pokemonRealName = getItemAttribute(item.uid, "poke") end if getItemAttribute(item.uid, "nick") and getItemAttribute(item.uid, "nick") ~= "" then isNicked = true nick = getItemAttribute(item.uid, "nick") pokeSourceCode = doCreateMonsterNick(cid, pokemon, getItemAttribute(item.uid, "nick"), getThingPos(cid), true) else pokeSourceCode = doCreateMonsterNick(cid, pokemon, retireShinyName(pokemonRealName), getThingPos(cid), true) -- chama o pokemon com nome verdadeiro, mas se for shiny ja tera seu nome alterado end if pokeSourceCode == "Nao" then doSendMsg(cid, "Não há espaço para seu pokemon.") return true end local pk = getCreatureSummons(cid)[1] setMoveSummon(cid, true) if not isCreature(pk) then return true end ------------------------passiva hitmonchan------------------------------ if isSummon(pk) then --alterado v1.8 \/ if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" then if not getItemAttribute(item.uid, "hands") then doSetItemAttribute(item.uid, "hands", 0) end local hands = getItemAttribute(item.uid, "hands") doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1) end end ------------------------------------------------------------------------- ---------movement magmar, jynx------------- if EFFECTS[getCreatureName(pk)] then markPosEff(pk, getThingPos(pk)) sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk)) end -------------------------------------------------------------------------- doCreatureSetLookDir(pk, 2) adjustStatus(pk, item.uid, true, true, true) doRegenerateWithY(getCreatureMaster(pk), pk) doCureWithY(getCreatureMaster(pk), pk) doTransformItem(item.uid, pokeballs[btype].use) local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", (isNicked and nick or retireShinyName(pokemon))) doCreatureSay(cid, mgo, TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(pk), effect) doSendParticleAura(pk, 81) doPlayerSendCancel(cid, '12//,show') doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_BATTLE_POKEMON, tostring(pk)) setPokemonGhost(pk) if getCreatureName(pk):find("Smeargle") then local id = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "SmeargleID") setPlayerStorageValue(pk, storages.SmeargleID, "Smeargle " .. id) end else doPlayerSendCancel(cid, "This pokemon is fainted.")end -- otclient life doSendLifePokeToOTC(cid) doUpdateMoves(cid) -- otclient life return trueend
vou testar
-
1 minuto atrás, eryrrel disse:
Olha cara, eu não recomendo colocar um exhausted porque as vezes o jogador precisa trocar rapidamente de poke, ou dar revive, e vai dar ruim ;x
porem está abusivo a velocidade de recolher o pokemon e soltar ele 1 segundo acho que já seria suficiente
-
Olá queria saber como corrijo esse erro desse script
[24/09/2016 17:01:56] [Error - Spell Interface] [24/09/2016 17:01:56] data/spells/scripts/ps/Ember.lua:onCastSpell[24/09/2016 17:01:56] Description: [24/09/2016 17:01:56] data/lib/pokemon moves.lua:5605: attempt to perform arithmetic on local 'lvl' (a boolean value)[24/09/2016 17:01:56] stack traceback:[24/09/2016 17:01:56] data/lib/pokemon moves.lua:5605: in function 'doBurnPoke'[24/09/2016 17:01:56] data/lib/pokemon moves.lua:566: in function 'docastspell'[24/09/2016 17:01:56] data/spells/scripts/ps/Ember.lua:5: in function <data/spells/scripts/ps/Ember.lua:1>
alguem sabe arrumar ??
[24/09/2016 20:59:25] [Error - TalkAction Interface]
[24/09/2016 20:59:25] data/talkactions/scripts/move1.lua:onSay
[24/09/2016 20:59:25] Description:
[24/09/2016 20:59:25] data/lib/pokemon moves.lua:5605: attempt to perform arithmetic on a boolean value
[24/09/2016 20:59:25] stack traceback:
[24/09/2016 20:59:25] data/lib/pokemon moves.lua:5605: in function 'doBurnPoke'
[24/09/2016 20:59:25] data/lib/pokemon moves.lua:566: in function 'docastspell'
[24/09/2016 20:59:25] data/talkactions/scripts/move1.lua:182: in function <data/talkactions/scripts/move1.lua:20>
-
19 minutos atrás, Drakopoulos disse:
Vc pode por um exausted no goback do actions
poderia me explicar como coloco o exausted ?
-
4 minutos atrás, Alexy Brocanello disse:
lá vai uma dica!!!!
Pokémon que se multiplicam, provavelmente eles não estão configurados corretamente, você tem que verificar Letras maiúsculas e minusculas, verificar a VIDA ver se está corretamente igual em monsters/pokes se esse for o caminho, verificar se o corpo está realmente certo, etc... verificar totalmente alguma diferença no pokemon!
Obrigado pela dica vou ficar atento quanto a isso!
6 minutos atrás, Drakopoulos disse:Verifique se está dando algum erro na distro quando sumona o poke, pois se n for no server provável que seja no client
ok vou verificar, você sabe aonde eu modifico a velocidade de tirar o pokemon da ball tipo colocar um exausted de 3 segundos ?
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.
[DarkXPoke] Contrata Programadores C++
em Formação de Equipes
Postado
sim @nociam, site http://darkxpoke.servegame.com
isso é interessante, Obrigado, vou testar