
Tavinho Souzah
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
Tavinho Souzah deu reputação a Sparezik em {Tutorial} Fazendo Ícone Próprio para seu Client PoketibiaOi! eu não sei se aqui é a área certa mais se for eu gostaria de postar este tutorial que eu fiz para outro fórum (o meu nick nele e Bloxx, mais precisamente: ekz) entao resolvi trazer para o TK, já que eu não vi nenhum semelhante, e sei que vai ajudar muita gente
OBS: Se tiver na área errada, favor por na área certa, e os créditos, serão apenas para sparezik(Bloxx no Ékz) hoje ensinando ai a fazer um ícone massa ae para vc usar no seu client próprio (tbm pode ser usado em client do tibia e outros derivados). deixando o seu client mais "próprio" e pra ir tirando aquele ícone enjuado do Pikachu
Estou deixando os links dos programas necessarios abaixo. permito a postagem em outros fóruns, contanto que tenha os devidos créditos, os meus (sparezik e (ou) Bloxx).
Notas:
- O Tutorial tem 4 partes e 23 linhas
- Está realmente muito bem explicado e detalhado, com screenshots em todas as linhas explicando direitinho para não errar na hora de fazer algo.
- Demorou mais de 2 horas e 30 para fazer (por causa das SS's e o trabalho que eu tiva pra upar elas, então algumas foi no imgur e outras no imageshack.), então um REP+ e realmente muito bem-vindo.
-Se der certo para você, poste um comentário, com umas ss de como ficou (de prêferencia.)
Adobe Fireworks CS3 (Upado por Mim) - Editor que servira para modificar a imagem
http://www.mediafire...hb4ncrx394ys8o4
Resource Hacker (ResHack) - Servirá para injetar o ícone no client
http://www.angusj.com/resourcehacker/
(Tranquilo, tem vírus não, se for olhar no éks, vai ver que eu tenho mais de 115 posts.)
PARTE I - Inicio do Tutorial
1. Baixe os programas necessários.
2. Vá no Google Imagens e procure uma imagem que vc quiser como ícone
OBS: Esoclha de preferência pequena, mais depois iremos modificá-la, a minha é o ícone de um blaziken, a que está circulada. (não precisa baixar a minha pra modificar, a escolha está a seu gosto)
Print:
3. Baixe a imagem e depois abra o Adobe Fireworks CS3
Vai aparecer uma janela como esta:
4. Certo, vá em Open... e escolha a foto que você baixou.
5. Vai abrir uma preview da imagem do lado direito, para vc confirmar se e esta mesmo. escolha abrir e iremos começar a edição.
PARTE II - Editando a Imagem
6. Bem, já deve ter mostrado a imagem que você irá editar:
7. Bom, com a imagem já aberta, iremos retirar este fundo branco da imagem, para não ficar aparecendo ela ao redor do ícone quando estiver tudo pronto.
8. Nas ferramentas ao lado esquerdo, você verá muitas opções, iremos trabalhar com a Magic Wand Tool (o com icone de uma varinha):
9. Com a Magic Wand Tool selecionada, clique no fundo branco da imagem e aperte "Delete" no seu teclado, irá notar que o fundo branco desapareceu, aperte Ctrl+D para deselecionar.
10. Agora, selecione a Scale Tool, apertando o "Q" do seu teclado,e clique sobre a nossa imagem
e clique no "100%" na parte de baixo, e selecione o zoom de "200%" como indica a imagem:
11. Após dar Scale Tool na nossa imagem, verá que o quadrado azul em volta dela mudou, agora está cheio de quadradinho pretos, eles servirão para editar a imagem, puxe eles para aumentar ou diminuir a imagem ourode o mouse para gira-la. (Se quiser pode botar uns nomezinhos do seu OT em volta da imagem, mais recomendo apenas para usuários avançados.)
OBS: Cuidado! não puxe ela para fora do quadrado grande que esta em volta dele, se não ela vai ficar cortada na hora de transformar em ícone!
12. Quando terminar de editar a imagem, salve ela em qualquer formato (Recomendo .png) e passaremos agora para a parte 3.
PARTE III - Convertendo Imagem para ícone (.ico)
13. Agora a parte mais fácil, vá para o site http://iconverticons.com/online/
14. Clique em Browse... e selecione a imagem que editamos
15. Quando aparecer o nome da imagem no quadrado grande do lado do Browse..., clique em Convert para inicar a conversão de imagem.
16. Quando estiver tudo certo, ira aparecer Conversion Sucess, rola a pagina para baixo e verá como ficou nossa imagem já convertida como ícone
17. Clique em Download .ico (opção ao lado do ícone do Windows) para baixar o nosso ícone que já esta pronto. vamos para a ultima parte do tutorial.
PARTE IV (Final) - Adicionando o Ícone ao Client
18. Já estamos quase no fim! bom, com ícone pronto e tudo mais, abra o Resource Hacker
19. Vá em File > Open ou dê Ctrl-O e procure o executável (.exe) do seu client e de Abrir.
20. Note que apareceu algumas pasta do lado esquerdo do programa, selecione a pasta Icon Group > 128 > 1033
21. Pronto, agora note que abriu o conjunto de ícones do nosso Client, agora, onde esta selecionado o 1033, clique com o botão direito do mouse nele, e abra Replace Resource
22. Abriu outra janela. clique em Open file with new icon e procure e selecione o nosso ícone, qnd aparecer uma miniatura dele do lado de Select new icon: clique em Replace Resource e terminamos!
23. Agora vá em File > Save As e ponha um nome para seu client com o ícone ja posto nele e pronto! deve dar uma travadinha (se der, é normal). agora feche o Resource Hacker e vá ver o seu client com ícone proprio!
OBS: Algumas vezes se o ícone não for compatível o .exe criado (com o Save As, n o seu original) ficacorrompido! mais a maioria das vezes da certo então se ficar corrompido, monte outro ícone!
OBS²: Sempre veja se retirou o fundo branco inteiro, se ficar uma partezinha dele, ele vai aparecer na image, e vai deixar ela feia.
Acabamos aqui mais um tutorial.
Se for postar em outro fórum, não esqueça dos créditos e do trabalho que deu e do tempo que demorou!
Se Gostou Dê REP+ para mim e agradeça, qualquer dúvida por favor deixar nos comentários e não via MP!
Em breve, mais tutoriais com o Fireworks CS3, que daqui pra frente vou utlizar muito nos tutoriais
Abraços Galera, FUIZ!
-
Tavinho Souzah deu reputação a tonyplyson em [NPC] Npc Que Troca X Item por OutfitOlá Galera , Um Amigo me pediu esse script , para o servidor dele de pokemon , para ele criar o sistema de clan.
Entao eu irei mostrar o meu sistema aqui , espero que gostem
Primeiro Vá a PastadoOt/DATA/XML/OUTFITS
Terá um Monte de Codigos de Outfits
Voce Escolhe Uma Outfit , Eu Escolhi o Citizen , O Outfit Do Citizen Irá Ficar assim
<outfit id="1"> <list gender="0" lookType="136" name="Citizen"/> <list gender="1" lookType="128" name="Citizen"/> </outfit> Voce arruma para <outfit id="1" quest="6575"> <list gender="0" lookType="136" name="Citizen"/> <list gender="1" lookType="128" name="Citizen"/> </outfit>
Salve e Feixe ..
Agora vá PastadoOT/DATA/NPC
Copie um arquivo .xml , renomeie para *OUTFIT*
Apague Tudo que estiver dentro e coloque
Agora vá PastadoOT/DATA/NPC/SCRIPTS
Copie um arquivo .lua e renomeie para *OUTFIT*
Apague tudo que estiver dentro dele e coloque
Agora , Vou ensinar a configurar o Script
Procure Por *Iteem* , lá voce escolhe o item que irá ser removido.
Procure Por *Quantidade* , Lá voce edita a quantidade de items que irá ser removido
Procure Por MSG1 (Edite em base do que eu escrevi na script)
Procure Por MSG2 (Edite em base do que eu escrevi na script)
Procure Por MSG3 (Edite em base do que eu escrevi na script)
Procure por MSG4 (Edite em base do que eu escrevi na script)
Pronto ! Ajudei ?? REP+ NAO CAI O DEDO !!
-
Tavinho Souzah deu reputação a ManoTobira em [action] Edo Tenseiprimeiro crie os monstros de edo tensei
em actions copie um arquivo e renomeie para edocatch
apague tudo oq tem nele e cole isso
primeiro crie os monstros de edo tensei
em actions copie um arquivo e renomeie para edocatch
apague tudo oq tem nele e cole isso
local mtrs = { ["[Edo Tensei] Madara] = {hp = 50000, maxhp = 50000, corpse = 2936, chance = 100}, ["[Edo Tensei] Sasuke] = {hp = 50000, maxhp = 50000, corpse = 2806, chance = 100}, ["[Edo Tensei] Deidara] = {hp = 50000, maxhp = 50000, corpse = 2879, chance = 100}, } local vocs = {300, 649} local corpos = {2936, 2806, 2879} function onUse(cid, item, frompos, item2, topos) if(not(isInArray(vocs, getPlayerVocation(cid)))) then return doPlayerSendTextMessage(cid, 26, "You cannot use this object.") end if(not(isInArray(corpos, item2.itemid))) then doPlayerPopupFYI(cid, "Para usar o Edo Tensei você deve usar o pergaminho em algum corpo de um jogador.") return true end for pet_name, v in pairs(mtrs) do if item2.itemid == v.corpse then if math.random(0,100) <= v.chance then doSendMagicEffect(topos, 2) doPlayerSendTextMessage(cid, 27, "".. pet_name .. " foi selado nesse pergaminho.") doRemoveItem(item2.uid, 1) doRemoveItem(item.uid, 1) local itemcatch = doPlayerAddItem(cid, 11390, 1) doItemSetAttribute(itemcatch, "namepet", pet_name) doItemSetAttribute(itemcatch, "description", "Neste pergaminho foi selado um ".. pet_name ..".") doItemSetAttribute(itemcatch, "lifepet", v.hp) doItemSetAttribute(itemcatch, "maxlifepet", v.maxhp) else doPlayerSendTextMessage(cid, 27, "Falhou.") end end end return true end
Configuração
azul=nome do monster
verde=hp que o monster vai nasce
azul fraco=id do monster morto
rosa=chance de selar o corpo
amarelo=vocaçoes para usar o edo tensei
vermelho=id do item que solta o edo tensei
agora copie outro arquivo e renomeie para edogo
apague tudo oq tem dentro e cole isso
local config = { percent = 15, --- porcentagem do chakra que perde } function onUse(cid, item, frompos, item2, topos) local health = tonumber(getItemAttribute(item.uid, "lifepet")) local mhp = tonumber(getItemAttribute(item.uid, "maxlifepet")) local lifedraw = math.ceil(getCreatureMaxHealth(cid) * (config.percent)/100) local vocs = {300, 649} local msg0 = [[ Você ssó pode ter 0 summon(s), A seguinte tabela mostra os leveis e o respectivo número de summons que um player terá ao estar nele Level <~> [summons] ~->50[1] ~->150[2] ~->200[2] ~->350[3] ~->450[4] ]] local msg1 = [[ Você ssó pode ter 1 summon(s), A seguinte tabela mostra os leveis e o respectivo número de summons que um player terá ao estar nele Level <~> [summons] ~->50[1] ~->150[2] ~->200[2] ~->350[3] ~->450[4] ]] local msg2 = [[ Você ssó pode ter 2 summon(s), A seguinte tabela mostra os leveis e o respectivo número de summons que um player terá ao estar nele Level <~> [summons] ~->50[1] ~->150[2] ~->200[2] ~->350[3] ~->450[4] ]] local msg3 = [[ Você ssó pode ter 3 summon(s), A seguinte tabela mostra os leveis e o respectivo número de summons que um player terá ao estar nele Level <~> [summons] ~->50[1] ~->150[2] ~->200[2] ~->350[3] ~->450[4] ]] local msg4 = [[ Você ssó pode ter 4 summon(s), A seguinte tabela mostra os leveis e o respectivo número de summons que um player terá ao estar nele Level <~> [summons] ~->50[1] ~->150[2] ~->200[2] ~->350[3] ~->450[4] ]] if(not(isInArray(vocs, getPlayerVocation(cid)))) then return doPlayerSendTextMessage(cid, 26, "You cannot use this object.") end if health <= 0 then return doPlayerSendCancel(cid, "Esse pet esta morto.") end if #getCreatureSummons(cid) == 0 and getPlayerLevel(cid) <= 49 then doPlayerPopupFYI(cid, msg0) return true end if #getCreatureSummons(cid) == 1 and getPlayerLevel(cid) <= 149 then doPlayerPopupFYI(cid, msg1) return true end if #getCreatureSummons(cid) == 1 and getPlayerLevel(cid) <= 199 then doPlayerPopupFYI(cid, msg1) return true end if #getCreatureSummons(cid) == 2 and getPlayerLevel(cid) <= 349 then doPlayerPopupFYI(cid, msg2) return true end if #getCreatureSummons(cid) == 3 and getPlayerLevel(cid) <= 449 then doPlayerPopupFYI(cid, msg3) return true end if #getCreatureSummons(cid) == 4 and getPlayerLevel(cid) >= 450 then doPlayerPopupFYI(cid, msg4) return true end local pet_name = getItemAttribute(item.uid, "namepet") if item.itemid == 11390 then if not getTilePzInfo(getPlayerPosition(cid)) then if #getCreatureSummons(cid) < 1 and getPlayerLevel(cid) > 49 or #getCreatureSummons(cid) < 2 and getPlayerLevel(cid) > 149 or #getCreatureSummons(cid) < 2 and getPlayerLevel(cid) > 199 or #getCreatureSummons(cid) < 3 and getPlayerLevel(cid) > 349 or #getCreatureSummons(cid) < 4 and getPlayerLevel(cid) > 449 then if isCreature(cid) then if getCreatureMaxHealth(cid) then local summon = doSummonCreature(pet_name, topos) doRemoveItem(item.uid, 1) doConvinceCreature(cid, summon) setCreatureMaxHealth(summon, mhp) doCreatureAddHealth(summon, mhp) doCreatureAddHealth(summon, health - mhp) doCreatureAddHealth(cid, -5000) doCreatureAddMana(cid, -5103) doSendMagicEffect(getCreaturePosition(summon), 2) doCreatureSay(cid, "EDO TENSEI!", 19) end else doPlayerSendCancel(cid,'Você não pode invocar uma criatura de uma zona protegida.') end end end end return true end Configuração
local msg=tabela do edo tensei e nessa parte getCreatureSummons(cid) < 1 é a quantidade de summon e nessa getPlayerLevel(cid) > 49 é o level pra usa no caso é 50 porque tem que colocar 1 a menos
agora abra actions.xml e adicione
<!-- Edo Tensei --> <action itemid="11389" event="script" value="edocatch.lua"/> <action itemid="11390" event="script" value="edogo.lua"/> Configuração azul=id do item que captura o edo tensei vermelho=id do item que solta o edo tensei Créditos BananaFight LuckOake MaXwElldEn Gears PsyMcKenzie por terem criado o pet system que usei de base -
Tavinho Souzah deu reputação a Caronte em Como Almenta a "DISTRO"?Achei
http://www.tibiaking.com/forum/topic/43342-onde-aumentar-o-número-de-efeitos/
Sources são partes que constituem o seu executável/distro...
os arquivos .exe precisam delas para serem compilados ou numa linguagem mais fácil: comprimidos, para ser possível executar o programa.
Basicamente: são códigos de programação que forma um programa
-
Tavinho Souzah deu reputação a Caronte em Como Almenta a "DISTRO"?Tem que mexer nas sources e na lib depois, procura pelo forum que você acha, to no celular...
-
Tavinho Souzah deu reputação a Markin em [Duelo] AnneMotta x Spraypaintque começe a votação \õ/
-
Tavinho Souzah deu reputação a xWhiteWolf em Caixa Eletrônico - Bank diferente no TibiaVi um pessoal atrás desse sistema e decidi trazer pra cá ;]
O que é: Um sistema em que você insere um Cartão de Crédito em um Caixa Eletrônico para executar ações iguais às de um banco de verdade.
Crie um arquivo em mods com extensão .xml e coloque isso dentro
Por recomendações do criador do script, é sugerido que se coloque NO-LOGOUT na área da fila.
Veja as imagens abaixo:
Observações:
- Para usar o caixa eletrônico, você tem que dar Use With nele com o cartão.
Créditos:
LuckOake -- Pelo sistema
-
Tavinho Souzah deu reputação a alan thome em Nto Crysis Donwloadda aki cara
https://www.virustotal.com/pt/file/ccbe31afd7daf66a737fd76f8c0c94b3e8e7b4372df5ec0f73a91c1af5c11229/analysis/1385391262/ -Nto Death Sem Vocas.rar
-
Tavinho Souzah deu reputação a AdmAlexandre em [DOWNLOAD] Server PokeZotEae Galerinha do TibiaKing Hoje Venho Postar um Servidor Mais não é Feito Por Min !!
Lista Completa de Pokemon Adicionados!!
Sistemas
Quests
Alterações
Prints
Downloads!!
-Créditos-
-
Tavinho Souzah deu reputação a CreatServer em Sistema AkatsukiSistema Akatsuki
Bom jah vir muitas gente atras desse sistema entao eu resolvir cria um e posta pra ajuda os amigos esse vaii ser meu primeiro topico de script, entao vamos lah.
Vá em Data/Npc e crum npc com o nome Tobi abra e cole isso:
Vá em Data/npc/script e crie o bloco de notas com o nome AkatsukiSystem e cole isso:
vou explicar um pouco como funcionar.
Bem tem que arruma 6 coraçoes vá até o npc tobi e fale com ele, ele vaii fazer um troca com vc. vc vaii ganha uma roupa(Roupa da Akatsuki) com essa roupa vc jah estará tendo da Akatsuki.
Pra quem quer que Fique o nome Membro Akatsuki Ao da Look Vá Até A Pasta Data/creaturescripts/scripts crie um bloco de notas com o nome showvoc e cole isso.
Vá até Data/creaturescripts e va ate creaturescripts.xml e cole isso
Mas quem usar Nto Jah vaii tem isso é só acrescenta o Akatsuki member.
funcionar que quando o player fala com o npc tobi vc receberá o Storange Que Esta De Azul em cima o que esta de verde é o numero que estará Showvoc.
O Id do Coracoes e a quantidade que vai perdi e remove, é o Rosa e amarelo no script.
local level = 1-- Level preciso pra entra para akatsuki local itemid = 5943 -- id do coração local quantidade = 6 -- quantos hearts e preciso local bonushp = 300000 -- quanto de bonus de life vai ganha local bonusmp = 30000 -- quanto de bonus de mana vai ganha local experience = 20 -- Experience rates no caso 2x a experiencia do seu servidor. --[Vocation] = ( Nova Vocation, New Outfit(Roupa) ) [1] = { 5, 128}, [2] = { 6, 129}, [3] = { 7, 130}, [4] = { 8, 131}, } Bom gente espero que deu pra entende mas como é meu primeiro topíco eu penso que fale a verdade o que achou pra min tenta melhora nos poximo topicos. Creditos
-
Tavinho Souzah deu reputação a luanluciano93 em TFS 0.4 CASTOlá pessoal, tive a iniciativa de criar esse tópico para atualizar e otimizar as sources do TFS 0.4 DEV que é uma das mais usadas no mundo do otserv. Conteúdo totalmente gratuito e pretendemos melhora-lo cada vez mais.
Qualquer um pode colaborar, postando bugs, erros, otimizando códigos, comentar aqui no tópico, toda ajuda é bem vinda, vamos tornar essa a melhor source disponível. Conto com vocês.
Versão do Tibia: 8.60
Alguns sistema já implementados na source:
• TFS 0.4 DEV rev 3777 (by TFS Team)
• Anti-Divulgação (.servegame, .no-ip, .net, .com, .org, .pl, .biz, .br, .sytes, .info)
• War System
• Cast System (by Summ)
• Retirado bugs de anti-push ..
• Retirado bugs de elfbot ...
• Retirado erro de não aceitar outros items ...
• Retirado erro de Malformed File ...
• Add creatureevent onMoveItem() ...
• Add função getCreaturePathTo () ...
• E vários outros!
Complementos:
• Add cast System (passo a passo): [AQUI]
• Pode add o comando na config.lua:
healthHealingColor = COLOR_GREEN -- [podendo alterar a cor]. manaHealingColor = COLOR_DARKPURPLE -- [podendo alterar a cor]. Downloads:
• Distro Compilada 32x
• Distro Compilada 64x
• Sources 7
TESTADO EM WINDOWS, DEBIAN 7.8, UBUNTU 12.04 E 14.05!
• Compilar em Linux:
• Erros para arrumar:
Obrigado ao runeraserver pelo incentivo em fixa-la para linux
E é isso pessoal, espero ter ajudado, abraços
-
Tavinho Souzah deu reputação a Beeny em Naruto WhiteFala pessoal :3
Naruto White é um servidor feito por um amigo meu, totalmente feito do 0 !
•Informações
Distro limpa (o único erro é um test no mapa, não vai afetar em nada, e é fácil resolver.) 28 Vocações : Naruto, Sasuke, Sakura, Lee, Neji, Tenten, Kiba, Shino, Kisame, Hidan, Kakuzu, Itachi, Deidara, Kakashi, Killer Bee, Yamato, Madara, Minato, Hashirama, Tobirama, Obito, Kankuro, Gaara, Kabuto, Jiraya, Tsunade, Anbu, Hinata. Todas as vocações balanceadas. Spells de acordo com o ANIME! Sprites do "WoNO" Jutsus / Transforms
•Imagens
•Download
Client Servidor -- Não faço a minima ideia do porque tem todos esses vírus, já aviso que não tem nada. Quem quiser baixar, baixa. Sources Site Dat + Spr Client para usar no MAP
•Scan
Client Servidor Sources Site Dat + Spr Client para usar no MAP
•Créditos
Ken Kaneki (Helton) Beeny TFS Team Maenilse -
Tavinho Souzah deu reputação a Latoy em new marriage systemMulizeu/Latoy são a msm pessoa
Na sua db execute:
CREATE TABLE marriage_system ( id INTEGER NOT NULL, player_id INTEGER NOT NULL, partner VARCHAR( 255 ) NOT NULL, marriage_date INTEGER NOT NULL, PRIMARY KEY ( id ) ); Mods MarriageSystem.xml <?xml version="1.0" encoding="UTF-8"?> <mod name="MarriageSystem" version="1.0" author="Mulizeu" contact="tibiaking.com" enabled="yes"> <config name="marry_func"><![CDATA[ marry_config = { Premium = false, OnlyDifferentSex = false, Marry_Price = 300000, Divorce_Price = 100000, Level = 50, MaxSqm = 7 -- to up system and win bonus } Marry_stage = { [0] = {exp = 350000, marry_percent = 50, player_experience = 0}, [1] = {exp = 700000, marry_percent = 45, player_experience = 2}, [2] = {exp = 1050000, marry_percent = 40, player_experience = 4}, [3] = {exp = 1400000, marry_percent = 35, player_experience = 6}, [4] = {exp = 1750000, marry_percent = 30, player_experience = 8}, [5] = {exp = 2100000, marry_percent = 25, player_experience = 10}, [6] = {exp = 2450000, marry_percent = 20, player_experience = 12}, [7] = {exp = 2800000, marry_percent = 15, player_experience = 14}, [8] = {exp = 3150000, marry_percent = 10, player_experience = 16}, [9] = {exp = 3500000, marry_percent = 5, player_experience = 18}, [10] = {exp = 0, marry_percent = 0, player_experience = 20} } marriage_tabble = {exp = 350250,level = 340200} function isMarried(cid) local m = db.getResult("SELECT `player_id` FROM `marriage_system` WHERE `player_id` = '"..getPlayerGUID(cid).."';") if(m:getID() == -1) then local e = db.getResult("SELECT `partner` FROM `marriage_system` WHERE `partner` = '"..getPlayerGUID(cid).."';") if(e:getID() == -1) then return false end end return true end function isPatner(cid) local p = db.getResult("SELECT `partner` FROM `marriage_system` WHERE `player_id` = '"..getPlayerGUID(cid).."';") if(p:getID() == -1) then return true end return false end function isMarryOnline(cid) if not getPlayerByNameWildcard(getPartner(cid)) then return false end return true end function getPartner(cid) if isPatner(cid) then a = db.getResult("SELECT `player_id` FROM `marriage_system` WHERE `partner` = '"..getPlayerGUID(cid).."';") b = "player_id" else a = db.getResult("SELECT `partner` FROM `marriage_system` WHERE `player_id` = '"..getPlayerGUID(cid).."';") b = "partner" end local query = a return getPlayerNameByGUID(query:getDataString(b)) end function doMarry(cid, patner) return db.executeQuery("INSERT INTO `marriage_system` (`player_id`, `partner`, `marriage_date`) VALUES ('".. getPlayerGUID(cid) .."', '"..patner.."', '".. os.time() .."');") end function doDivorcePlayer(cid) if isPatner(cid) then pid,player = getPlayerGUIDByName(getPartner(cid)),getPlayerByNameWildcard(getPartner(cid)) else pid,player = getPlayerGUID(cid),cid end if(not player or isPlayerGhost(player)) then db.executeQuery("DELETE FROM `player_storage` WHERE `player_id` = " .. pid .. " AND `key` = " .. marriage_tabble.level .. ";") db.executeQuery("DELETE FROM `player_storage` WHERE `player_id` = " .. pid .. " AND `key` = " .. marriage_tabble.exp .. ";") else setPlayerStorageValue(player, marriage_tabble.level,0) setPlayerStorageValue(player, marriage_tabble.exp,0) end return db.executeQuery("DELETE FROM `marriage_system` WHERE `player_id` = '" .. pid .. "';") end function getMarryStatus(cid, status) player = isPatner(cid) and getPlayerByNameWildcard(getPartner(cid)) or cid return getPlayerStorageValue(player,status == "level" and marriage_tabble.level or marriage_tabble.exp) < 0 and 0 or getPlayerStorageValue(player, status == "level" and marriage_tabble.level or marriage_tabble.exp) end function setMarryStatus(cid, status, amount) player = isPatner(cid) and getPlayerByNameWildcard(getPartner(cid)) or cid return setPlayerStorageValue(player, status == "level" and marriage_tabble.level or marriage_tabble.exp, getMarryStatus(player, status)+amount) end function getMarryExp(cid) return getMarryStatus(cid, "exp") end function addMarryExp(cid, amount) return setMarryStatus(cid, "exp", amount) end function addMarryLevel(cid, amount) return setMarryStatus(cid, "level", amount) end function getMarryLevel(cid) return getMarryStatus(cid, "level") end function getMarryDate(cid) local player = isPatner(cid) and getPlayerGUIDByName(getPartner(cid)) or getPlayerGUID(cid) local date = db.getResult("SELECT `marriage_date` FROM `marriage_system` WHERE `player_id` = '"..player.."';") return os.date("%d %B %Y %X ", date:getDataInt("marriage_date")) end ]]></config> <talkaction words="/marriage;!marriage;!divorce;/divorce" event="buffer"><![CDATA[ domodlib('marry_func') config = {TimeAccept = 30, sqm = 3, storage1 = 873438, storage2 = 532579} if words =="!marriage" or words =="/marriage" then param = string.lower(param) if (param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"invalid command, for more information enter !marriage info") elseif(param == "info") then msg = "Marriage Info".."\n\nLevel Minimum: "..marry_config.Level.."\nMarriage Cost: "..marry_config.Marry_Price.."\nDivorce Cost: "..marry_config.Divorce_Price.."\n\nMarried Players have a bonus exp as a wedding gift given by the union".."\n\nThis bonus is only given if the married players are nearby.\n\nTo marry use the command:\n!marriage NAME" doShowTextDialog(cid,2160,msg) elseif(param == "status") then if isMarried(cid) then msg = "Marriage Status".."\n\nMarried with: ["..getPartner(cid).."]\n\nMarry Experience: "..(getMarryLevel(cid) ~= 10 and "["..getMarryExp(cid).."/"..Marry_stage[getMarryLevel(cid)].exp.."]" or "[Max]").."\n\nMarry Level: "..(getMarryLevel(cid) ~= 10 and "["..getMarryLevel(cid).."]" or "[Max]").."\n" else msg = "you are not married" end doPlayerPopupFYI(cid, msg) elseif (param =="date") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,""..(isMarried(cid) and "The date of his marriage with "..getPartner(cid).." was: "..getMarryDate(cid).."." or "you are not married.").."") elseif (param =="accept") then player = getPlayerStorageValue(cid, config.storage2) if getPlayerStorageValue(cid, config.storage1) >= os.time() then if not isMarried(cid) then if getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(player)) <= config.sqm then doMarry(cid, getPlayerGUID(player)) doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_ORANGE,"Congratulations! "..getCreatureName(cid).." accepted his marriage proposal.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Congratulations! you married with "..getCreatureName(player)) doSendMagicEffect(getCreaturePosition(cid), 35) doSendMagicEffect(getCreaturePosition(player), 35) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "you're far away from her suitor.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"you are not married.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"you do not received none wedding invitation.") end elseif (param =="reject") then if getPlayerStorageValue(cid, config.storage1) >= os.time() then if not isMarried(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You just refuse the wedding invitation from player "..getCreatureName(getPlayerStorageValue(cid, config.storage2))) doPlayerSendTextMessage(getPlayerStorageValue(cid, config.storage2), MESSAGE_STATUS_CONSOLE_ORANGE,getCreatureName(cid).." rejected his marriage proposal.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"you are already married.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"you do not received none wedding invitation.") end else local player = getPlayerByNameWildcard(param) if(not player)then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, param.." is offline or does not exist.") return true elseif isMarried(cid) or isMarried(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, ""..(isMarried(cid) and "you" or "he").." already is wedded.") return true elseif marry_config.Premium == true then if not isPremium(cid) or not isPremium(Player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "players must be premium") end return true elseif getPlayerLevel(cid) < marry_config.Level or getPlayerLevel(player) < marry_config.Level then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "players must to be level "..marry_config.Level) return true elseif getPlayerStorageValue(player, config.storage1) >= os.time() then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, param.." already have a wedding invitation, wait.") return true elseif getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(player)) > config.sqm then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "you are far away from each other to get married.") return true elseif marry_config.OnlyDifferentSex and getPlayerSex(cid) == getPlayerSex(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "you can only marry the opposite sex") return true elseif not doPlayerRemoveMoney(cid, marry_config.Marry_Price) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, but you do not have "..marry_config.Marry_Price.." gp(s) to ask "..param.." in marriage.") return true end setPlayerStorageValue(player, config.storage1,os.time()+config.TimeAccept) setPlayerStorageValue(player, config.storage2, cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"you asked "..param.." in marriage, wait a answer!") doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_BLUE,getCreatureName(cid).." asked you in marriage, enter !marriage accept or !marriage reject") end elseif words =="!divorce" or words =="/divorce" then if isMarried(cid) then if doPlayerRemoveMoney(cid, marry_config.Divorce_Price) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Congratulations, you end up divorcing from player: "..getPartner(cid)) doDivorcePlayer(cid) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Sorry, you do not have "..marry_config.Divorce_Price.." gp(s).") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"you are not married.") end end return true ]]></talkaction> <event type="login" name="MarryRegister" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "ExpMarry") registerCreatureEvent(cid, "MarryLook") registerCreatureEvent(cid, "MarryStats") registerCreatureEvent(cid, "MarryNoAttack") return true end]]></event> <event type="look" name="MarryLook" event="script"><![CDATA[ domodlib('marry_func') function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) and isMarried(thing.uid) then doPlayerSetSpecialDescription(thing.uid, "\nMarried with "..getPartner(thing.uid).." - [Nv: " .. getMarryLevel(thing.uid) .."]\n") end return true end]]></event> <event type="combat" name="MarryNoAttack" event="script"><![CDATA[ domodlib('marry_func') if isPlayer(cid) and isPlayer(target) and isMarried(cid) and isMarried(target) then if (getCreatureName(target) == getPartner(cid))then doPlayerSendCancel(cid, "You may not attack this player.") return false end end return true ]]></event> <event type="kill" name="ExpMarry" event="script"><![CDATA[ domodlib('marry_func') function onKill(cid, target, lastHit) if isMonster(target) then conta = getMonsterInfo(string.lower(getCreatureName(target))).experience if isMarried(cid) and isMarryOnline(cid) and getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(getPlayerByNameWildcard(getPartner(cid)))) <= marry_config.MaxSqm then if getMarryLevel(cid) ~= 10 then mexp = math.ceil((conta*Marry_stage[getMarryLevel(cid)].marry_percent)/100) addMarryExp(cid, mexp) if isMarryOnline(cid) then doPlayerSendTextMessage(getPlayerByNameWildcard(getPartner(cid)),MESSAGE_STATUS_SMALL,"Marry exp + "..mexp) end doPlayerSendTextMessage(cid,MESSAGE_STATUS_SMALL,"Marry exp + "..mexp) if getMarryExp(cid) >= Marry_stage[getMarryLevel(cid)].exp then addMarryLevel(cid, 1) if isMarryOnline(cid) then doPlayerSendTextMessage(getPlayerByNameWildcard(getPartner(cid)), MESSAGE_STATUS_CONSOLE_RED,"[Marriage System] Level Up! [Nv: "..getMarryLevel(cid).."].") doSendMagicEffect(getCreaturePosition(getPlayerByNameWildcard(getPartner(cid))), 35) end doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_RED,"[Marriage System] Level Up! [Nv: "..getMarryLevel(cid).."].") doSendMagicEffect(getCreaturePosition(cid), 35) end end local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier) local count = math.ceil(((getMonsterInfo(string.lower(getCreatureName(target))).experience*exp)*Marry_stage[getMarryLevel(cid)].player_experience)/100) doPlayerAddExperience(cid, count) end end return true end]]></event> <event type="statschange" name="MarryStats" event="script"><![CDATA[ domodlib('marry_func') Damage_percent = 50 -- metade n mexa Chance = 25 -- chance de conseguir o reflect ou couple damage if isMonster(attacker) and type == STATSCHANGE_HEALTHLOSS then if isMarried(cid) and isMarryOnline(cid) and getPlayerByNameWildcard(getPartner(cid)) and getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(getPlayerByNameWildcard(getPartner(cid)))) <= marry_config.MaxSqm then if (Chance > math.random(1, 100)) then damage = math.ceil((value*Damage_percent)/100) if (50 > math.random(1, 100)) then doTargetCombatHealth(cid, attacker, COMBAT_PHYSICALDAMAGE, -damage, -damage, CONST_ME_HOLYDAMAGE) doSendAnimatedText(getCreaturePosition(cid), "REFLECT!", 140) else doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HEARTS) doSendAnimatedText(getCreaturePosition(cid), "Love!", 200) doCreatureAddHealth(cid, damage) if isMarryOnline(cid) then doSendMagicEffect(getCreaturePosition(getPlayerByNameWildcard(getPartner(cid))), CONST_ME_HEARTS) doSendAnimatedText(getCreaturePosition(getPlayerByNameWildcard(getPartner(cid))), "Love!", 200) doCreatureAddHealth(getPlayerByNameWildcard(getPartner(cid)), -damage) end end end end end return true ]]></event> </mod>
Configuração:
CREDITOS : 25% Ao vodkart pela lib e 75% ao mulizeu(eu) Pelos demais scripts
-
Tavinho Souzah deu reputação a arthurabreu em [ACTION] Scroll ExperienceBom galera, hoje fiz uma action Simples mais que pode ajudar muita gente !
Função: Ao usar tal item você ganha 1.000.000 de experience (Configuravel na script)
Obs: Somente uma vez por character
Pergunta: Mais como eu faço pra almentar ou diminuir o tanto de Experience que vai ganhar?
R: na Tag: local exp2 = 1000000 você altera pra quantidade desejada.
Em Action.xml adiciona essa tag:
Depois vai em scripts copia e cola um arquivo e renomea pra scroll.lua e cola isso:
Script Simples, em breve vo buscar mais conhecimentos pra trazer ao TibiaKing
Até mais.
#Criticas são sempre bem vindas pra minha melhora no scripting# -
Tavinho Souzah deu reputação a Rusherzin em (Resolvido)Como Remover Protection Zone RMESim, selecione a opção que adiciona a PZone e segure ctrl ao mesmo tempo e passe nos tiles onde tem PZone.
-
Tavinho Souzah deu reputação a Absolute em [Anti Guild Attacks] Você não pode atacar sua guildAnti Guild Attack.
Olá linduxos do TK, o próprio nome já diz tudo, é um script que proíbe que membros da guild ataque membros da sua própria guild (Ótimos em WARS).
Sem blábláblá vamos ao que interessa.
Em data/creaturescripts/creaturescripts.xml adicione a seguinte linha:
<event type="attack" name="attackguild" script="attackguild.lua"/> Em data/creaturescripts/scripts crie um arquivo com o nome attackguild.lua com o seguinte conteúdo:
function onAttack(cid, target) if isPlayer(target) and getPlayerGuildId(cid) == getPlayerGuildId(target) then local storageId = 101 if getPlayerStorageValue(cid, storageId) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You choose not to attack and not to be attacked by guild members.") doCreatureSetSkullType(cid, 0) return false elseif getPlayerStorageValue(target, storageId) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your target choose to not to attack and not to be attacked by guild members.") doCreatureSetSkullType(cid, 0) return false end end return true end
Pronto, agora players da mesma guild não podem se atacar
Espero ter ajudado, demais dúvida poste aqui no tópico.
Até a próxima!
Absolute.
-
Tavinho Souzah deu reputação a L3K0T em [PEDIDO] Website Narutibia 8.54um top ai modern acc ntoultimate v3 Baixar não vou postar scan pq n usei mas deve ser bom achei por ai
-
Tavinho Souzah deu reputação a tavinho pokes em [PEDIDO] Website Narutibia 8.54http://www.4shared.com/rar/WFmlLV5c/Naruto_Force_10.html Aqui tem o client,Site e o servidor
http://vapus.net/customclient Aqui voce faz seu client
http://sourceforge.net/projects/xampp/files/XAMPP%20Windows/1.7.3/xampp-win32-1.7.3.exe/download e o download do xampp
Ajudei??
Obs: um tutorial do youtube muito bom tambem!!
-
Tavinho Souzah deu reputação a tavinho pokes em (resolvidO) [pedido]website para narutibiaAqui ó NtoForce:
http://www.4shared.com/rar/WFmlLV5c/Naruto_Force_10.html Aqui tem o site,client e o servirdor!!!
http://vapus.net/customclient Aqui voce faz seu client!!!
http://sourceforge.net/projects/xampp/files/XAMPP%20Windows/1.7.3/xampp-win32-1.7.3.exe/download Aqui o xampp 1.7.3
Um tutorial muito bom!!!
Ajudei???
+REP
-
Tavinho Souzah deu reputação a Chiitus em Evento Double Exp com dia e hora específicoEste script dá double exp à todos os player que estiverem online ou entrarem durante o tempo especificado no dia X.
Pra quem não sabe, apenas crie um arquivo "QUALQUER-NOME.xml" na pasta "mods" (mesmo lugar do executável do servidor), cole isso dentro e salve:
É isso aí galera, caso tenha dúvidas poste aqui.
Créditos:
Script: Tomek
Xevis
Tópico: Eu '-'