-
Total de itens
36 -
Registro em
-
Última visita
Tudo que carlos fabian postou
-
-
Eaw galera , so iniciante em tópicos aqui no xtibia , hoje vim trazer as sprites atualizadas do "dinheiro da pokexgames" . KK Dollar ; Dollar ; Hundred Dollar ; Thousand Dollar :
-
action Woodcutter System (lenhador)
tópico respondeu ao Krono de carlos fabian em Actions e Talkactions
Muito bom ... Mas daria para fazer da seguinte maneira ? : 1°Eu tenho que usar um item na arvore . 2°O player após usar o item na arvore fica por 5 segundos com outra outfit , e depois desses 5 segundos ele volta a outfit normal e ganha as madeiras . 3° Observação : Enquanto o player tiver com outra outfit ele não pode se mover . Obrigado .- 8 respostas
-
- woodcutter
- system
- (e 7 mais)
-
-
npc [PEDIDO] Npc's de Batalha Pokemon que da item como recompensa
tópico respondeu ao tatotheus de carlos fabian em Lixeira Pública
Funcionou em PDA , testei na skyfall . Fui editando e misturando o scripts de alguns npc's , ai consegui formar um que desse premio . -
npc [PEDIDO] Npc's de Batalha Pokemon que da item como recompensa
tópico respondeu ao tatotheus de carlos fabian em Lixeira Pública
Crie Um Arquivo XML Na Pasta : Data/Npc . -Coloque O Nome Que Deseja . - No XML Coloque : <?xml version="1.0" encoding="UTF-8"?> <npc name="NOME DO XML" script="NOME DO ARQUIVO .LUA QUE SERA USADO NA PASTA Data/NPC/Scripts" floorchange="0" speed="0"> <health now="150" max="150"/> <look type="NEWTYPE DA OUTFIT" head="97" body="114" legs="114" feet="0"/> <parameters> <parameter key="message_greet" value="Ola treinador , deseja duelar comigo , se consegiur me vencer guanhara um premio . "/> <parameter key="message_farewell" value="Ate Mais!"/> <parameter key="message_idletimeout" value="Ate Mais!!"/> <parameter key="message_walkaway" script="Ate Mais!!"/> </parameters> </npc> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -Crie Um Arquivo .lua Na Pasta : Data/NPC/Scripts . -No .Lua Coloque : local focus = 0 local max_distance = 8 local talk_start = 0 local conv = 0 local fighting = false local challenger = 0 local afk_limit_time = 30 -- seconds local afk_time = 0 -- don't change local battle_turn = 1 -- don't change local challenger_turn = 0 -- don't change local pokemons = { {name = "Nome Do Pokemon", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Nome Do Pokemon", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "great"}, {name = "Nome Do Pokemon", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "super"}, {name = "Nome Do Pokemon", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "ultra"}, } local function doSummonGymPokemon(npc) local this = npc if #getCreatureSummons(this) >= 1 or focus == 0 then return true end local it = pokemons[battle_turn] doSummonMonster(this, it.name) local summon = getCreatureSummons(this)[1] local balleffect = pokeballs["normal"].effect if it.ball and pokeballs[it.ball] then balleffect = pokeballs[it.ball].effect end doSendMagicEffect(getThingPos(summon), balleffect) setPlayerStorageValue(summon, 10000, balleffect) setPlayerStorageValue(summon, 10001, gobackmsgs[math.random(#gobackmsgs)].back:gsub("doka", it.nick ~= "" and it.nick or it.name)) setPlayerStorageValue(summon, 1007, it.nick ~= "" and it.nick or it.name) doSetMonsterGym(summon, focus) addEvent(adjustWildPoke, 15, summon, it.optionalLevel) local name = it.nick ~= "" and it.nick or getCreatureName(this).."s "..it.name doCreatureSay(this, gobackmsgs[math.random(#gobackmsgs)].go:gsub("doka", getPlayerStorageValue(summon, 1007)), 1) fighting = true battle_turn = battle_turn + 1 end local function doWinDuel(cid, npc) if not isCreature(cid) then return true end local this = npc local a = doPlayerAddItem(cid, ID DO ITEM QUE SERA GUANHO) doCreatureSay(npc, "You won the duel! Congratulations, take this "..a.." as a prize.", 1) local b = getPlayerItemById(cid, true, a) if b.uid > 0 then doTransformItem(b.uid, b.itemid - 8) end end function onCreatureSay(cid, type, msg) local msg = string.lower(msg) if focus == cid then talk_start = os.clock() end if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then focus = cid talk_start = os.clock() conv = 1 selfSay("Hello "..getCreatureName(cid)..", mais um viajante fracassado,voce veio aqui por vontade propria,mais para sair sera obrigado a seguir minhas regras,diga {duel} para acabarmos logo com isso") return true end if isDuelMsg(msg) and conv == 1 and focus == cid then --if getPlayerItemCount(cid, gymbadges[getCreatureName(getThis())]) >= 1 then -- selfSay("You have already won my Marsh Badge, maybe some other day we can fight.") -- focus = 0 --return true --end if not hasPokemon(cid) then selfSay("Solte seu pokemon para comecarmos a batalha.") return true end selfSay("You are challenging me to a battle. It will be a "..#pokemons.." pokemon limit battle, let's start?") conv = 2 return true end if isConfirmMsg(msg) and conv == 2 and focus == cid then challenger = focus setPlayerStorageValue(cid, 990, 1) selfSay("Yea, let's fight!") talk_start = os.clock() addEvent(doSummonGymPokemon, 850, getThis()) conv = 3 return true end if isNegMsg(msg) and conv == 2 and focus == cid then focus = 0 selfSay("Era melhor sevoce tivesse ficado fora do meu caminho!") return true end if msgcontains(msg, 'bye') and focus == cid then selfSay('Bye and do your best trainer!') setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local afk_warning = false function onThink() --doSendAnimatedText(getThingPos(getThis()), getCreatureName(getThis()), 215) if focus == 0 then selfTurn(2) fighting = false challenger = 0 challenger_turn = 0 battle_turn = 1 afk_time = 0 afk_warning = false if #getCreatureSummons(getThis()) >= 1 then setPlayerStorageValue(getCreatureSummons(getThis())[1], 1006, 0) doCreatureAddHealth(getCreatureSummons(getThis())[1], -getCreatureMaxHealth(getCreatureSummons(getThis())[1])) end return true else if not isCreature(focus) then focus = 0 return true end if fighting then talk_start = os.clock() if not isCreature(getCreatureTarget(getThis())) then if #getCreatureSummons(challenger) >= 1 then if getCreatureOutfit(getCreatureSummons(challenger)[1]).lookType ~= 2 then --alterado v1.6 selfAttackCreature(getCreatureSummons(challenger)[1]) challenger_turn = challenger_turn + 1 afk_time = 0 end else afk_time = afk_time + 0.5 end end if afk_time > afk_limit_time then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("Fraco!Ja esperava isso de viajantes desse tipo!") return true end if not afk_warning and afk_time > afk_limit_time / 2 then selfSay("Where's your pokemon? Let's fight!") afk_warning = true end if #getCreatureSummons(getThis()) == 0 then if battle_turn > #pokemons then addEvent(doWinDuel, 1000, focus, getThis()) setPlayerStorageValue(focus, 990, -1) focus = 0 return true end addEvent(doSummonGymPokemon, 1000, getThis()) end if not hasPokemon(challenger) or challenger_turn >= 7 or challenger_turn > #pokemons then selfSay("You lost our duel! Maybe some other time you'll defeat me.") setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local npcpos = getThingPos(getThis()) local focpos = getThingPos(focus) if npcpos.z ~= focpos.z then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("Bye then.") return true end if (os.clock() - talk_start) > 30 then selfSay("Good bye and keep training!") setPlayerStorageValue(focus, 990, -1) focus = 0 end if getDistanceToCreature(focus) > max_distance then setPlayerStorageValue(focus, 990, -1) focus = 0 return true end local dir = doRedirectDirection(getDirectionTo(npcpos, focpos)) selfTurn(dir) end return true end -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------CONFIGURANDO : -No look type do xml ( <look type="NEWTYPE DA OUTFIT" ) << Onde Esta "NEWTYPE DA OUTFIT" , Coloque o numero do looktype que esta no seu editor de sprites no meu caso (Object Builder) . <-> -No Script do xml ( script="NOME DO ARQUIVO .LUA QUE SERA USADO NA PASTA Data/NPC/Scripts" ) , Onde esta " NOME DO ARQUIVO .LUA QUE SERA USADO NA PASTA Data/NPC/Scripts" , Coloque o nome do .lua que voce colocou na pasta Data/Npc/Scripts . <-> -No .Lua Que Criou Na Pasta Data/Npc/Scripts escolha os pokemons que serão usados pelo treinador ( {name = "Nome Do Pokemon", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Nome Do Pokemon", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "great"}, {name = "Nome Do Pokemon", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "super"}, {name = "Nome Do Pokemon", optionalLevel = 100, sex = SEX_MALE, nick = "", ball = "ultra"}, ) , Onde esta "Nome Do Pokemon" << Coloque o Pokemon Que O NPC Ira Usar , Onde Esta "ball = "ultra" << , A Ball Que O Pokemon Estara . <-> No mesmo .Lua ainda , edite a parte "local a = doPlayerAddItem(cid, ID_DO_ITEM) doCreatureSay(npc, "You won the duel! Congratulations, take this "..a.." as a prize.", 1) " << Onde Esta "ID_DO_ITEM" , Coloque o ID do Item Que Sera Guanho , Caso queira que seja guanham mais de um item repita a frase doPlayerAddItem(cid, ID_DO_ITEM) , Embaixo Dela Com O ID Do Outro Item Que Sera Guanho . ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -Acho que vai dar certo . Caso queira que ele duele de 24horas em 24 horas mude o .Lua para esse . -Coloque isso no .Lua : local focus = 0 local max_distance = 8 local talk_start = 0 local conv = 0 local fighting = false local challenger = 0 local afk_limit_time = 30 -- seconds local afk_time = 0 -- don't change local battle_turn = 1 -- don't change local challenger_turn = 0 -- don't change local masterpos = {} local time_to_fight_again = 86400 -- seconds, not ms (so 30 * 60 means 30 minutes) local can_walk = true -- true to make this npc walks randomly local max_distance = 5 -- maximum distance this npc can get far (sqms) local walk_delay = 5 -- every seconds make this npc walk local cooldown_table = {} local min_pokemons_to_battle = 1-- change to whatever you want local number_of_pokemons = 0 -- don't change local prizes = { [1] = {{itemid = 26781, count = 1}, {itemid = 12213, count = 20}}} -- Mega bit e Oran Berry local pokemons = { {name = "Caterpie", level = 10, extralevel = 5, sex = SEX_MALE, nick = "Caterpie", ball = "normal"}, {name = "Metapod", level = 15, extralevel = 5, sex = SEX_FEMALE, nick = "Pod", ball = "normal"}, {name = "Butterfree", level = 20, extralevel = 5, sex = SEX_MALE, nick = "Butter", ball = "ultra"}, } local function doSummonGymPokemon(npc) local this = npc if not isCreature(this) then return true end if #getCreatureSummons(this) >= 1 or focus == 0 then return true end local it = pokemons[battle_turn] doSummonMonster(this, it.name) local summon = getCreatureSummons(this)[1] local balleffect = pokeballs["normal"].effect if it.ball and pokeballs[it.ball] then balleffect = pokeballs[it.ball].effect end doSendMagicEffect(getThingPos(summon), balleffect) setPlayerStorageValue(summon, 10000, balleffect) setPlayerStorageValue(summon, 10001, gobackmsgs[math.random(#gobackmsgs)].back:gsub("doka", it.nick ~= "" and it.nick or it.name)) setPlayerStorageValue(summon, 1007, it.nick ~= "" and it.nick or it.name) doSetMonsterGym(summon, focus) local name = it.nick ~= "" and it.nick or getCreatureName(this).."s "..it.name setWildPokemonLevel(summon, it.level, getPokemonStatus(it.name, (it.extralevel + it.level)), name, 1.5) doCreatureSay(this, gobackmsgs[math.random(#gobackmsgs)].go:gsub("doka", getPlayerStorageValue(summon, 1007)), 1) fighting = true battle_turn = battle_turn + 1 end local function doWinDuel(cid, npc) if not isCreature(cid) then return true end local this = npc local x = prizes[number_of_pokemons] for n = 1, #x do doPlayerAddItem(cid, x[n].itemid, x[n].count) end doCreatureSay(npc, "Oooh nao, como assim voce me venceu? Ja que eu perdi leve isso para voce.", 1) cooldown_table[getCreatureName(cid)] = os.clock() + time_to_fight_again return true end function onCreatureSay(cid, type, msg) local msg = string.lower(msg) if focus == cid then talk_start = os.clock() end if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then if cooldown_table[getCreatureName(cid)] and cooldown_table[getCreatureName(cid)] - os.clock() > 0 then selfSay("Eae "..getCreatureName(cid)..", Eu realmente gostei da nossa ultima batalha!") conv = 10 else selfSay("Eae "..getCreatureName(cid)..", oque deseja?") conv = 1 end focus = cid talk_start = os.clock() return true end if (isDuelMsg(msg) or isConfirmMsg(msg)) and (conv == 1 or conv == 10) and focus == cid then if conv == 10 then selfSay("Acabamos de lutar! Por favor, me de um tempo para recuperar meus pokemon's da ultima batalha!") focus = 0 return true end if not hasPokemon(cid) then selfSay("Voce precisa de pokemon's para a batalha!") return true end selfSay("Okay, me diga com quantos pokemons voce quer usar.") conv = 2 return true end if conv == 2 and focus == cid then if not tonumber(msg) then selfSay("Diga-me o numero de pokemons que nos vamos batalhar.") return true elseif tonumber(msg) < #pokemons then selfSay("So podemos batalhar com "..#pokemons.." pokemons!") return true elseif tonumber(msg) > #pokemons then selfSay("So podemos batalhar com "..#pokemons.." pokemons!") return true else number_of_pokemons = tonumber(msg) selfSay("Okay, o primeiro a derrotar "..number_of_pokemons.." Pokemons sera o vencedor, vamos comecar!") challenger = focus setPlayerStorageValue(cid, 990, 1) addEvent(doSummonGymPokemon, 850, getThis()) conv = 3 return true end return true end if isNegMsg(msg) and conv == 1 and focus == cid then focus = 0 selfSay("E melhor para voce recusar uma batalha contra mim!") return true end if msgcontains(msg, 'bye') and focus == cid then selfSay('Tchau e ate logo!') setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local afk_warning = false local change = false local walkdelay = 0 function onThink() if not masterpos.x then masterpos = getThingPos(getThis()) end if focus == 0 then selfTurn(2) fighting = false challenger = 0 change = false challenger_turn = 0 battle_turn = 1 afk_time = 0 afk_warning = false if #getCreatureSummons(getThis()) >= 1 then setPlayerStorageValue(getCreatureSummons(getThis())[1], 1006, 0) doCreatureAddHealth(getCreatureSummons(getThis())[1], -getCreatureMaxHealth(getCreatureSummons(getThis())[1])) end walkdelay = walkdelay - 0.5 if walkdelay <= 0 then walkdelay = walk_delay local pos = getThingPos(getThis()) local npos = {} for a = 0, 3 do if getDistanceBetween(getPosByDir(pos, a), masterpos) <= max_distance and canWalkOnPos(getPosByDir(pos, a), true, false, true, true, false) then table.insert(npos, getPosByDir(pos, a)) end end if npos and #npos > 0 then doTeleportThing(getThis(), npos[math.random(#npos)]) end end return true else if not isCreature(focus) then focus = 0 return true end if fighting then talk_start = os.clock() if not isCreature(getCreatureTarget(getThis())) then if #getCreatureSummons(challenger) >= 1 then selfAttackCreature(getCreatureSummons(challenger)[1]) change = true afk_time = 0 else afk_time = afk_time + 0.5 if change then change = false challenger_turn = challenger_turn + 1 end end end if afk_time > afk_limit_time then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("Eu ja esperei muito tempo, volte quando estiver pronto!") return true end if not afk_warning and afk_time > afk_limit_time / 2 then selfSay("Onde esta seu pokemon? Vamos lutar!") afk_warning = true end if #getCreatureSummons(getThis()) == 0 then if battle_turn > number_of_pokemons then addEvent(doWinDuel, 1000, focus, getThis()) setPlayerStorageValue(focus, 990, -1) focus = 0 return true end addEvent(doSummonGymPokemon, 1000, getThis()) end if not hasPokemon(challenger) or challenger_turn > 6 or challenger_turn >= number_of_pokemons then selfSay("Hahahahahahahaha eu venci! Quem sabe um dia voce consiga me derrotar.") setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local npcpos = getThingPos(getThis()) local focpos = getThingPos(focus) if npcpos.z ~= focpos.z then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("Ate logo.") return true end if (os.clock() - talk_start) > 30 then selfSay("Boa sorte em sua jornada!") setPlayerStorageValue(focus, 990, -1) focus = 0 end if getDistanceToCreature(focus) > max_distance then setPlayerStorageValue(focus, 990, -1) focus = 0 return true end local dir = doRedirectDirection(getDirectionTo(npcpos, focpos)) selfTurn(dir) end return true end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- CONFIGURANDO : -Para configurar e praticamente igual ao de cima , porem para escolher o premio segure "CTRL" e aperte "F" , e Coloque : local prizes = , pressione "ENTER" . -A parte onde esta : [1] = {{itemid = 26781, count = 1}, {itemid = 12213, count = 20}}} -- Mega bit e Oran Berry (Configure De Seguinte Maneira , No 1° ITEMID coloque o id do item que sera guanho e no "COUNT" a quantidade , no 2° Itemid , Coloque O ID do item e No "COUNT" a Quantidade . ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- *Provavelmente Ira Funcionar . -
poketibia [Encerrado] [AJUDA] Adicionar Novas Paredes No Sevidor
tópico respondeu ao tatotheus de carlos fabian em Tópicos Sem Resposta
Poderia explicar melhor ou mostrar por print ? -
action Fruit Picking (Colheita de fruta)
tópico respondeu ao RigBy de carlos fabian em Actions e Talkactions
Ola , Script Muito Bom , Mas Poderia Fazer De Tal Forma : Eu Uso Tal Item "tesoura" Na Arvore , E O Player Fica Uns 3 Segundos Com Outra Outfit Sem Poder Se Mecher , Depois Desses 3 Segundos A Arvore Fica Sem Frutos E O Player Volta A Sua Outfit Normal .- 11 respostas
-
- colheita de fruta
- fruit harvesting
- (e 3 mais)
-
*OTAdvanced : -Projeto Tibia Pokemon . -Recrutando : 2 Designer (Para fotos da pagina e do client) . -Recrutando : 1 Mapper . -Recrutando : 2 Spriter's Remaker . -Recrutando : 1 Scripter . ---------------------------------------------------------------------------------------------------------------------------------------------[base-Kpdo]- /Nossa pagina : https://www.facebook.com/pages/OTAdvanced/1748704545356892 . /Entrar em contato comigo Aqui pelo XTibia no chat . /OTAdvanced esta buscando a diversão de todos , esperamos você em nossa inauguração : 10/12/2015 . /OTAdvanced é um projeto sério , sempre dando o maximo de si mesmo . -Equipe : OTAdvanced >> Obriguado . ----------------------------------------------------------------------------------------------------------------------------------------------------------------
-
Nd
-
Fechado
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.