Histórico de Curtidas
-
Drakopoulos recebeu reputação de ledcar em Problema depois de criar site e colocar ot server onEstava com um problema parecido e n sei o motivo mas ele n se conectava na database com o sqlHost = "localhost" e sim por sqlHost = "127.0.0.1".
-
Drakopoulos recebeu reputação de ZoR em Erros ao Ligar SourceAmigo, distro é o executável que você usa para ligar o servidor. A source serve para você poder compilar uma nova distro(.exe) podendo fazer modificações mais aprofundadas no servidor.
Resumindo o mais breve possível, a source é a receita e a distro é o bolo
-
Drakopoulos recebeu reputação de tetelkk em Remover aura do sistema boot
-
Drakopoulos deu reputação a Byte em Adicionando novas RAÇAS!Olá pessoal, estive reparando que varias pessoas estão a procura de como criar uma nova raça no Tibia além das normais (fire, venom e undead), então estarei postando o método de como criar uma nova raça.
1 - No arquivo const.h procure por:
enum TextColor_t { 1.2 - E coloque isso abaixo:
TEXTCOLOR_NOVARACE = 5, 2 - Agora no arquivo enums.h procure por:
enum RaceType_t{ RACE_NONE = 0, RACE_VENOM, RACE_BLOOD, RACE_UNDEAD, RACE_FIRE, RACE_ENERGY, 2.1 - E coloque isso abaixo de RACE_ENERGY:
RACE_NOVARACE = 6, 3 - Em monster.cpp agora procure por isso:
if(readXMLString(root, "race", strValue)){ std::string tmpStrValue = asLowerCaseString(strValue); if(tmpStrValue == "venom" || atoi(strValue.c_str()) == 1) mType->race = RACE_VENOM; else if(tmpStrValue == "blood" || atoi(strValue.c_str()) == 2) mType->race = RACE_BLOOD; else if(tmpStrValue == "undead" || atoi(strValue.c_str()) == 3) mType->race = RACE_UNDEAD; else if(tmpStrValue == "fire" || atoi(strValue.c_str()) == 4) mType->race = RACE_FIRE; else if(tmpStrValue == "energy" || atoi(strValue.c_str()) == 5) mType->race = RACE_ENERGY; 3.1 - Agora coloque isso abaixo de mType->race = RACE_ENERGY;
else if(tmpStrValue == "NOVARACE" || atoi(strValue.c_str()) == 6) mType->race = RACE_NOVARACE; 4 - Agora em game.cpp procure por:
case RACE_BLOOD:textColor = TEXTCOLOR_RED; magicEffect = MAGIC_EFFECT_DRAW_BLOOD; splash = Item::CreateItem(ITEM_SMALLSPLASH, FLUID_BLOOD); break; 4.1 - Agora coloque isso abaixo:
case RACE_NOVARACE:textColor = TEXTCOLOR_NOVARACE; magicEffect = MAGIC_EFFECT_DRAW_BLOOD; splash = Item::CreateItem(ITEM_SMALLSPLASH, FLUID_BLOOD); break; Pronto você tem uma nova raça agora no seu servidor!
-
Drakopoulos deu reputação a Orochi Elf em [OrochiElf] New OTRestarter v1.0New OTRestarter
version: 1.0
developer: Tony Araújo (OrochiElf) pt. Gabriel Nogueira (Idéias)
Funções:
- Auto Restarter (Ele inicia o servidor assim que ele não detectar mais que o processo está ativo, ou seja, toda vez que o seu servidor fechar sozinho, o programa automaticamente irá reconhecer e irá reinicia-lo.)
- Auto Crash Timer (Uma nova função inédita foi adicionada, esta função é responsável por detectar quando o processo do servidor para de funcionar, algo que acontece frequentemente, então ele irá reconhecer e reiniciar o processo.)
- Auto Restarter Timer (Outra função nova adicionada nesta versão, esta função é responsável por programar os horários que você deseja reiniciar o seu servidor. ela é bastante usada para evitar o desperdício de memória usada no consumo do processo do servidor, ou seja, quando um servidor está ativo por muito tempo o gasto de memória aumenta, então esta função irá reiniciar o processo do seu servido de acordo com os horários que você marcar.
Para próxima versão:
- OTRestarter hosting (Esta função será uma inovação bastante bacana, ela dará o direito de você acessar o Restarter *que estará provavelmente instalado no VPS/Dedicado do servidor* sem que a pessoa precise acionar a conexão remota, ou seja, funcionará parecido com um FTP Control, você poderá controlar o Restarter e ter acesso as informações gravadas no LOG do programa através de um simples client, deixando possível ser acessado em computadores diferentes, e em breve uma versão para mobile/celular.)
Imagem do funcionamento do programa:
Download:
Programa anexado ao tópico.
OTRestarter.rar
-
Drakopoulos deu reputação a Avuenja em [OTC] Background animadoOlá pessoal, achei um tutorial muito legal na net, e resolvi trazer para vocês... Ele ensina como colocar background animado no OTClient.
Entendendo as limitações do OTC
Todos nós sabemos que o OTC só aceita imagens em .pgn e a maioria das imagens animadas são gif ou flash, então como vamos colocar imagens animadas no nosso cliente...
Introdução
Passeando pelas profundezas da internet andei lendo que o novo firefox 3 aceitara uma extensão de imagem nova, e qual é essa extensão o APNG isso mesmo Animated Portable Networks Graphics
então pensei vamos explorar isso.. encontrei um programa que se chama APNG Anime Maker e e ele que vamos utilizar
1º Passo
Baixe o Programa AQUI
( ele funciona por frames então vc tera que ter todas as imagens de sua animação 1 por 1 em qualquer arquivo mas desde que elas tenham o mesmo tamanho (1024x719 padrão OTC) para n dar conflito visual).
depois de baixar o programa e ter todas as imagens agora fica facil então vamos seguir.
2º Passo.
Abra o APNG
Menu Principal
OPEN > Abre as suas imagens SAVE > Salva a sua imagem em formato png (porem com a animação) CLEAN > Limpa todas as imagens Move Up / Move down > altera a ordem das imagens Menu Lateral
Delay > tempo para cada imagens ficar em exibição em ms ou fps Offset / Increment > não sei pra que serve =p os outros menus tbm n mas n vamos usar eu acho rsrs Após adicionar todas as suas imagens em frames e classificar a ordem e tempo de exibição delas salve o arquivo no botão SAVE e coloque dentro da pasta \data\images com nome de background e teste
-
Drakopoulos deu reputação a Orochi Elf em Catch Window v1.3Então beleza, semana que vem, provavelmente na próxima sexta feira eu lanço a versão 1.4 do sistema mega atualizado, irei recriar os códigos com novos conhecimentos. Até lá
-
Drakopoulos deu reputação a gustavo92 em [Download] Remake Dinheiro PxG 8.54Fala ae galera do Tibia King, estou trazendo em meu segundo post o remake do dinheiro da PxG na versão 8.54, o remake que tem para download aqui no Tibia King está numa outra versão e nessa já vem prontinho para o client 8.54.
Contem: Notas de 1 Dólar, 100 Dólares, 10 Mil Dólares [10k] e de 1 Milhão de Dólares [1kk] e também um script que eu configurei para 100 notas de 10k se transforme em 1 nota de 1kk e 1 nota de 1kk se transforme em 100 notas de 10k.
Substitua as notas de 1 dólar, 100 dólores e 10 mil dólares [10k], pelo mesmo id que estão nelas e a de 1kk você pode por no lugar do Gold Nuggets, mas ai é você quem sabe.
Print Screen:
Download:
Scan:
Script para adicionar a nota de 1kk:
Local do Script original em data/action/script/other, changegold.lua do seu server.
Depois que você colocar a nota de 1kk no seu client, coloque o id dela ali no script aonde está escriito: ID DA NOTA DE 1KK AQUI e salve.
A nota de 1kk não é necessariamente muito importante de colocar no seu server, mas pode ajudar caso a economia dele seja muita alta.
Sobre o Script, eu testei e está funcionando aqui mas como não sou scripter, eu não digo que ele está 100% correto, mas que está funcionando está!.
Qualquer dúvida fale ai que eu tento ajudar assim que eu ver.
Bom uso...
-
Drakopoulos deu reputação a xWhiteWolf em Duvida Duplicate Itensas vezes ele ta definindo que itens 4190-4195 são assim e ai vc define depois que o item 4192 é de outro jeito.. Ele vai dar duplicate de qlqer forma mesmo no ctrl f tendo apenas um 4192. Fica esperto nisso
-
Drakopoulos deu reputação a Lord Stryton em [Tutorial] Como editar scripts em .lua com acentos ortográficos.Fala galera, sou o [ADM]Harlock do Pokémon Undewater, e hoje vim mostrar a vocês como por acentos quando estiver editando seus scripts. Por exemplo: Você vê; Você está vendo; Está carregando, Pokémon.
1- Primeiro baixe o Notepad ++
(Clique aqui)
Escolha um Script para editar:
local pokes = { ["Charmander"] = {level = 16, go = "Vai Charmander", back = "Volte Charmander."}, ["Charmeleon"] = {level = 35, go = "Vai Charmeleon", back = "Volte Demon."}, ["Charizard"] = {level = 75, go = "Vai Dragon Lord", back = "Volte Dragon Lord."}, ["Mewtwo"] = {level = 8, go = "Vai Mewtwo", back = "Volte Mewtwo"}, } local msgunica = false function onUse(cid, item, frompos, item2, topos) local maxh = tonumber(getItemAttribute(item.uid, "poke"):match("/(.+)]")) local health = tonumber(getItemAttribute(item.uid, "poke"):match("%[(.-)/")) if item.itemid == pokeout then if health ~= nil and health <= 0 then return doPlayerSendCancel(cid, "Seu pokémon está desmaiado.") end if #getCreatureSummons(cid) >= 1 then for _,z in pairs(getCreatureSummons(cid)) do if getItemAttribute(item.uid, "poke"):find(getCreatureName(z)) then doTransformItem(item.uid, pokein) if msgunica then doCreatureSay(cid, "Volte, " .. getCreatureName(z), TALKTYPE_ORANGE_1) else doCreatureSay(cid, pokes[getCreatureName(z)].back, TALKTYPE_ORANGE_1) end doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke"):sub(1, findLetter(getItemAttribute(item.uid, "poke"), ".")) .. " HP = ["..getCreatureHealth(z).."/"..getCreatureMaxHealth(z).."]") setPlayerStorageValue(cid, 61204, 0) doSendMagicEffect(getCreaturePosition(z), 10) return doRemoveCreature(z) end end end elseif item.itemid == pokein then if not canSummon(cid) then return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHROOM) end if getPlayerStorageValue(cid, 63215) >= 1 then return doPlayerSendCancel(cid, "Você não pode usar seu pokémon enquanto estiver surfando.") end if getPlayerStorageValue(cid, 62314) >= 1 then return doPlayerSendCancel(cid, "Você não pode usar seu pokémon enquanto estiver voando.") end if getPlayerStorageValue(cid, 59987) >= 1 then return doPlayerSendCancel(cid, "Você não pode usar seu pokémon enquanto estiver montando.") end for i,x in pairs(pokes) do if #getCreatureSummons(cid) >= 1 then return doPlayerSendCancel(cid, "Você já chamou um pokémon..") end if i == getItemAttribute(item.uid, "poke"):sub(9, findLetter(getItemAttribute(item.uid, "poke"), "'")-1) then if getPlayerLevel(cid) >= x.level then pk = doSummonCreature(i, getThingPosition(cid)) doConvinceCreature(cid, pk) setCreatureMaxHealth(pk, tonumber(getItemAttribute(item.uid, "poke"):match("/(.+)]"))) doCreatureAddHealth(pk, maxh) doCreatureAddHealth(pk, health-maxh) doTransformItem(item.uid, pokeout) if msgunica then doCreatureSay(cid, "Vai, " .. i, TALKTYPE_ORANGE_1) else doCreatureSay(cid, x.go, TALKTYPE_ORANGE_1) end doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke"):sub(1, findLetter(getItemAttribute(item.uid, "poke"), "."))) doSendMagicEffect(getCreaturePosition(pk), 10) setPlayerStorageValue(cid, 61204, 1) registerCreatureEvent(pk, "DiePoke") registerCreatureEvent(cid, "PlayerPokeDeath") registerCreatureEvent(cid, "LogoutPoke") break else doPlayerSendCancel(cid, "Você precisa ser level "..x.level.." ou maior para usar este pokémon.") end end end end return TRUE end 2- Agora na parte superior do seu notepad.
"Formatar" e Escolha Codificação em ANSI
PRINT
E pronto, edite com acentos Ortigráficos e salve!
[ADM] Harlock
-
Drakopoulos recebeu reputação de samlecter em Erro: Warning - Protocol::RSA_decrypt] Not valid packet size@samlecter
Sim, execute ele na db, vá no phpmyadmin, abra a db e em SQL execute o comando. O autoBanishUnknownBytes irá banir automaticamente por exemplo quem usar bot. Não irá interferir em nada.
-
Drakopoulos deu reputação a Mauro Sérgio em Servidor PokeXPower V3 By Draw (ATUALIZADO Com A V3, 21/05/2016)Bom Pessoal Esse é Meu Primeiro Post Aqui Então Se Não Estiver Na Areá Certa Por Favor Mova-o, Sem Mais Delongas Vamos Falar Do Servidor.
Informações Básicas: O Servidor Contém 4 Gerações De Pokemons Completa, E Vários Shinys, Também Contem Mega Pokemons (Mais De 30), O Mapa é Parecido Com O Do OTPokemon, Varias Quests Interessantes Feitas.
Os Servidor Tem Alguns Sistemas Tais Quais:
Clãn System (No Total De 8, E Cada Um Da Outfit E Outras Coisas)
Police Ou Rocket System, Permitindo O Player Escolhe Um Lado Da Força Kk (Ganha Tambem Uma Outfit Exclusiva)
O Servidor Contém Tambem Boost Stone System (Boost Até +60)
E Claro Não Podemos Deixa De Citar A Bike System Com Almento De Velocidade Configuravel.
No Mapa Também Tem PVP E Trade Center (Para O PVP Funcionar Quando Ligar Serve Click Em World Type > PVP-Enforced.
Falando Um Pouco Do Client... Bom Ele é Bem Comum é Um OTC Com Todas Função Funcionando.
Erros: Alguns Faceis De Tirar Na Parte Dos Pokemon
Sem Potrait Alguns Pokemon (Não Acho Que Seja Erro Pois Da Pra Por Facil)
Prints:
ATUALIZAÇÃO V3
Link Do Download Do Client E Servidor V1.
http://www.4shared.com/rar/1tIOhOdOba/Base_PxP_Servidor_E_Client_V1.html
Link De Download Do Client E Servidor V2.
http://www.4shared.com/rar/ZMe4QFWDce/Pokemon_X_Power.html
Link De Download Do Client E Servidor V3
http://www.mediafire.com/download/kx6kobli6va034s/Pokemon+X+Power.rar
Scan:
https://www.virustotal.com/pt/file/b830f6800401d37e8ac7d2b0ae809c5a79a472f2373ec5ac5d561ccc354dab11/analysis/1452782049/
Creditos A Mim Que Fiz Tudo, Mais Informações No Site: http://maurosg8.wix.com/dwpoketibia
-
Drakopoulos deu reputação a xWhiteWolf em como fazer For your informationnão é um script, é uma função que está em data/creaturescripts/scripts/login.lua:
adiciona essas linhas antes do ultimo return true:
local txt = [[ Sua mensagem vem escrita aqui. Bom jogo! ]] doPlayerPopupFYI(cid, txt)
-
Drakopoulos deu reputação a Wakon em como fazer For your information@KotZletY tem sim, vá em "Data/talkactions/scripts", copie e cole um arquivo.lua e renomeie para cmdText.lua, apague tudo e cole:
local txt = [[ Comandos dos players. !online !uptime !infoplayer !pos e por ae vai! haushas ]] function onSay(cid, words, param) doPlayerPopupFYI(cid, txt) return true end Agora em "Data/talkactions", abra o arquivo talkactions.xml e adicione a tag:
<talkaction words="!cmdplayer" event="script" value="cmdText.lua"/>
-
Drakopoulos recebeu reputação de TASATSA em Pokémon Draw (Linux)Tenho salvo todas as libs que usei, vou upar elas e postar.
-
Drakopoulos recebeu reputação de Felipe Muniz em Pokémon Draw (Linux)Tenho salvo todas as libs que usei, vou upar elas e postar.
-
Drakopoulos recebeu reputação de TASATSA em Pokémon Draw (Linux)Tentei as versões 6, 7 e 8 debian mas nenhuma tinha as libs certas, oq eu fiz.. Peguei o debian 7 e exclui as libs e pacotes atualizadas e instalei manualmente as libs que o executor pedia.
-
Drakopoulos deu reputação a Lord Stryton em Remover Level SystemVeja agora o Goback do Action:
local pokeball = getPlayerSlotItem(cid, 8) local EFFECTS = { --[OutfitID] = {Effect} ["Magmar"] = 35, ["Jynx"] = 17, --alterado v1.5 ["Shiny Jynx"] = 17, ["Piloswine"] = 205, --alterado v1.8 ["Swinub"] = 205, } function onUse(cid, item, frompos, item2, topos) if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true end --alterado v1.6 sistema de firstpoke retirado if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then return true end ------------------------------------------------------- ballName = getItemAttribute(item.uid, "poke") btype = getPokeballType(item.itemid) usando = pokeballs[btype].use local effect = pokeballs[btype].effect if getItemAttribute(item.uid, "ball") == "pokeball" or getItemAttribute(item.uid, "ball") == "spokeball" then effect = 188 elseif getItemAttribute(item.uid, "ball") == "ultraball" or getItemAttribute(item.uid, "ball") == "sultraball" then effect = 191 elseif getItemAttribute(item.uid, "ball") == "superball" or getItemAttribute(item.uid, "ball") == "ssuperball" then effect = 190 elseif getItemAttribute(item.uid, "ball") == "greatball" or getItemAttribute(item.uid, "ball") == "sgreatball" then effect = 189 end --unLock(item.uid) --alterado v1.8 ---------------------------------------------------------- if item.itemid == usando then 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 doReturnPokemon(cid, z, item, effect) 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 local thishp = getItemAttribute(item.uid, "hp") if thishp <= 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 pokemon = getItemAttribute(item.uid, "poke") 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 bp = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK) local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"} local low = {} local lw = 1 for e, f in pairs(pokeballs) do for times = 1, 3 do local items = getItemsInContainerById(bp.uid, pokeballs[e].all[times]) if #items >= 1 then --alterado v1.6 for _, uid in pairs(items) do local nome1 = getItemAttribute(uid, "poke") if not isInArray(lowPokes, pokemon) and nome1 == pokemon then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!") elseif isInArray(lowPokes, pokemon) then if nome1 == pokemon then table.insert(low, lw, nome1) lw = lw +1 end end end end end end if #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.boost) then doPlayerSendCancel(cid, "You need level "..(x.boost).." to use this pokemon.") return true end -------------------------------------------------------------------------------------- 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) < 3 or getPlayerGroupId(cid) > 6) then --alterado v1.8 \/ 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 -------------------------------------------------------------------------------------- doSummonMonster(cid, pokemon) local pk = getCreatureSummons(cid)[1] 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 -------------------------------------------------------------------------- if getCreatureName(pk) == "Ditto" or getCreatureName(pk) == "Shiny Ditto" then --edited local left = getItemAttribute(item.uid, "transLeft") local name = getItemAttribute(item.uid, "transName") if left and left > 0 then setPlayerStorageValue(pk, 1010, name) doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1) addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn")) doItemSetAttribute(item.uid, "transBegin", os.clock()) else setPlayerStorageValue(pk, 1010, getCreatureName(pk) == "Ditto" and "Ditto" or "Shiny Ditto") --edited end end if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) end doCreatureSetLookDir(pk, 2) adjustStatus(pk, item.uid, true, true, true) doAddPokemonInOwnList(cid, pokemon) doTransformItem(item.uid, item.itemid+1) local pokename = getPokeName(pk) --alterado v1.7 local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename) doCreatureSay(cid, mgo, TALKTYPE_SAY) doSendMagicEffect(getCreaturePosition(pk), effect) if useOTClient then doPlayerSendCancel(cid, '12//,show') --alterado v1.7 end else doPlayerSendCancel(cid, "This pokemon is fainted.") end if useKpdoDlls then doUpdateMoves(cid) end return true end
-
Drakopoulos deu reputação a Lord Stryton em Remover Level SystemGoback do Action:
local pokeball = getPlayerSlotItem(cid, 8) local EFFECTS = { --[OutfitID] = {Effect} ["Magmar"] = 35, ["Jynx"] = 17, --alterado v1.5 ["Shiny Jynx"] = 17, ["Piloswine"] = 205, --alterado v1.8 ["Swinub"] = 205, } function onUse(cid, item, frompos, item2, topos) if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true end --alterado v1.6 sistema de firstpoke retirado if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then return true end ------------------------------------------------------- ballName = getItemAttribute(item.uid, "poke") btype = getPokeballType(item.itemid) usando = pokeballs[btype].use local effect = pokeballs[btype].effect if getItemAttribute(item.uid, "ball") == "pokeball" or getItemAttribute(item.uid, "ball") == "spokeball" then effect = 188 elseif getItemAttribute(item.uid, "ball") == "ultraball" or getItemAttribute(item.uid, "ball") == "sultraball" then effect = 191 elseif getItemAttribute(item.uid, "ball") == "superball" or getItemAttribute(item.uid, "ball") == "ssuperball" then effect = 190 elseif getItemAttribute(item.uid, "ball") == "greatball" or getItemAttribute(item.uid, "ball") == "sgreatball" then effect = 189 end --unLock(item.uid) --alterado v1.8 ---------------------------------------------------------- if item.itemid == usando then 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 doReturnPokemon(cid, z, item, effect) 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 local thishp = getItemAttribute(item.uid, "hp") if thishp <= 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 pokemon = getItemAttribute(item.uid, "poke") 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 bp = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK) local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"} local low = {} local lw = 1 for e, f in pairs(pokeballs) do for times = 1, 3 do local items = getItemsInContainerById(bp.uid, pokeballs[e].all[times]) if #items >= 1 then --alterado v1.6 for _, uid in pairs(items) do local nome1 = getItemAttribute(uid, "poke") if not isInArray(lowPokes, pokemon) and nome1 == pokemon then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!") elseif isInArray(lowPokes, pokemon) then if nome1 == pokemon then table.insert(low, lw, nome1) lw = lw +1 end end end end end end if #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.+boost) then doPlayerSendCancel(cid, "You need level "..(x.+boost).." to use this pokemon.") return true end -------------------------------------------------------------------------------------- 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) < 3 or getPlayerGroupId(cid) > 6) then --alterado v1.8 \/ 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 -------------------------------------------------------------------------------------- doSummonMonster(cid, pokemon) local pk = getCreatureSummons(cid)[1] 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 -------------------------------------------------------------------------- if getCreatureName(pk) == "Ditto" or getCreatureName(pk) == "Shiny Ditto" then --edited local left = getItemAttribute(item.uid, "transLeft") local name = getItemAttribute(item.uid, "transName") if left and left > 0 then setPlayerStorageValue(pk, 1010, name) doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1) addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn")) doItemSetAttribute(item.uid, "transBegin", os.clock()) else setPlayerStorageValue(pk, 1010, getCreatureName(pk) == "Ditto" and "Ditto" or "Shiny Ditto") --edited end end if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) end doCreatureSetLookDir(pk, 2) adjustStatus(pk, item.uid, true, true, true) doAddPokemonInOwnList(cid, pokemon) doTransformItem(item.uid, item.itemid+1) local pokename = getPokeName(pk) --alterado v1.7 local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename) doCreatureSay(cid, mgo, TALKTYPE_SAY) doSendMagicEffect(getCreaturePosition(pk), effect) if useOTClient then doPlayerSendCancel(cid, '12//,show') --alterado v1.7 end else doPlayerSendCancel(cid, "This pokemon is fainted.") end if useKpdoDlls then doUpdateMoves(cid) end return true end Catch:
Deixe o mesmo.
Goback do creature:
function onLogout(cid) local thisitem = getPlayerSlotItem(cid, 8) if thisitem.uid <= 0 then return true end local ballName = getItemAttribute(thisitem.uid, "poke") -------------------------------------------------------- btype = getPokeballType(thisitem.itemid) --------------------------------------------------------------- if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v2.6 if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then BackTeam(cid) end end --////////////////////////////////////////////////////////////////////////////////////////-- if not isCreature(cid) then return true end if getPlayerStorageValue(cid, 52480) >= 1 and isInParty(cid) then local party = getPartyMembers(cid) for j = 1, #party do if party[j] == cid then doSendAnimatedText(getThingPosWithDebug(party[j]), "LOSE", COLOR_BURN) setPlayerStorageValue(party[j], 52480, -1) setPlayerStorageValue(party[j], 52481, -1) --alterado v2.6 duel system else doSendAnimatedText(getThingPosWithDebug(party[j]), "WIN", COLOR_ELECTRIC) setPlayerStorageValue(party[j], 52480, -1) setPlayerStorageValue(party[j], 52481, -1) end end elseif getPlayerStorageValue(cid, 52481) >= 1 and not isInParty(cid) then for _, sid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(sid, 52482) == getCreatureName(cid) then addEvent(doSendAnimatedText, 1000, getThingPosWithDebug(sid), "WIN", COLOR_ELECTRIC) setPlayerStorageValue(sid, 52480, -1) setPlayerStorageValue(sid, 52481, -1) setPlayerStorageValue(sid, 52482, -1) setPlayerStorageValue(sid, 52483, -1) setPlayerStorageValue(sid, 6598754, -1) doCreatureSetSkullType(sid, 0) end end addEvent(doSendAnimatedText, 1000, getThingPosWithDebug(cid), "LOSE", COLOR_BURN) setPlayerStorageValue(cid, 52480, -1) setPlayerStorageValue(cid, 52481, -1) setPlayerStorageValue(cid, 52482, -1) setPlayerStorageValue(cid, 52483, -1) setPlayerStorageValue(cid, 6598754, -1) doCreatureSetSkullType(cid, 0) end --////////////////////////////////////////////////////////////////////////////////////////-- if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then local cmed2 = getCreatureSummons(cid)[1] local poscmed = getThingPos(cmed2) local cmeddir = getCreatureLookDir(cmed2) local namecmed = getCreatureName(cmed2) local hp, maxHp = getCreatureHealth(getCreatureSummons(cid)[1]), getCreatureMaxHealth(getCreatureSummons(cid)[1]) local gender = getPokemonGender(cmed2) doRemoveCreature(getCreatureSummons(cid)[1]) local back = doCreateMonster(namecmed, poscmed) addEvent(doCreatureSetSkullType, 150, back, gender) doCreatureSetLookDir(back, cmeddir) addEvent(doCreatureAddHealth, 100, back, hp-maxHp) --alterado v2.5 control mind -- pokemon controlador local ball2 = getPlayerSlotItem(cid, 8) local mynewpos = getThingPos(getCreatureSummons(cid)[1]) doRemoveCreature(getCreatureSummons(cid)[1]) local pk2 = doSummonCreature(getItemAttribute(ball2.uid, "poke"), mynewpos) doConvinceCreature(cid, pk2) addEvent(doAdjustWithDelay, 100, cid, pk2, true, true, false) setPlayerStorageValue(cid, 888, 0) cleanCMcds(ball2.uid) doCreatureSetLookDir(getCreatureSummons(cid)[1], 2) registerCreatureEvent(pk2, "SummonDeath") --alterado v2.6 end ------------------------------------------------------------------------------------- local summon = getCreatureSummons(cid)[1] if #getCreatureSummons(cid) >= 1 and thisitem.uid > 1 then if getPlayerStorageValue(cid, 212124) <= 0 then doItemSetAttribute(thisitem.uid, "hp", (getCreatureHealth(summon) / getCreatureMaxHealth(summon))) end --alterado v2.5 setPlayerStorageValue(cid, 212124, 0) doTransformItem(thisitem.uid, pokeballs[btype].on) doSendMagicEffect(getThingPos(summon), pokeballs[btype].effect) doRemoveCreature(summon) end if getCreatureOutfit(cid).lookType == 814 then doPlayerStopWatching(cid) end if tonumber(getPlayerStorageValue(cid, 17000)) and getPlayerStorageValue(cid, 17000) >= 1 then --alterado v2.6 markFlyingPos(cid, getThingPos(cid)) end if getPlayerStorageValue(cid, 22545) == 1 then --alterado v2.4 setGlobalStorageValue(22550, getGlobalStorageValue(22550)-1) end return TRUE end local deathtexts = {"Oh não! POKENAME, come back!", "Come back, POKENAME!", "That's enough, POKENAME!", "You did well, POKENAME!", "You need to rest, POKENAME!", "Nice job, POKENAME!", "POKENAME, you are too hurt!"} function onDeath(cid, deathList) local owner = getCreatureMaster(cid) if getPlayerStorageValue(cid, 637500) >= 1 then doSendMagicEffect(getThingPos(cid), 211) doRemoveCreature(cid) return true end if getPlayerStorageValue(cid, 212123) >= 1 then --alterado v2.5 return true end --////////////////////////////////////////////////////////////////////////////////////////-- checkDuel(owner) --alterado v2.6 duel system --////////////////////////////////////////////////////////////////////////////////////////-- local thisball = getPlayerSlotItem(owner, 8) local ballName = getItemAttribute(thisball.uid, "poke") btype = getPokeballType(thisball.itemid) if #getCreatureSummons(owner) > 1 then BackTeam(owner, getCreatureSummons(owner)) end doSendMagicEffect(getThingPos(cid), pokeballs[btype].effect) doTransformItem(thisball.uid, pokeballs[btype].off) doPlayerSendTextMessage(owner, 22, "Seu pokémon está desmaiado.") local say = deathtexts[math.random(#deathtexts)] say = string.gsub(say, "POKENAME", getCreatureName(cid)) if getPlayerStorageValue(cid, 33) <= 0 then doCreatureSay(owner, say, TALKTYPE_SAY) end doItemSetAttribute(thisball.uid, "hp", 0) doItemSetAttribute(thisball.uid, "happy", getPlayerStorageValue(cid, 1008) - happyLostOnDeath) doItemSetAttribute(thisball.uid, "hunger", getPlayerStorageValue(cid, 1009)) doRemoveCreature(cid) return false
Mande print dos arquivos da pasta Creaturescript e dos arquivos da Pasta data/lib para eu vê se tem algum outro relacionado ao level pokémon. Por que pode ser que mesmo editando esses 3 pode ser que não retire.
Qualquer erro manda a e.
Lembre-se de fazer outra pokéball com pokémon para não dá erro com as já existente.
Se for editar com o Notepad, sempre use codificação ANSI e salve. Assim você poderá editar com acentos Ortográficos!
-
Drakopoulos deu reputação a Natanael Beckman em DEV C++ Compilando TFS no WindowsDEV C++, aprenda a compila uma source TFS!
Downloads(Baixe de acordo as configurações do seu windows):
DEV C++ CONFIGURADO PARA 32BITS
DEV C++ CONFIGURADO PARA 64BITS
REV 3884 TFS 0.4
Certo, feitos os downloads, extrai DEV C++ no Disco C e REV 3884 em Documentos.
======================================
Abra o DEV C++:
======================================
======================================
Abra a Source:
======================================
======================================
Localize a pasta da Source e abra o arquivo TheForgottenServer.dev, Documentos> trunk.r3884> dev-cpp> TheForgottenServer.dev:
======================================
=============================================================
======================================
Aguarde carregar todos os arquivos:
======================================
======================================
Vamos adicionar o parâmetro -D__CONSOLE__ no teclado digita ALT + P, clique em parameters e adicione o parâmetro... Feito? clique em OK:
======================================
======================================
Vamos compilar Source, no teclado digite CTRL+F9 e aguarde finalizar o processo:
======================================
======================================
Se der tudo certo em Log vai estar como mostra a imagem abaixo:
======================================
======================================
Verifique na pasta Documentos> trunk.r3884> dev-cpp você vai encontrar o arquivo TheForgottenServer.exe e pronto meu parabéns você compilou!
======================================
===========================================
Só isso galera tutorial rápido resumido e útil!
Créditos Natanael Beckman!
===========================================
Caso você adquira uma source com apenas os arquivos .cpp e .h e não sabe como compilar o projeto, abaixo vamos explicar:
Na pasta onde está localizado os arquivos .cpp e .h crie uma pasta chamada dev-cpp, e dentro dela adicione uma imagem icone.
Abra o DEV-C++, clique em File> New> Project:
Logo em seguida selecione Empty Project, em name terá o nome Project1 altere utilize o nome quer quiser, após isso clique em OK e em seguida selecione a pasta dev-cpp que criamos:
Agora selecione a opção Win32GUI caso use source OTX ou TFS selecione Win32Console ao lado << Browse selecione a imagem do icone que está na pasta Dev-Cpp.
No mesmo menu na aba Parameters em C++ compiler adicione os seguintes parâmetros:
-D__ENABLE_SERVER_DIAGNOSTIC__ -D__ROOT_PERMISSION__ -D__GROUND_CACHE__ -D__USE_SQLITE__ -D__USE_MYSQL__ -D__CONSOLE__ -D__WAR_SYSTEM__ E em Linker adicione as seguintes libs:
-lboost_filesystem -lboost_thread -lboost_system -lboost_regex -lsqlite3 -lwsock32 -llua5.1 -lws2_32 -leay32 -lmysql -lxml2 -lgmp -lz -s No mesmo Menu na aba Build Option escreva na segunda coluna horizontal escreva Obj e dê OK. Na lateral terá o nome do seu projeto o meu no caso é The Forgotten Server, clique com o botão direito do mouse em cima do nome e clique na opção Add Project: Selecione na pasta da sua source todos os arquivos .cpp e .h após isso salva o projeto e já pode compilar CTRL+F9: OpenSSL 0.9.8 1º baixe http://devpaks.org/details.php?devpak=73 2° abra Dev-Cpp > Tools > Packager Manager > Install > Seleciona o arquivo baixado e instala, fecha abre e testa!
Clica aqui \/ -
Drakopoulos deu reputação a SniX em Projeto [Fala Seus Puto] Tiu SniXFala Seus Puto :>
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Vou Começar usar OTClient :).
Base TheForgottenServer 0.3.6pl1
151 pokes com todos os shinys e mega
Tv/Cam
Source Codes em perfeito estado
Moves m1-m9
Icon System
Travel, porta automatica, pvp, tr, e paint ball
Sistema de apelidar pokémon
Ditto system com ditto memory etc
System de poker cassino
Sistema de !Taunt e de emotion ex. !lol, !pikachu
Npcs de ginasio
Multi Linguagem !pt !eng
Sistema de boost até +50 todas as auras do pxg, menos as particle que não funfa no old client
pokémon passivo e agressivo
Sistema de dominio pokémon league a equipe que ganhar na semana tem alguns privilégios
Barra de cooldown no old client por dll
Sistema de pesca com iscas e etc
Sistema de addon nos pokémons
Sistema de Chuva baseado na chuva de iwagakure do ntoultimate
Sistema de duel, sistema de torneio com CameraMan na arena transmitindo na TV
Adicinado todas as race e elementos não usei do tibia = uns servidores meia boca por ai
Sistema de balanciamento o pokémon ganha uma quantia X de life, attack, defesa por level do player que esta usando ele
Sistema de caugth aprimorado pokémons comum são facilitados a cada ball jogada, já os shinys tem uma % de caugth fixa
Cansei de escrever meu português é horrível malz, eu desanimei porque eu e o tony ficava zuando ele fazendo o servidor dele e eu fazendo o meu mais ele parou ... ai ficou chato