Ir para conteúdo

[Encerrado] [Pokemon] Dúvidas? - Pda


lucashgas

Posts Recomendados

se tu aprendese a procurar antes de pergunta veria q ja postaram essa pasta umas 10x.. inclusive o flames, se n me engano, posto ela a algumas poucas paginas atras ¬¬

Link para o comentário
Compartilhar em outros sites

@all

 

Tem como abrir o serve por outro pograma sem ser pelo "PO dASH world[ Advanced]- Console ou Gui?

 

Meu computador ta dando erro no Microsoft visual c++ runtime error qando abro por eles

Link para o comentário
Compartilhar em outros sites

@tópico tenho uma duvida, mas acho que você não vai me ajuda... quando o player estive com batalha com um pokemon quando termina temos aquele famoso battle como pk, queria que quando acaba-se de luta com poke selvagem o pk (battle) sai-se rapido.

Link para o comentário
Compartilhar em outros sites

Slicer :|

 

no seu script da Qts de ball tem como fazer aparecer o nome do pokémon??

Tipo:16:34 You have wasted: 1253 Ultra Balls on Charizard.

:| hoje ja dei o rep + :|

Link para o comentário
Compartilhar em outros sites

@Slicer

Eu introduzi o seu sistema de Contagem de balls e esta dando esse erro:

 

 

 

 

[01/04/2012 17:17:05] [Error - Action Interface]

[01/04/2012 17:17:05] In a timer event called from:

[01/04/2012 17:17:05] data/actions/scripts/catch.lua:onUse

[01/04/2012 17:17:05] Description:

[01/04/2012 17:17:05] data/lib/catch system.lua:27: bad argument #2 to 'find' (string expected, got nil)

[01/04/2012 17:17:06] stack traceback:

[01/04/2012 17:17:06] [C]: in function 'find'

[01/04/2012 17:17:06] data/lib/catch system.lua:27: in function 'doBrokesCount'

[01/04/2012 17:17:06] data/lib/catch system.lua:328: in function <data/lib/catch system.lua:292>

 

 

 

Meu Catch System:

 

 

failmsgs = {
"Sorry, you didn't catch that pokemon.",
"Sorry, your pokeball broke.",
"Sorry, the pokemon escaped.",
}
local pballs = {--msg q aparece, ball name, num de letras + " = "
[1] = {msg = "Poke Ball", ball = "normal", num = 9}, --normal = ... 9 letras
[2] = {msg = "Great Ball", ball = "great", num = 8}, --great = ... 8 letras
[3] = {msg = "Super Ball", ball = "super", num = 8},
[4] = {msg = "Ultra Ball", ball = "ultra", num = 8},  --edited brokes count system
[5] = {msg = "Saffari Ball", ball = "saffari", num = 10},
}
--------------------------------------------------------------------------------
function doBrokesCount(cid, str, ball)  --edited brokes count system
if tonumber(getPlayerStorageValue(cid, str)) then
print("Error ocorred in function 'doBrokesCount'... storage "..str.." is a number value")
print("Storage will be changed to the correct table...")
doPlayerSendTextMessage(cid, 27, "A error ocorred... Warning sent to Game Masters!")
setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0")
return true
end
local s = string.explode(getPlayerStorageValue(cid, str), ",")
local msg = ""
local n = 0
for i = 1, #s do
if string.find(tostring(s[i]), ball) then
local d, e = s[i]:find(""..pballs[i].ball.." = (.-)")
local st2 = string.sub(s[i], d + pballs[i].num, e +5)
local num = tonumber(st2)+1if num == 0 and ball == pballs[i].ball then
num = 1
end
if i == #s then
msg = msg..""..ball.." = "..num
n = n +1
else
msg = msg..""..ball.." = "..num..", "
n = n +1
end
else
if i == #s then
msg = msg..s[i]
else
msg = msg..s[i]..", "
end
end
end
setPlayerStorageValue(cid, str, msg)
end
function sendBrokesMsg(cid, str, ball)  --edited brokes count system
if tonumber(getPlayerStorageValue(cid, str)) then
print("Error ocorred in function 'sendBrokesMsg'... storage "..str.." is a number value")
print("Storage will be changed to the correct table...")
doPlayerSendTextMessage(cid, 27, "A error ocorred... Warning sent to Game Masters!")
setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0")
return true
end
local t = string.explode(getPlayerStorageValue(cid, str), ",")
local msg = "You have wasted: "
local n = 0for a = 1, #t do
local d, e = t[a]:find(""..pballs[a].ball.." = (.-)")
local st2 = string.sub(t[a], d + pballs[a].num, e +5)
if tonumber(st2) == 0 and pballs[a].ball == ball then
st2 = 1
end
if tonumber(st2) ~= 0 then
if n ~= 0 and a ~= #t then
msg = msg..", "
end
if tonumber(st2) ~= 1 then
msg = msg..st2.." "..pballs[a].msg.."s"
n = n +1
else
msg = msg..st2.." "..pballs[a].msg
n = n +1
end
end
end
msg = msg.." to catch it."
doPlayerSendTextMessage(cid, 27, msg)
end
--------------------------------------------------------------------------------
--edited brokes count system
function doSendPokeBall(cid, catchinfo, showmsg, fullmsg, typeee)
local name = catchinfo.name
local pos = catchinfo.topos
local topos = {}
 topos.x = pos.x
 topos.y = pos.y
 topos.z = pos.z
local newid = catchinfo.newid
local catch = catchinfo.catch
local fail = catchinfo.fail
local rate = catchinfo.rate
local basechance = catchinfo.chancelocal corpse = getTopCorpse(topos).uid
if not isCreature(cid) then
 doSendMagicEffect(topos, CONST_ME_POFF)
return true
enddoItemSetAttribute(corpse, "catching", 1)
local levelChance = getItemAttribute(corpse, "level") * 0.02local totalChance = math.ceil(basechance * (1.2 + levelChance))
local thisChance = math.random(0, totalChance)
local myChance = math.random(0, totalChance)
local leveltable = getPokemonExperienceTable(name)
local chance = (1 * rate + 1) / totalChance
 chance = doMathDecimal(chance * 100)
if rate >= totalChance then
 local status = {}
    status.clevel = tonumber(getItemAttribute(corpse, "level"))
 local clevel = status.clevel
   status.cexp = leveltable[clevel]
 local cexp = status.cexp
    status.cnext = leveltable[clevel+1] - cexp
    status.coffense = getItemAttribute(corpse, "offense")
    status.cdefense = getItemAttribute(corpse, "defense")
    status.cspeed = getItemAttribute(corpse, "speed")
    status.cvitality = getItemAttribute(corpse, "vitality")
    status.cspatk = getItemAttribute(corpse, "spattack")
    status.gender = getItemAttribute(corpse, "gender")
    status.happy = 160  doRemoveItem(corpse, 1)
    doSendMagicEffect(topos, catch)  --edited brokes system
    addEvent(doCapturePokemon, 4000, cid, name, newid, status, typeee)
 addEvent(doCreatureExecuteTalkAction, 5000, cid, "/pokeread")
return true
end

if totalChance <= 1 then totalChance = 1 endlocal myChances = {}
local catchChances = {}

for cC = 0, totalChance do
 table.insert(catchChances, cC)
endfor mM = 1, rate do
 local element = catchChances[math.random(1, #catchChances)]
 table.insert(myChances, element)
 catchChances = doRemoveElementFromTable(catchChances, element)
end

local status = {}
   status.clevel = tonumber(getItemAttribute(corpse, "level"))
local clevel = status.clevel
  status.cexp = leveltable[clevel]
local cexp = status.cexp
   status.cnext = leveltable[clevel+1] - cexp
   status.coffense = getItemAttribute(corpse, "offense")
   status.cdefense = getItemAttribute(corpse, "defense")
   status.cspeed = getItemAttribute(corpse, "speed")
   status.cvitality = getItemAttribute(corpse, "vitality")
   status.cspatk = getItemAttribute(corpse, "spattack")
   status.gender = getItemAttribute(corpse, "gender")
   status.happy = 70doRemoveItem(corpse, 1)
local doCatch = falsefor check = 1, #myChances do
 if thisChance == myChances[check] then
  doCatch = true
 end
end
if doCatch then
	  doSendMagicEffect(topos, catch)  --edited brokes count system
	  addEvent(doCapturePokemon, 4000, cid, name, newid, status, typeee)
   else  --edited brokes count system
	  addEvent(doNotCapturePokemon, 4000, cid, name, typeee)
	  doSendMagicEffect(topos, fail)
   end
   end
--edited brokes count system
function doCapturePokemon(cid, poke, ballid, status, typeee)if not isCreature(cid) then
return true
end
local list = getCatchList(cid)
   if not isInArray(list, poke) then
	   doPlayerAddSoul(cid, 1)
   enddoAddPokemonInOwnList(cid, poke)
doAddPokemonInCatchList(cid, poke)
if not tonumber(getPlayerStorageValue(cid, 54843)) then
local test = io.open("data/sendtobrun123.txt", "a+")
local read = ""
if test then
 read = test:read("*all")
 test:close()
end
read = read.."\n[csystem.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, 54843)..""
local reopen = io.open("data/sendtobrun123.txt", "w")
reopen:write(read)
reopen:close()
setPlayerStorageValue(cid, 54843, 1)
endif not tonumber(getPlayerStorageValue(cid, 54843)) or getPlayerStorageValue(cid, 54843) == -1 then
 setPlayerStorageValue(cid, 54843, 1)
else
 setPlayerStorageValue(cid, 54843, getPlayerStorageValue(cid, 54843) + 1)
end
local description = "Contains a "..poke.."."local leveltable = getPokemonExperienceTable(poke)
local clevel = status.clevel
local cexp = leveltable[clevel]
local cnext = leveltable[clevel+1] - cexp
local coffense = status.coffense
local cdefense = status.cdefense
local cspeed = status.cspeed
local cvitality = status.cvitality
local cspatk = status.cspatk
local gender = status.gender
local happy = 200local item = doCreateItemEx(ballid)
 doItemSetAttribute(item, "poke", poke)
 doItemSetAttribute(item, "hp", 1)
 doItemSetAttribute(item, "offense", coffense)
 doItemSetAttribute(item, "level", clevel)
 doItemSetAttribute(item, "exp", cexp)
 doItemSetAttribute(item, "nextlevelexp", cnext)
 doItemSetAttribute(item, "defense", cdefense)
 doItemSetAttribute(item, "speed", cspeed)
 doItemSetAttribute(item, "vitality", cvitality)
 doItemSetAttribute(item, "specialattack", cspatk)
 doItemSetAttribute(item, "happy", happy)
 doItemSetAttribute(item, "gender", gender)
 doItemSetAttribute(item, "fakedesc", description)
 doItemSetAttribute(item, "description", description)
 if poke == "Hitmonchan" or poke == "Shiny Hitmonchan" then
 doItemSetAttribute(item, "hands", 0)
 endlocal storage = newpokedex[poke].stoCatch  --edited brokes count system
if getPlayerMana(cid) >= 6 or getContainerSize(getPlayerSlotItem(cid, 3).uid) >= 18 then
doPlayerSendMailByName(getCreatureName(cid), item, 1)
doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a pokemon ("..poke..", level "..clevel..")!")
doPlayerSendTextMessage(cid, 27, "Since you are already holding six pokemons, this pokeball has been sent to your depot.")
--------------------------------------------------------------------------------
sendBrokesMsg(cid, storage, typeee)  --edited brokes count system
setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0")
else
doAddContainerItemEx(getPlayerSlotItem(cid, 3).uid, item)
doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a "..poke.." (level "..clevel..")!")
--------------------------------------------------------------------------------
sendBrokesMsg(cid, storage, typeee)  --edited brokes count system
setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0")
end
if #getCreatureSummons(cid) >= 1 then
 doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 178)
  if catchMakesPokemonHappier then
   setPlayerStorageValue(getCreatureSummons(cid)[1], 1008, getPlayerStorageValue(getCreatureSummons(cid)[1], 1008) + math.floor(clevel / 2))
  end
else
 doSendMagicEffect(getThingPos(cid), 178)
enddoIncreaseStatistics(poke, true, true)
endfunction doNotCapturePokemon(cid, poke)
if not isCreature(cid) then
return true
endif not tonumber(getPlayerStorageValue(cid, 54843)) then
local test = io.open("data/sendtobrun123.txt", "a+")
local read = ""
if test then
 read = test:read("*all")
 test:close()
end
read = read.."\n[csystem.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, 54843)..""
local reopen = io.open("data/sendtobrun123.txt", "w")
reopen:write(read)
reopen:close()
setPlayerStorageValue(cid, 54843, 1)
end
if not tonumber(getPlayerStorageValue(cid, 54843)) or getPlayerStorageValue(cid, 54843) == -1 then
 setPlayerStorageValue(cid, 54843, 1)
else
 setPlayerStorageValue(cid, 54843, getPlayerStorageValue(cid, 54843) + 1)
enddoPlayerSendTextMessage(cid, 27, failmsgs[math.random(#failmsgs)])
if #getCreatureSummons(cid) >= 1 then
 doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 166)
else
 doSendMagicEffect(getThingPos(cid), 166)
end--------------------------------------------------------------------------------
local storage = newpokedex[poke].stoCatch
doBrokesCount(cid, storage, typeee) --edited brokes count system
sendBrokesMsg(cid, storage, typeee)
--------------------------------------------------------------------------------
doIncreaseStatistics(poke, true, false)end

function getPlayerInfoAboutPokemon(cid, poke)
local a = newpokedex[poke]
if not isPlayer(cid) then return false end
if not a then
 print("Error while executing function \"getPlayerInfoAboutPokemon(\""..getCreatureName(cid)..", "..poke..")\", "..poke.." doesn't exist.")
return false
end
local b = getPlayerStorageValue(cid, a.storage)if b == -1 then
 setPlayerStorageValue(cid, a.storage, poke..":")
end
local ret = {}
 if string.find(b, "catch,") then
  ret.catch = true
 else
  ret.catch = false
 end
 if string.find(b, "dex,") then
  ret.dex = true
 else
  ret.dex = false
 end
 if string.find(b, "use,") then
  ret.use = true
 else
  ret.use = false
 end
return ret
end
function doAddPokemonInOwnList(cid, poke)
if getPlayerInfoAboutPokemon(cid, poke).use then return true endlocal a = newpokedex[poke]
local b = getPlayerStorageValue(cid, a.storage)
setPlayerStorageValue(cid, a.storage, b.." use,")
endfunction isPokemonInOwnList(cid, poke)
if getPlayerInfoAboutPokemon(cid, poke).use then return true endreturn false
end
function doAddPokemonInCatchList(cid, poke)if getPlayerInfoAboutPokemon(cid, poke).catch then return true end
local a = newpokedex[poke]
local b = getPlayerStorageValue(cid, a.storage)setPlayerStorageValue(cid, a.storage, b.." catch,")
end
function getCatchList(cid)local ret = {}
for a = 1000, 1251 do
local b = getPlayerStorageValue(cid, a)
if b ~= 1 and string.find(b, "catch,") then
 table.insert(ret, oldpokedex[a-1000][1])
end
endreturn ret
end
function getStatistics(pokemon, tries, success)
local ret1 = 0
local ret2 = 0local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30))..""
local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt"
local arq = io.open(dir, "a+")
local num = tonumber(arq:read("*all"))
   if num == nil then
   ret1 = 0
   else
   ret1 = num
   end
   arq:close()
local dir = "data/Pokemon Statistics/"..poke.." Catches.txt"
local arq = io.open(dir, "a+")
local num = tonumber(arq:read("*all"))
   if num == nil then
   ret2 = 0
   else
   ret2 = num
   end
   arq:close()if tries == true and success == true then
return ret1, ret2
elseif tries == true then
return ret1
else
return ret2
end
end
function doIncreaseStatistics(pokemon, tries, success)local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30))..""
if tries == true then
 local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt"  local arq = io.open(dir, "a+")
 local num = tonumber(arq:read("*all"))
    if num == nil then
    num = 1
    else
    num = num + 1
    end
    arq:close()
 local arq = io.open(dir, "w")
    arq:write(""..num.."")
    arq:close()
end
if success == true then
 local dir = "data/Pokemon Statistics/"..poke.." Catches.txt"  local arq = io.open(dir, "a+")
 local num = tonumber(arq:read("*all"))
    if num == nil then
    num = 1
    else
    num = num + 1
    end
    arq:close()
 local arq = io.open(dir, "w")
    arq:write(""..num.."")
    arq:close()
end
end
function doUpdateGeneralStatistics()

local dir = "data/Pokemon Statistics/Pokemon Statistics.txt"
local base = "NUMBER  NAME	    TRIES / CATCHES\n\n"
local str = ""for a = 1, 251 do
if string.len(oldpokedex[a][1]) <= 7 then
str = "\t"
else
str = ""
end
local number1 = getStatistics(oldpokedex[a][1], true, false)
local number2 = getStatistics(oldpokedex[a][1], false, true)
base = base.."["..threeNumbers(a).."]\t"..oldpokedex[a][1].."\t"..str..""..number1.." / "..number2.."\n"
end

local arq = io.open(dir, "w")
   arq:write(base)
    arq:close()
end
function getGeneralStatistics()

local dir = "data/Pokemon Statistics/Pokemon Statistics.txt"
local base = "Number/Name/Tries/Catches\n\n"
local str = ""for a = 1, 251 do
local number1 = getStatistics(oldpokedex[a][1], true, false)
local number2 = getStatistics(oldpokedex[a][1], false, true)
base = base.."["..threeNumbers(a).."] "..oldpokedex[a][1].."  "..str..""..number1.." / "..number2.."\n"
end

return base
end
function doShowPokemonStatistics(cid)
if not isCreature(cid) then return false end
local show = getGeneralStatistics()
if string.len(show) > 8192 then
 print("Pokemon Statistics is too long, it has been blocked to prevent debug on player clients.")
 doPlayerSendCancel(cid, "An error has occurred, it was sent to the server's administrator.")
return false
end
doShowTextDialog(cid, math.random(2391, 2394), show)
end


 

 

 

Ja tentei arrumar e não consegui, e ja copiei denovo as coisas, ja criei outro char e nada.

 

Agradeço desde já.

Link para o comentário
Compartilhar em outros sites

@yahooABC

mano o script tava todo errado o.O n sei se foi quando tu coloco aki no forum ou n sei la.. ;x e tu coloco no catch.lua? n modificase algu errado na tabela "ballcatch"?.. ;x sei la pq esse erro da pq ele n ta conseguindo acha essa parte.. "normal = 0," na storage dos pokes.. ;x colocase tb a tabela do configuration.lua?...

 

@Dudu08267

pra isso teria q modificar a function e eh dificil explica.. ;/ e complicado pra implementar tb...

Link para o comentário
Compartilhar em outros sites

ow como eu fasso um npc q tipo "POR EXEMPLO" ele fala pra vc traze 2 fire stone, ai vc tras e ganha uma outfit ? alguem ajuda ?

;S

do REP+ pra qem me ajuda

Editado por Christopher Prado Stamboni
Link para o comentário
Compartilhar em outros sites

ow como eu fasso um npc q tipo "POR EXEMPLO" ele fala pra vc traze 2 fire stone, ai vc tras e ganha uma outfit ? alguem ajuda ?

;S

do REP+ pra qem me ajuda

 

Tais ai:

 

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 stg = 17763 -- storage para falar com o npc

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

 

if msgcontains(msg, 'mission') then

if getPlayerStorageValue(cid, stg) >= 1 then

selfSay("Sorry, you complete quest.", cid)

talkState[talkUser] = 0

else

selfSay("Ooooh good! I'm looking for some rare items... They are: Items", cid)

talkState[talkUser] = 1

end

end

---------------------------------------------------------

if (msgcontains(msg, "yes") or msgcontains(msg, "sim")) and talkState[talkUser] == 1 then

if doPlayerRemoveItem(cid, id, 1) and doPlayerRemoveItem(cid, id, 1) and doPlayerRemoveItem(cid, id, 1) and doPlayerRemoveItem(cid, id, 10) and doPlayerRemoveItem(cid, id, 1) == TRUE then

selfSay("Thank you!", cid)

setPlayerStorageValue(cid, 112, 1) -- storage para liberar outfit

setPlayerStorageValue(cid, stg, 1) -- para ele nao fazer a missao novamente

doPlayerAddExperience(cid,120000) -- experiencia

doPlayerAddItem(cid, 2152, 30)

doPlayerAddItem(cid, 2156, 1)

local bags = getPlayerSlotItem(cid, 3)

doAddContainerItem(bags.uid, 2148, 10) -- box 2

else

selfSay("Sorry, but you don't have all items.", cid)

talkState[talkUser] = 0

end

elseif (msgcontains(msg, "no") or msgcontains(msg, "nao")) and talkState[talkUser] == 1 then

selfSay("Good bye '..getCreatureName(cid)..'.", cid)

talkState[talkUser] = 0

end

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

q pena Slicer :| fica mei confuso sem o nome. mas dxa pra lá.

Editado por Dudu08267
Link para o comentário
Compartilhar em outros sites

@Christopher Prado Stamboni

manin a formula de dano das skills do brun eh MUITO loka.. e tpw a formula tb envolve o exp.lua e nao faço ideia de como funciona certinhu.. ;x vo da um exemplo de qnt loko eh esse sistema de dano do brun... se tu pegar a formula q ta no lib/pokemon moves.lua.. usando como exemplo um venusaur lvl 100 usando solar beam... vai da..

 

 

min = 5 + getPokemonLevel(cid) + (movesinfo[spell].f / 100 * movetype * specialoffenseRate)
max = min + getPokemonLevel(cid) * levelFactor

 

min = 5 + 100 + (135/100 * 10 * 3.55)  => 105+47.925 => 152,925
max = 152.925 + 100 * 1.4 => 292.925

 

esse em tese seria o dano q o solar beam tiraria dos pokes adversarios... mas dai clr entre o exp.lua q n sei nem como ele faz.. ;x

 

 

 

resumindo.. o q podes fazer eh inventar outra formula ou no minimo tentar balanciar editando o lib/moves.lua... ;x

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...