Líderes
-
-
Henriqueberro
MembroPontos11Total de itens -
-
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 02/24/18 em todas áreas
-
[UP-LEVEL] Recompensa ao subir de level
Fala TKZIANOS de plantão WTF? AUEHAUHEA Mas ok... Venho hoje trazer a vocês um sistema de ganhar uma recompensa ao conquistar determinado nível (Configurável) Como funciona? Quando o jogador conquistar determinado level ele recebe como recompensa X item ou GOLD! Mais Absolute, o cara vai ficar se matando e upando de novo para ficar pegando a recompensa... NÃO! Quando o player conquista o level ele recebe uma STORAGE, essa storage faz com que salve isto, ou seja faz com que marque que o jogador já recebeu, se ele tentar burlar o sistema ele não vai receber pelo fato da tal STORAGE já estar gravada nele =p Em data/creaturescripts/scripts crie um arquivo chamado uplevelabsolute.lua e coloque o seguinte dentro: function onAdvance(cid, skill, oldLevel, newLevel) local config = { [50] = {item = 2160, count = 5}, [100] = {item = 2160, count = 15}, [150] = {item = 2160, count = 20}, [200] = {item = 2160, count = 25}, [250] = {item = 2160, count = 30}, [300] = {item = 2160, count = 50}, [350] = {item = 4891, count = 1}, [400] = {item = 4892, count = 1}, } if skill == 8 then for level, info in pairs(config) do if newLevel >= level and (getPlayerStorageValue(cid, 30700) == -1 or not (string.find(getPlayerStorageValue(cid, 30700), "'" .. level .. "'"))) then doPlayerAddItem(cid, info.item, info.count) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Parabéns, você atingiu o level "..newLevel.." e ganhou "..info.count.." "..getItemNameById(info.item)..".") local sat = getPlayerStorageValue(cid, 30700) == -1 and "Values: '" .. level .. "'" or getPlayerStorageValue(cid, 30700) .. ",'" .. level .. "'" setPlayerStorageValue(cid, 30700, sat) end end end return TRUE end Em data/creaturescripts/creaturescripts.xml adicione a seguinte linha: <event type="advance" name="UpAbsolute" event="script" value="uplevelabsolute.lua"/> Em data/creaturescripts/scripts/login.lua abaixo de registerCreatureEvent(cid, "Mail") adicione a seguinte linha: registerCreatureEvent(cid, "UpAbsolute") Pronto, você implantou o sistema em seu servidor. Como configurar: [50] = {item = 2160, count = 5}, [50] = level que o player vai receber a tal recompensa 2160 = item que o player vai receber, no caso 2160 é o Crystal Coin count = 5 = quantidade do item, no caso 5 Crystal Coins Observação: Ao atingir o level o player receberá uma mensagem e o prêmio estará diretamente em sua backpack. Qualquer dúvida peço que poste =D Até o próximo sisteminha bb's.1 ponto
-
Modal Compra por alavanca 1.2
Modal Compra por alavanca 1.2
nyedsonnyel reagiu a tataboy67 por uma resposta no tópico
1 pontoOpa galera beleza? Eu estava aqui olhando outros fóruns e percebi que postaram esse sistema, porém os links estavam todos off Resolvi desenvolver o sistema pra vocês TFS usado: 1.2 (Não testado em versões anteriores) * Bom o sistema funciona basicamente assim: Ao clicar na alavanca, abrirá um Modal com todas as opções de compra na tela do jogador ! O jogador poderá selecionar entre a compra de 1x / 50x / 100x itens ! Adicionado venda só para player que possuírem ''Cap'' na bag. * Foto: Simples não? Então vamos ao que interessa ! Em data/actions/scripts Crie um arquivo com o nome de compra_modal.lua e coloque isso dentro : Em data/actions adicione a linha: Em data/creaturescripts/scripts Crie um arquivo com o nome de potions.lua e coloque isso dentro : Em data/creaturescripts/creaturescripts.xml adicione a linha: Créditos: EU (100% pelo script) Strutz (Pela ideia do sistema) Rep+ para me motivar Obs: Testem o Script antes da aprovação pois estou sem PC agora e a verificação de cap foi feita sem teste !1 ponto -
Pronto para usar | OTC
Pronto para usar | OTC
GM Kinagon reagiu a Avuenja por uma resposta no tópico
1 pontoHoje vim trazer um tutorial de como remover o terminal, modules manager, e deixar o ip automático. Vamos ao tutorial : Parte Um Removendo módulos indesejados Dentro do diretório \otclient-master\modules\client Você irá abrir o arquivo "client.otmod" Dentro dele vai ter as seguintes linhas : load-later: - client_styles - client_locales - client_topmenu - client_background - client_options - client_entergame - client_terminal - client_modulemanager - client_serverlist //- client_stats Essas linhas são os módulos que vão carregar quando o client for aberto, então é só tirar os que você não quer que abra. Parte Dois Como deixar o ip automático Dentro do diretório \otclient-master modules\client_entergame Você irá abrir o arquivo "entergame.lua" Dentro da função "Init", você vai procurar por: if g_app.isRunning() and not g_game.isOnline() then enterGame:show() end E embaixo dessa função você adiciona essa linha : EnterGame.setUniqueServer('127.0.0.1', 7171, 854, 270, 210) Como configurar essa função: EnterGame.setUniqueServer(Ip do server, Porta (7171), Versão do server, Largura da janela, Altura da Janela) Créditos BananaFight1 ponto -
[MOD] Character List ( Aparece o Char no Login )
[MOD] Character List ( Aparece o Char no Login )
Thalles Vitor reagiu a aleknnto por uma resposta no tópico
1 pontoOlá, Galerinha do TK... Estou Trasendo este script, não foi feito por mim, mas eu fui dando uma reformulada, e tenho recebido muitos pedidos... lembrando que ele esta adaptado para POKEMON, Ele Está desta Forma, Infelizmente estou sem Tempo, Trabalhando Duro em um projeto, com minha equipe mais enfim, ja é uma otima base ! characterlist.rar Scan Virus Total ! : https://www.virustotal.com/pt/file/52b5e34db021895946a9184328a58d6713e3ecd6bbf08a2927bd5258e9ba128e/analysis/1450881632/ xD1 ponto -
Removendo Block Spawn
1 pontoOlá pessoal hoje estava mexendo na minha source, muitos me falavam, "porque você não coloca pro player ficar no respawn do pokemon" então hoje estou para a ajudar vocês, como minha source não tem a opção de blockspawn na config.lua, achei outra forma, vamos lá! Vá em spawn.cpp Procure: if(findPlayer(sb.pos)) { sb.lastSpawn = OTSYS_TIME(); continue; } Deixa assim abaixo: /*if(findPlayer(sb.pos)) { sb.lastSpawn = OTSYS_TIME(); continue; }*/ Agora salva, e recompila sua source. O que eu fiz fazendo isso ? removi definitivo o blockspawn se caso o player tiver no respawn do pokemon vai nascer do mesmo jeito. espero ter ajudado rep+ (acharam que era coisa difícil, sqn) Créditos a mim.1 ponto
-
Download Clients 11+ IP 127.0.0.1
@amoxicilina tá na mão o cliente com seu ip. Só colocar na pasta da mesma versão. Sobre healar eu acredito que seja nas sources, não sei alterar. Dá uma pesquisada aqui no TK. thegreatkg11_47.5640.exe Abraços.1 ponto
-
Skill e/ou Item - Attackspeed
Skill e/ou Item - Attackspeed
GM Kinagon reagiu a Henriqueberro por uma resposta no tópico
1 pontoVersão: 0.3.6pl1 TFS Função: Adiciona a velocidade de ataque de acordo com uma determinada skill e/ou arma. Aviso: A unidade que usamos aqui é o milissegundo (ms). 1ms = 0,001s 1s = 1000ms Instalação em player.cpp, procure a função: uint32_t Player::getAttackSpeed() e substitua ela inteira por: uint32_t Player::getAttackSpeed() { int32_t weaponAttackSpeed = 0; int32_t minimumAttackSpeed = 500; Item* weapon = getWeapon(); if(weapon && weapon->getAttackSpeed() != 0) weaponAttackSpeed = floor ((int)weapon->getAttackSpeed()); // FORMULA int32_t attackSpeed = vocation->getAttackSpeed() - (getSkill(SKILL_CLUB, SKILL_LEVEL) * 20) - weaponAttackSpeed; // CHECA A VELOCIDADE MÍNIMA if (attackSpeed && attackSpeed < minimumAttackSpeed) return minimumAttackSpeed; return attackSpeed; } Explicando Definimos um mínimo de velocidade caso a formula retorne um valor menor que 500, verificamos se a arma tem modificador de velocidade, ou seja, se a tag 'attackspeed' está definida no items.xml e então calculamos e retornamos o total. O total é definido pela seguinte formula: (Velocidade de Ataque da Vocations.xml ) - ( Skill Club * 20 ) - ( Velocidade de Ataque da Tag 'attackspeed' do Items.xml ) Configurações 500 - O Valor mínimo de velocidade de ataque, SKILL_CLUB - A skill que vai modificar a velocidade de ataque. 20 - O multiplicador, como default está definida 0,02 segundos a menos por skill. Como definir a tag no items.xml Embaixo do item desejado adicione a seguinte tag: <attribute key="attackspeed" value="X"/> Espero que ajude alguém e qualquer problema estou a disposição, me corrija se estiver errado pois não testei, apenas desenvolvi a lógica e fiz o teste de compilação, abraços.1 ponto -
.
É esse mesmo Ex: /i 2160, 100 2160(id do item) 100(quantidade) Não esquece de colocar group 5 no char e na conta :D1 ponto
-
[TUTORIAL] Como Adicionar Novos Tipos De Pokemons. "Fairy"
1 ponto
-
[Resolvido] TILE POR STORAGE
[Resolvido] TILE POR STORAGE
koyotestark reagiu a GiovaniRodrigo por uma resposta no tópico
1 pontoCrie um arquivo chamado tilestorage.lua na pasta data/movements/scripts e cole isso function onStepIn(cid, item, position, fromPosition) if getPlayerStorageValue(cid, 11138) <= 0 then doTeleportThing(cid, fromPosition, TRUE) doPlayerSendCancel(cid, "You don't have premission to pass.") end return TRUE end Adicione a seguinte linha no arquivo movements.xml que se encontra na pasta data/movements <movevent type="StepIn" actionid="6587" event="script" value="tilestorage.lua"/> No map editor coloque ActionID do tile 6587. Não testado. Dúvidas? Me avise. Att. Giovani Rodrigo1 ponto -
Como usar a funçao doRemoveItem ?
Como usar a funçao doRemoveItem ?
samuelandrade45 reagiu a Skyforever por uma resposta no tópico
1 pontoA função doRemoveItem(uid,n) se resume a uid = item n = pos então se for um item especifico você usa assim getTileItemById(pos, itemId) exêmplo: local item = getTileItemById({x = 1, y = 2, z = 3}, 2160) if item.uid > 0 then return doRemoveItem(item.uid, 1) end agora tem outra função getThingFromPos(pos) que pode usar assim doRemoveItem(getThingFromPos(pos).uid, 1).1 ponto