Ir para conteúdo

ZORAN

Membro
  • Registro em

  • Última visita

Tudo que ZORAN postou

  1. Olá amigos, estou retornando a ajustar um serve que possuo e quero posta-lo quando eu terminar parte dele ou todo, mais provável parte. Eu estou com um erro que não pude corrigir então venho pedir a ajuda de vocês para ajustar este erro. Erro: Ao capturar um pokemon, a pokeball e enviada para o depot com o pokemon morto, depois torna a pokebola impossível de se mover, impossibilitando o uso da mesma. Aqui esta o script do Catch.lua // Pasta actions local ballcatch = { [2394] = {cr = 3, on = 24, off = 23, ball = 11826, send = 47, typeee = "normal"}, [2391] = {cr = 6, on = 198, off = 197, ball = 11832, send = 48, typeee = "great"}, [2393] = {cr = 10, on = 202, off = 201, ball = 11835, send = 46, typeee = "super"}, [2392] = {cr = 15, on = 200, off = 199, ball = 11829, send = 49, typeee = "ultra"}, } function onUse(cid, item, frompos, item3, topos) local item2 = getTopCorpse(topos) if item2 == null then return true end if getItemAttribute(item2.uid, "catching") == 1 then return true end local name = string.lower(getItemNameById(item2.itemid)) name = string.gsub(name, "fainted ", "") name = string.gsub(name, "defeated ", "") local x = pokecatches[doCorrectPokemonName(name)] -------------------------------------------------------------------------------- local storage = newpokedex[doCorrectPokemonName(name)].stoCatch --edited brokes count system if getPlayerStorageValue(cid, storage) == -1 then setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0") end -------------------------------------------------------------------------------- if not x then return true end local owner = getItemAttribute(item2.uid, "corpseowner") if owner and isCreature(owner) and isPlayer(owner) and cid ~= owner then --alterado v1.5 doPlayerSendCancel(cid, "You are not allowed to catch this pokemon.") return true end ----------------------------------------------------- newidd = ballcatch[item.itemid].ball typeee = ballcatch[item.itemid].typeee ----------------------------------------------------- local catchinfo = {} catchinfo.rate = ballcatch[item.itemid].cr catchinfo.catch = ballcatch[item.itemid].on catchinfo.fail = ballcatch[item.itemid].off catchinfo.newid = newidd catchinfo.name = doCorrectPokemonName(name) catchinfo.topos = topos catchinfo.chance = x.chance doSendDistanceShoot(getThingPos(cid), topos, ballcatch[item.itemid].send) doRemoveItem(item.uid, 1) local d = getDistanceBetween(getThingPos(cid), topos) addEvent(doSendPokeBall, d * 70 + 100 - (d * 14) , cid, catchinfo, false, false, typeee) --edited brokes count system addEvent(doSendMagicEffect, (d * 70 + 100 - (d * 14)) - 100, topos, 3) return true end Aqui esta o Catch System.lua // Pasta lib 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}, --brokes count system [4] = {msg = "Ultra Ball", ball = "ultra", num = 8}, [5] = {msg = "Saffari Ball", ball = "saffari", num = 10}, } -------------------------------------------------------------------------------- function doBrokesCount(cid, str, ball) 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), ",") --Edited brokes count system 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)+1 if 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 = 0 for 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 -------------------------------------------------------------------------------- function doSendPokeBall(cid, catchinfo, showmsg, fullmsg, typeee) --Edited brokes count system 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.chance local corpse = getTopCorpse(topos).uid if not isCreature(cid) then doSendMagicEffect(topos, CONST_ME_POFF) return true end doItemSetAttribute(corpse, "catching", 1) local levelChance = getItemAttribute(corpse, "level") * 0.02 local 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) addEvent(doCapturePokemon, 4000, cid, name, newid, status, typeee) --Edited brokes count system return true end if totalChance <= 1 then totalChance = 1 end local myChances = {} local catchChances = {} for cC = 0, totalChance do table.insert(catchChances, cC) end for 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 = 70 doRemoveItem(corpse, 1) local doCatch = false for check = 1, #myChances do if thisChance == myChances[check] then doCatch = true end end if doCatch then doSendMagicEffect(topos, catch) addEvent(doCapturePokemon, 4000, cid, name, newid, status, typeee) --Edited brokes count system else addEvent(doNotCapturePokemon, 4000, cid, name, typeee) --Edited brokes count system doSendMagicEffect(topos, fail) end end function doCapturePokemon(cid, poke, ballid, status, typeee) --Edited brokes count system if not isCreature(cid) then return true end local list = getCatchList(cid) if not isInArray(list, poke) and not isShinyName(poke) then --Edited catch system doPlayerAddSoul(cid, 1) end doAddPokemonInOwnList(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) 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) 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 = 200 --alterado v2.6 if getPlayerFreeCap(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then --edited proteçao item = doCreateItemEx(ballid) else item = doAddContainerItem(getPlayerSlotItem(cid, 3).uid, ballid, 1) end 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 --edited passiva hitmonchan doItemSetAttribute(item, "hands", 0) end local storage = newpokedex[poke].stoCatch --alterado v2.6 if getPlayerFreeCap(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then --edited proteçao 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 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) end doIncreaseStatistics(poke, true, true) end function doNotCapturePokemon(cid, poke, typeee) --Edited brokes count system if not isCreature(cid) then return true end 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) 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) end doPlayerSendTextMessage(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 -------------------------------------------------------------------------------- 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 end local a = newpokedex[poke] local b = getPlayerStorageValue(cid, a.storage) setPlayerStorageValue(cid, a.storage, b.." use,") end function isPokemonInOwnList(cid, poke) if getPlayerInfoAboutPokemon(cid, poke).use then return true end return 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 end return ret end function getStatistics(pokemon, tries, success) local ret1 = 0 local ret2 = 0 local 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 Não usei Spoiler para não ter bug e etc... Caso precise de outro arquivo ou script e só pedir, agradeço a ajuda desde já! Um grande abraço e fiquem com Deus!
  2. Certo, Obrigado pela sua ajuda, depois adiciono ao tópico, mas não ouve necessidade comigo, mas por via das duvida!. Obrigado por sua contribuição. ----------------------------///------------------------------------- Não faz parte do tópico mas pude perceber pelo seu perfil que você e programmer, então se você puder me ajudar com um server que possuo com source, estou precisando de um código de Nick namer para o pokemon, exemplo já tem no serve o script e npc, mas não possui no distro as instruções então não a como o nome do pokemon ficar igual ao apelido adicionado pelo player. Se puder me ajudar, talvez eu retorne ao fórum no fim de semana. --------------------------------///--------------------------------- Obrigado valeu mesmo, vou testar e volto com o resultado. Um grande abraço e fique com Deus! Desculpe, não pude estar presente ao fórum anteriormente para responder, mas obrigado. Obrigado! Obrigado, fico feliz em poder ajudar! ////////////////////////////////////////////////////////////////////////////////////////////// Um grande abraço e fiquem com Deus!
  3. ZORAN respondeu ao post em um tópico de divinezera em Suporte & Pedidos
    Ideia promissora, mas deve-se pensar no usuário inicial e também deve-se analisar o ponto que no caso não seria uma forma de deixar o phpmyadmin, mas sim uma forma de facilitar o usuário sem prévio conhecimento, seria e indispensável a usabilidade do phpmyadmin pelo simples fato da suas funções de trabalho com SQL, a não ser que usássemos outros programas para a substituição do mesmo como o Navicat por exemplo, espero que meu ponto de vista seja previamente analisado e não seja levando como um ponto negativo, mas um ponto positivo de novas perspectivas de produção. Caso necessite de ajuda estou disposto a ajudar e apoio o projeto. Desejo sucesso e felicidades. Um grande abraço e fique com Deus! Basicamente não mudaria muito em questão aos websites, seria mais como já citado apenas uma pasta de acesso a mais. Seu ponto de vistão também parece esclarecer outras formas de visão para a comunidade. Obrigado por sua opinião será de grande valor! Atenciosamente, ZORAN
  4. Amigo para você editar suas Noticias você deve ir ate a tabela Account ou Players e procurar sua conta de Admin ou qualquer outra conta que queira e depois clicar em editar e procurar por Algo como Page acess ou Admin Acess e mudar o valor que estiver ou adicionar o valor 5 , depois basta entrar no seu site com a conta que você adicionou o privilegio 5 e você vai ver no canto ou no final do menu lateral um novo elemento chamado Painel do Admin, Basta clicar lá e editar tudo pela interface do próprio site. Se ajude fico feliz em ser útil. Duvidas,comentários, e outros estou a disposição! Um grande abraço e fique com Deus! Atenciosamente, ZORAN
  5. Olá Amigos do TibiaKing! Faz um bom tempo que não apareço por aqui, mas enfim vamos ao tutorial, um amigo chamado DkHenzo (espero que não se importe em colocar seu nome ) Bem vamos agora ao tutorial, devido a algumas pessoas terem erros em servidores de Poketibia, não sei se Tibia possui, eu resolvi fazer esse tutorial para ajudar o amigo citado acima e pensei "porque não ajudar mais pessoas também!", este e o principal motivo deste tutorial ajudar quem precise. O erro e o ( EVENT.WALK ) ele e um erro simples, que me custou algumas horas para descobrir como concertá-lo, primeiro para corrigi-lo existe 2(dois) meios o primeiro o corrige(Necessário source (Código Fonte do Servidor)) o segundo e apenas um paliativo(Não precisa de source). Bem Vamos lá: Método 1 1) Peque sua source e abra ela com o seu editor C/C++ preferido ou use o DevC++(DevCpp), pasta da source Dev-cpp(Pode ter outro nome, refere-se a pasta onde possui o arquivo primário de abertura do projeto) >>> TheForgottenServer.dev 2) Apos aberto procure o arquivo creatureevent.cpp e depois faça uma busca por: No valid type for creature event. Nota: Para fazer uma busca por determinado elemento basta usar a combinação de teclas CTRL + F Deve ser uma linha como essa: std::cout << "[Error - CreatureEvent::configureEvent] No valid type for creature event." << str << std::endl; 3) Apos ter feito essa busca você deve subir duas ou três linhas para cima e ira encontrar um bloco de código parecido com este: std::string tmpStr = asLowerCaseString(str); if(tmpStr == "login") m_type = CREATURE_EVENT_LOGIN; else if(tmpStr == "logout") m_type = CREATURE_EVENT_LOGOUT; else if(tmpStr == "joinchannel") m_type = CREATURE_EVENT_CHANNEL_JOIN; else if(tmpStr == "leavechannel") m_type = CREATURE_EVENT_CHANNEL_LEAVE; else if(tmpStr == "advance") m_type = CREATURE_EVENT_ADVANCE; else if(tmpStr == "sendmail") m_type = CREATURE_EVENT_MAIL_SEND; else if(tmpStr == "receivemail") m_type = CREATURE_EVENT_MAIL_RECEIVE; else if(tmpStr == "traderequest") m_type = CREATURE_EVENT_TRADE_REQUEST; else if(tmpStr == "tradeaccept") m_type = CREATURE_EVENT_TRADE_ACCEPT; else if(tmpStr == "textedit") m_type = CREATURE_EVENT_TEXTEDIT; else if(tmpStr == "reportbug") m_type = CREATURE_EVENT_REPORTBUG; else if(tmpStr == "look") m_type = CREATURE_EVENT_LOOK; else if(tmpStr == "think") m_type = CREATURE_EVENT_THINK; else if(tmpStr == "direction") m_type = CREATURE_EVENT_DIRECTION; else if(tmpStr == "move") m_type = CREATURE_EVENT_MOVE; else if(tmpStr == "outfit") m_type = CREATURE_EVENT_OUTFIT; else if(tmpStr == "statschange") m_type = CREATURE_EVENT_STATSCHANGE; else if(tmpStr == "areacombat") m_type = CREATURE_EVENT_COMBAT_AREA; else if(tmpStr == "push") m_type = CREATURE_EVENT_PUSH; else if(tmpStr == "target") m_type = CREATURE_EVENT_TARGET; else if(tmpStr == "follow") m_type = CREATURE_EVENT_FOLLOW; else if(tmpStr == "combat") m_type = CREATURE_EVENT_COMBAT; else if(tmpStr == "attack") m_type = CREATURE_EVENT_ATTACK; else if(tmpStr == "cast") m_type = CREATURE_EVENT_CAST; else if(tmpStr == "kill") m_type = CREATURE_EVENT_KILL; else if(tmpStr == "death") m_type = CREATURE_EVENT_DEATH; else if(tmpStr == "preparedeath") m_type = CREATURE_EVENT_PREPAREDEATH; else if(tmpStr == "spawn") m_type = CREATURE_EVENT_SPAWN; else if(tmpStr == "onmove") m_type = CREATURE_EVENT_ONMOVE; else Obs: alinha que procuramos acima no inicio do tutorial e parte deste bloco de código. 4) Agora se você nunca viu algo como isso antes não se assuste, devemos apenas ter atenção ao fazer tal operação. Preste atenção que no final do bloco existe uma pequena função chamada else devemos adicionar antes dela um peno bloco de código, copie o código abaixo e o cole antes do else Obs: Tente manter o mesmo padrão de sintaxe do código, forma ou estrutura ao qual o código e escrito. else if(tmpStr == "walk") m_type = CREATURE_EVENT_WALK; Deve ficar algo assim: // Bloco de codigo anterior // else if(tmpStr == "onmove") m_type = CREATURE_EVENT_ONMOVE; // Bloco de codigo que adicionamos // else if(tmpStr == "walk") m_type = CREATURE_EVENT_WALK; // ELSE abaixo do nosso bloco de codigo // else O código completo com o nosso bloco de código adicionado deve ser algo como abaixo, caso não, pode a ver outra funções já adicionadas por você ou por outras pessoas antes. Mas em geral ele deve ser bem parecido com este código abaixo. std::string tmpStr = asLowerCaseString(str); if(tmpStr == "login") m_type = CREATURE_EVENT_LOGIN; else if(tmpStr == "logout") m_type = CREATURE_EVENT_LOGOUT; else if(tmpStr == "joinchannel") m_type = CREATURE_EVENT_CHANNEL_JOIN; else if(tmpStr == "leavechannel") m_type = CREATURE_EVENT_CHANNEL_LEAVE; else if(tmpStr == "advance") m_type = CREATURE_EVENT_ADVANCE; else if(tmpStr == "sendmail") m_type = CREATURE_EVENT_MAIL_SEND; else if(tmpStr == "receivemail") m_type = CREATURE_EVENT_MAIL_RECEIVE; else if(tmpStr == "traderequest") m_type = CREATURE_EVENT_TRADE_REQUEST; else if(tmpStr == "tradeaccept") m_type = CREATURE_EVENT_TRADE_ACCEPT; else if(tmpStr == "textedit") m_type = CREATURE_EVENT_TEXTEDIT; else if(tmpStr == "reportbug") m_type = CREATURE_EVENT_REPORTBUG; else if(tmpStr == "look") m_type = CREATURE_EVENT_LOOK; else if(tmpStr == "think") m_type = CREATURE_EVENT_THINK; else if(tmpStr == "direction") m_type = CREATURE_EVENT_DIRECTION; else if(tmpStr == "move") m_type = CREATURE_EVENT_MOVE; else if(tmpStr == "outfit") m_type = CREATURE_EVENT_OUTFIT; else if(tmpStr == "statschange") m_type = CREATURE_EVENT_STATSCHANGE; else if(tmpStr == "areacombat") m_type = CREATURE_EVENT_COMBAT_AREA; else if(tmpStr == "push") m_type = CREATURE_EVENT_PUSH; else if(tmpStr == "target") m_type = CREATURE_EVENT_TARGET; else if(tmpStr == "follow") m_type = CREATURE_EVENT_FOLLOW; else if(tmpStr == "combat") m_type = CREATURE_EVENT_COMBAT; else if(tmpStr == "attack") m_type = CREATURE_EVENT_ATTACK; else if(tmpStr == "cast") m_type = CREATURE_EVENT_CAST; else if(tmpStr == "kill") m_type = CREATURE_EVENT_KILL; else if(tmpStr == "death") m_type = CREATURE_EVENT_DEATH; else if(tmpStr == "preparedeath") m_type = CREATURE_EVENT_PREPAREDEATH; else if(tmpStr == "spawn") m_type = CREATURE_EVENT_SPAWN; else if(tmpStr == "onmove") m_type = CREATURE_EVENT_ONMOVE; else if(tmpStr == "walk") m_type = CREATURE_EVENT_WALK; else { std::cout << "[Error - CreatureEvent::configureEvent] No valid type for creature event." << str << std::endl; return false; } 5) Apos ter feito tudo isso recomendo que Salve e Compile o seu novo Distro, depois desfrute do resultado ! ################################################################################# Segundo Modo Se você esta usando um server de Poketibia vá ate a pasta do seu servidor e depois para data >> creaturescripts >> creaturescripts.xml então abra o arquivo e comente ou retire a linha abaixo(recomendo comentar use apos toda a parte a ser comentada) <event type="walk" name="WalkTv" event="script" value="tvsys.lua"/> Exemplo da linha comentada: <!-- <event type="walk" name="WalkTv" event="script" value="tvsys.lua"/> --> Caso haja duvidas ou erros comente, farei o possível para ajudar. Um grande abraço e fiquem com Deus!
  6. ZORAN respondeu ao post em um tópico de ZORAN em Outros Clients
    Amigo, aqui e somente o cliente, se precisar de server de uma pequena olhada na área de downloads. Ou se tiver um agradeça ao autor pelo trabalho e dedicação e boa vontade de postar o server para compartilhamento. Obrigado por tudo! Um grande abraço e fique com Deus! Valeu será de grande ajuda, se já não o fez, de qualquer modo obrigado. Um grande abraço e fique com Deus! Amigo desculpe não poder te ajudar faz um bom tempo que não trabalho com tibia então não posso te ajudar agora, mas se eu puder em breve quando voltar a brincar com servidores eu vou ver se posso adiantar uns tutoriais e projetos parados.
  7. Postar o server que eu fiz! Talvez eu poste ele depois mas talvez vou ver se faço umas melhorias nele antes de postar! Ele e bem básico e possui alguns bugs como duplicar pokemon ao chamar de volta pra ball, mas talvez não seja problema pra vocês meus pupilos experts!
  8. Amigo as minhas stones já estão nesta lista mais eu queria que mostra-se na descrição da pokedex, exemplo onde fica mostrando a pedra de evolução mostra-se o nome da stone ou item de evolução deste pokemon, pois alguns tem na descrição da pokedex a stone que evolui. e outros esta em branco. Tipo quero colocar as descrição correta da podex nos pokemons, uso server base titanium, e se vc puder me falar onde muda o level de requerimento da evolução exemplo, tipo o pokemon evolui com stone quando tem o level 15 ai eu quero mudar só para ele evoluir com level 25, se puder me ajudar serei grato e obrigado pela ajuda e resposta. Um grande baraço e fique com Deus!
  9. Ola, pessoal, eu to mexendo em um ot aqui e gostaria de saber se vcs, pode me ajudar na seguinte coisa, alguns pokemons não aparece na pokedex a stone que ele evolui. fica apenas Evolui com Stone: e o nome da stone em branco. tipo gostaria de saber como posso colocar a stone de evolução neles obrigado. Se puder me ajudar também dizendo onde posso mudar a cor do nome do loot para verde, sei que e no config.Lua mais não lembro onde e como, e tipo também mudar o nome do poke morto para vermelho no goback.lua se puder pois não sei o código de cores. Um grande abraço e fique com Deus!
  10. Olá caros amigos do Tk, Eu venho através deste tópico, pedir a ajuda de vocês que são scripts e querem ajudar os servidores derivados a crescer, eu estou trabalhando em um server de poketibia que contem as Source, eu já adicionei nele as Race, que são os type dos Pokémons que faltava e já arrumei o erro do ispokeball que dava falha, agora ele possui mais erros básicos, e eu não sou script e nem estou com tempo para aprender a mexer agora, então eu venho pedir a ajuda de vocês, que queira me ajudar a arrumar ele e postar no fórum sendo e o server OPEN SOURCE, o servidor tem potencial e quem já mexe ou mexeu com poketibia e quer ajudar, basta me mandar uma mensagem no skype para me ajudar e eu passo o server não vou postar fotos nem nada, porque já postei em outro tópico onde tenho um designer para ajudar, mas se quiser ajudar e só me add. Se você não e script mas quer ajudar, sinta-se livre para entrar em contato. Skype: michel-helmer Um abraço a todos e fiquem com Deus.
  11. Amigo esse erro e que não foi possível abrir o arquivo "libboost_system-vc120-mt-gd-1_55.lib" tente novamente recompilar. se ão funcionar desinstale as boost e re-extrai todos os arquivos. e tente compilar novamente, a maioria dos erros e causado por pular alguma parte, ou simplesmente algum caminho que não foi indicado, repasse o tutorial e reveja se esta tudo ok, se o erro persistir não exite em voltar Obrigado, faremos o possível para ajudar. Desculpe-me a demora, e fique com Deus!
  12. amigo,você usou o mesmo projeto. se sim desta vez click em rebuild. Ou tente extrai novamente as boost, desculpe_me nao poder ajudar mais estou usando teclado virtual. abraço e fique com Deus!
  13. ZORAN respondeu ao post em um tópico de ZORAN em Formação de Equipe
    Blz amigo como sitei no server terá duas bases uma com level e uma sem level!
  14. ZORAN postou uma resposta no tópico em Formação de Equipe
    Olá, pessoal eu venho aqui para chamar os itereçados em me ajudar no projeto PAD Online, bem o que e PAD Online, Pad online e Pokemon Adventure Dash Online e um novo servidor que estou desevolvendo solitariamente e i rei postar uma base para o pessoal ele tem source e alguns erros, por esse motivo venho recrutar amigos que queiram ajudar. ERROS DO SERVER: Catch não pega pokemons GoBack não retorna pokemons e os duplica Pokemons do player quando morre não retorna e alguns outros erros Erro na source isPokeball O QUE TERÁ(apenas projeto): Servidor base pokemon Dash do Ricardo Atenção: averá duas Bases uma com level system e evolução por stones e a outra sem level system Bostmachine 100% Boost sendo mostrado no nome do pokemon stones 100% Pokemon da 1 a 2 Geração full todos os moves de m1 a m12 Muitas outras coisas. O QUE EU FIZ: Adicionei RACE_STEEL e RACE_DARK Arumei o erro de event. Walk O QUE VOU FAZER. Arumar as casas melhorar o mapa atualizar as sprints de pokemon 1 e 2 geração Retirar do client as Sprints de tibia E outras coisitas. VAGAS para equipe: Designer: abmauromacedo Scripter : Vago Vago Programador: Vago Caso saiba fazer outra coisa poste ai em baixo que vamos chamando diacordo com o necessario. Se quiser ajudar me ADD NO FACEBOOK OU no SKYPE: michel-helmer , e Deixe uma messagem ai em baixo, com Seu nome e o que faz. OBS: mande uma mensagem com o nome de, quero ajudar o POKE PAD. Um grande abraço e fique com Deus!
  15. Já retirei, mais creio que sejá algo nesta linha. it.isPokeball = intValue; erro continua
  16. Olá pessoal, eu estou editando um server de poketibia com sourcer e já consegui add nele as race que faltava mas agora estou precisando de ajuda para acertar o isPokeball pois recebo a mensagem Unknow key value, então estou tentando acertar na source. Eu quase consegui mas alterei dinovo e me esqueci do fiz mas peço que quem puder me ajudar sei grato. aqui esta o items.cpp :: Procure por /* aqui começa o ispokeball */ Um grande abraço e fiquem com Deus!
  17. Amigo para arumar o problema e simples basta trocar de getItemNameById para getItemName , so que agora o script não funciona como deveria eu uso arma e clico nela para usar no monstro e ela não desconta a munição e não faz nada, a não ser me enviar as messagens do script primeiro a de ativado e depois a de desativado.
  18. Quando eu achar a solução posto aqui a correção, enquanto isso vou pesso que deixem o topico aberto, Obrigado amigo e fique com Deus!
  19. Amigo obrigado pelo script, mas poderia me informar onde coloco o script pois não sei se devo colocar no global.lua ou dentro do campat.lua e onde dentro deles colocar, obrigado e fique com Deus.
  20. Amigo o script esta muito bom, mas eu recebo este erro. Obs: estou usando TFS 1.0 versão 10.37 tibia. http://i.imgur.com/ZjkB1n2.png PS: eu não entendi direito essa parte só itendi que erra para botar o ID da munição mas o outro eu não sei o que botar. local config = {storageativ = 76650, < aqui eu não sei> smallstoneid = 1294 <Aqui e a munição> }
  21. Olá amigos do TibiaKing, Eu venho pedir a vocês uma ajuda e suporte de como add uma arma no Tibia que funcina desta forma. Eu tenho a arma no slot e para usar esta arma, eu tenho que ter na Bag(mochila) um outro item que no caso seria a munição e quando a munição acabar a arma para de funcionar, enviando uma mensagem para o player, você não possui mais munição. Outra coisa gostaria de saber, como faço para quando o player clicar sobre a arma com o botão direito, ela fosse reduzindo a munição na Bag e usando um efeito de atack no monstro tipo uma explosão de fogo que seria usado saido do player, tipo como acontece no poketibia usa-se o atack e sai do pokemon um efeito mas no caso aqui o efeito só sairia do player quando clica-se na arma no slot. Peço que quem puder ajuder serei grato. Agradeço pela atenção e ajuda, um grande abraço e fique com Deus!
  22. Amigo temte usar aesta database que vem com este site ela e bem util para poketibia. http://www.4shared.com/rar/Wzeu2dh1ce/Site__Database.html Um grande abraço e fique com Deus.
  23. Olá pessoal gostaria de saber apenas como posso tirar sprints de outros client para por no meu exemplo eu peguei algumas ssprints de um ot de CSTibia 8.60 ou 8.54 se não me engano, para colocalas em um ot 10.37, mas o problema e que quando eu tento colocar as sprints no client novo recebo este erro: Parameter pixels has an invalid length, eu tambem recebo este mesmo erro quando tento colocar as sprints no mesmo client que retirei gostaria de saber como posso fazer esta tarefa, abaixo vou deixar umas sprints tiradas com object Builder. Sprints Scan Obrigado a todos! Um grande abraço e fiquem com Deus!
  24. ZORAN respondeu ao post em um tópico de kinglekke em Suporte Tibia OTServer
    Desculpe mas isso eu não sei fazer mas se descubrir eu falo ok.

Informação Importante

Confirmação de Termo