Histórico de Curtidas
-
Puncker deu reputação a Doughell em #1 Desmembrando seu ScriptOlá a todos frequentadores da seção Scripting, tomei minha própria iniciativa junto com o Lpz de criar dicas ao scripting, como perceberam ele já começou com seu tópico dicas onde foi muito importante a iniciantes!
Hoje começarei de nv. de script inferior, com scripts/comandos/funções básicas!
Então vamos começar com o comando parecido com o do !aol que é bastante útil a outros servidores.
Ok, vamos lá!
function onSay(cid,words,param) if doPlayerRemoveItem(cid,2145,10) == TRUE then doPlayerAddItem(cid,1738,1) doCreatureSay(cid,"MENSAGEM QUE A TALKACTION FOI REALIZADA COM SUCESSO",TALKTYPE_ORANGE_1) else doCreatureSay(cid,"MENSAGEM QUE HOUVE ERRO NA TALKACTION, MOTIVO: FALTA DE DINHEIRO",TALKTYPE_ORANGE_1) end end
Agora vamos as explicações:
function onSay(cid,words,param)
Para executar o comando é por meio de falas, palavras (exemplo: !aol)
if doPlayerRemoveItem(cid,2145,10) == TRUE then
Esta linha já diz tudo "PlayerRemoveItem" significa que removerá o tal item do player, no caso removerá o ID 2145 (Small Diamonds) e a quantidade, que seria 10.
Para modificar altere o número 2145 (Small Diamonds) para o que desejar idem a quantidade, que e o número 10.
OBSERVAÇÃO do Alexx Pirado lol: Além de remover, ele checa se o player possui o item e a quantidade. Após isso executa a função.
doPlayerAddItem(cid,1738,1)
Essa função ela mesmo diz já "AddItem" ao executar o comando e não houver erros/falhas (ex: falta de dinheiro) adiciona o id do item, você mesmo opta por qual item adicionar e a sua quantidade.
No caso os números 1738 é o ID do item é o número 1 e a quantidade.
doCreatureSay(cid,"MENSAGEM QUE A TALKACTION FOI REALIZADA COM SUCESSO",TALKTYPE_ORANGE_1)
else
Essa mensagem será mandada para a creature(pessoa,player) entre as aspas adicione uma mensagem de sucesso, onde a pessoa conseguiu executar o script sem problemas (onde teve o dinheiro suficiente).
Observação: A função "else" fará o contrário do de baixo, por exemplo No de baixo deu certo, no de cima com o else dará certo.
O TALKTYPE_ORANGE_1 e a cor que aparecerá na tela do jogador, no caso laranja (mude ao seu gosto).
doCreatureSay(cid,"MENSAGEM QUE HOUVE ERRO NA TALKACTION",TALKTYPE_ORANGE_1)
Essa mensagem será mandada para a creature(pessoa,player) entre as aspas adicione uma mensagem de erro, onde a pessoa não consegui executar o script por que não possuia dinheiro (que e o caso do script).
end
end
Os dois end servirão para fechar o if e o script.
É isso ai galera, primeira "aulinha" espero que tenham gostado quem sabe hoje mesmo posto outra um pouco mais avançada!
-
Puncker deu reputação a Doughell em #2 Desmembrando seu ScriptOlá a todos frequentadores da seção Scripting!
Hoje partiremos para nossa segunda aula de Scripting, as duas aulas foram bem rápidas essa aqui já será um pouco mais complexa, mas espero que usufruam bem dela!
local config = { doorPosition = {x = 100, y = 100, z = 7}, doorID = 1000, minAccess = 6, message = { doorOpen = "The door has been opened!" doorClose = "The door has been closed!" } } function onSay(cid, words, param) if getPlayerAccess(cid) >= config.minAccess then local item = getTileItemById(config.doorPosition, config.doorID) if item.uid > 0 then doRemoveItem(item.uid, 1) doPlayerSnedTextMessage(cid, 22, config.message.doorOpen) else doCreateItem(config.doorID, 1, config.doorPosition) doPlayerSendTextMessage(cid, 22, config.message.doorClose) end end return true end
Agora vamos as explicações:
local config = {
Esse o inicio de uma tabela, para fácilitar a organização (isso e uma das vantagens).
doorPosition = {x = 100, y = 100, z = 7},
A posição aonde o item/door será removido e adicionado.
doorID = 1000,
O ID da door, selecione corretamente!
minAccess = 6,
O acesso que precisa ter no minimo para executar o comando,
message = {
Entre essa tabela, terá as mensagens de abertura e fechamento.
doorOpen = "The door has been opened!"
Mensagem que aparecerá ao abrir o portão.
doorClose = "The door has been closed!"
Mensagem que aparecerá ao fechar o portão.
}
}
Fecha as tabelas.
function onSay(cid, words, param)
Para executar o comando é por meio de falas, palavras (exemplo: !gate)
if getPlayerAccess(cid) >= config.minAccess then
A if onde checa o acesso minimo para executar o comando.
local item = getTileItemById(config.doorPosition, config.doorID)
Checa o tile (piso) para as configurações da posição da porta e do ID.
doRemoveItem(item.uid, 1)
Remove o ID da door selecionado e a quantidade 1.
doPlayerSnedTextMessage(cid, 22, config.message.doorOpen)
else
Para mandar a mensagem ao abrir a porta, o número 22 e a cor da mensagem.
Observação: A função "else" fará o contrário do de baixo, por exemplo No de baixo deu certo, no de cima com o else dará certo.
doCreateItem(config.doorID, 1, config.doorPosition)
Criará a door (com a id selecionada) na quantidade 1 com as configurações da posição.
doPlayerSendTextMessage(cid, 22, config.message.doorClose)
Mandará uma mensagem que a porta foi fechada.
end
end
return true
end
O final do script, para fechar as ifs o script e checar a função no return, no caso true.
-
Puncker deu reputação a Doughell em [TalkAction] Gate SystemOlá a todos!
Bom, estou aqui para mostrar um dos meus novos scripts BEM MAIS APERFEIÇOADO com base em um dos antigos, como assim?
Apenas peguei um script de alavanca como base e modifiquei completamente para que fique mais fácil e bem mais útil.
Pode ser utilizados em todos tipos de eventos, por exemplo: Você anuncia que terá Castle WAR tal horário, até você chegar terá um monte de gente e tal... Para antecipar a abertura, apenas execute o comando que será aberto automaticamente! E claro também possui outras utilidades, mais cada um com a sua
Ok, agora vamos ao script!
Portão System
Crie um arquivo em otserv/talkactions/scripts com o nome de abertura.lua e adicione no arquivo:
Agora em talkactions.xml adicione:
[/color] [color=#000000]<talkaction words="!open" event="script" value="abertura.lua"/>[/color] [color=#000000]
É isso ai galera, qualquer duvida postem aqui mesmo ou dêem sujestões!
-
-
Puncker recebeu reputação de Kimoszin em (Resolvido) Follow attack BBot!Abra o Tibia vá em Options > General e verifique se o Auto Chase Off está marcado caso esteja desmarque.
-
Puncker recebeu reputação de Iago Felipe em fama de slipknot = ?Pra querer falar mal de Slipknot deve escutar músicas muito ruins eim? Sinto muito mais você deve ter um péssimo gosto... Não digo por total porque tem muito metaleiro aí que gosta de Iron Maiden, Metallica, Motorhead, etc. e não gosta de Slipknot e bandas do gênero por terem um estilo diferente do Metal Tradicional.
Sendo de propósito ou não, Slipknot toca uma boa música, muito melhor que esse monte de merda que todo mundo ouve por aí e ainda por cima vale muito mais a pena assitir um show do Slipknot mesmo com um erro do que assistir essas coisas escrotas que todos veem e escutam atualmente, que não fazem sentido, não tem um objetivo musical ( o objetivo deles é conquistar o mundo com música podre e ganhar dinheiro com isso ) e ainda querem criticar os que tocam música boa como o Slipknot.
@Edit
OBS: Não estou dizendo que todos que não gostam de Metal possuem péssimo gosto, pois tem muitas bandas e gêneros que eu não gosto porém eu respeito, já algumas não merecem meu respeito e o respeito de nenhum metaleiro/rockeiro pois como eu posso dizer... São "lixos sonoros" que geralmente conquistam a população mundial ( para ser mais exato a população brasileira que são aptos a seguirem modinhas pops/nacionais ridículas ) e se aproveitam adquirindo riquezas acumuladas dessas pessoas bobas que estão sendo enganadas ouvindo coisas ruins.
-
Puncker deu reputação a ClariX em 378 Pack - ALL C4Ds Added by ~stinky666142 Abstracts - CLICK HERE TO DOWNLOAD (153mb)
50 Bubbles - CLICK HERE TO DOWNLOAD (75mb)
63 Effects - CLICK HERE TO DOWNLOAD (47mb)
13 Lens' - CLICK HERE TO DOWNLOAD (28mb)
10 sQuigs - CLICK HERE TO DOWNLOAD (20mb)
100 WireFrames - CLICK HERE TO DOWNLOAD (53mb)
Todos os devidos créditos para ~stinky666.
-
Puncker deu reputação a Aluccard em Infinity AolOlá!
A pedidos de usuarios, resolvi fazer esse script simples e eficaz. Como o própio nome do tópico diz: Aol Inifinito.
No script possui um config onde pode ser alterado o ammyID = id do amuleto, lossExp = player perder exp, lossItems = player perder items.
newAol.lua
local config = { ammyID = 2130, lossExp = false, lossItems = false } function onDeath(cid, lastHitKiller, mostDamageKiller) if isPlayer(cid) then if (getPlayerSlotItem(cid, 2).itemid == config.ammyID) then if (config.lossExp == false) then doPlayerSetLossPercent(cid, experience, 0) end doCreatureSetDropLoot(cid, config.lossItems) return true end end return true end creaturescripts.xml <event type="death" name="NewAol" event="script" value="newAol.lua"/> Adicione no login.lua essa linha perto dos outros registercreatures. registerCreatureEvent(cid, "NewAol")
Obs¹: Esse script serve para todos os players inclusive RedSkulls/BlackSkulls.
Qualquer dúvida é só postar!
Atenciosamente,
Aluccard.
-
Puncker deu reputação a Augusto em Scroll de LevelEsse script funciona da seguinte maneira, é um scroll, que ao usa-lo você recebe avança um lvl, você pode coloca-lo como recompensa de uma quest ou sei lá, basta usar a imaginação.
Scroll de experiência
Vá até data > actions > actions.xml e adicione a tag:
<action itemid="6119" event="script" value="Exp_Scroll.lua"/> crie um arquivo "Exp_Scroll.lua" e coloque na pasta data > actions > scripts
-- Scripted By Perfection -- local itemID = 6119 local lvl = 1 function onUse(cid, item, frompos, item2, topos) if item.itemid == itemID then doPlayerAddLevel(cid, lvl) doPlayerSendTextMessage(cid,22,"You Recieved 1 Level !") doRemoveItem(cid, item.uid, 1) end return 1 end Crétidos: perfection.
-
Puncker deu reputação a DevilMoon em [TalkAction] Buy Aolmuito bom, mais não ficaria melhor assim?
custo = 10000 -- Quanto vai custar, gps
item = 2173 -- ID do item
quantidade = 1 -- Quantos vai vir
function onSay(cid, words, param)
if doPlayerRemoveMoney(cid, custo) == TRUE then
doPlayerAddItem(cid, item, quantidade)
doSendMagicEffect(getPlayerPosition(cid), 14)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce precisa de 10k para comprar um aol.")
end
return TRUE
end
[/codebox]
porque cada vez que o player compraria um aol, ficaria aparecendo aquela mensagem chata!
so fiz.. gosto de cada, mas no meu server ta assim =)
-
Puncker deu reputação a Kimoszin em [TalkAction] Buy AolUma simples talkaction para o player comprar aol,
Totalmente configuravel
BuyAol.lua
custo = 10000 -- Quanto vai custar, gps item = 2173 -- ID do item quantidade = 1 -- Quantos vai vir function onSay(cid, words, param) if doPlayerRemoveMoney(cid, custo) == TRUE then doPlayerAddItem(cid, item, quantidade) doSendMagicEffect(getPlayerPosition(cid), 14) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você acabou de comprar um AOL por "..custo.." gps.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..custo.." gps.") end return TRUE end Talkactions.xml <talkaction words="!buyaol" script="BuyAol.lua"/>
Qualquer duvida relacionada ao script só perguntar (=
-
Puncker recebeu reputação de Lorinho em Alguem me recomenda ...NeoBot é pago...
-
Puncker deu reputação a Augusto em Cursos em Video Aula PHP+MySQLPHP+MySQL
Galera, estava procurando material relacionado a PHP (básico para eu começar a brincar) e encontrei várias video aulas sobre o assunto, abordando tambem MySQL, ajudando tambem bastante quem esta desenvolvendo sites pra OtServ. O autor se preocupou em desenvolver um método de ensino tanto para pessoas que ja conhecem a linguagem, como para leigas (como eu). Então, vale a pena.
4shared - Parte 1 - Parte 2
Tamanho: 1.2GB
Duração: 9 Horas.
Idioma: Portugues.
Crétidos: BaixeBr.org
-
Puncker deu reputação a Raul Neiva em Potion baseado no level do playerPotion Baseado no Level do Player
Explicação: A potion será usada de acordo com o level desejado. Antes de fazer as substituições no seu potion.lua,faça um backup para prevenir. Vá em data/actions/actions.xml e coloque o código:
<action itemid="7588-7591;8472-8473;7618;7620;8704" event="script" value="potions.lua"/> Feito isso,vá em data/actions/scripts/potions.lua,apague tudo que estiver dentro e coloque:
local config = { removeOnUse = "no", usableOnTarget = "yes", -- can be used on target? (fe. healing friend) splashable = "yes", range = -1, realAnimation = "no" -- make text effect visible only for players in range 1x1 } local min, max = 0, 0 local POTIONS = { [8704] = {empty = 7636, splash = 42, health = {1.0, 1.25}, min = 50, max = 100}, -- small health potion [7618] = {empty = 7636, splash = 42, health = {1.25, 1.75}, min = 50, max = 150}, -- health potion [7588] = {empty = 7634, splash = 42, health = {1.75, 2.25}, min = 0, max = 350, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion [7591] = {empty = 7635, splash = 42, health = {2.25, 2.5}, min = 0, max = 500, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion [8473] = {empty = 7635, splash = 42, health = {2.5, 3.0}, min = 0, max = 800, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion [7620] = {empty = 7636, splash = 47, mana = {1.0, 1.5}, min = 50, max = 150}, -- mana potion [7589] = {empty = 7634, splash = 47, mana = {1.5, 2.0}, min = 0, max = 250, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion [7590] = {empty = 7635, splash = 47, mana = {2.0, 2.5}, min = 0, max = 350, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion [8472] = {empty = 7635, splash = 43, health = {1.25, 2.25}, mana = {1.25, 2.25}, min = 0, max = 320, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion } for index, potion in pairs(POTIONS) do if(type(index) == "number")then for k, v in pairs(config) do if(not potion[k]) then potion[k] = v end end if(potion.removeOnUse) then potion.removeOnUse = getBooleanFromString(potion.removeOnUse) end if(potion.usableOnTarget) then potion.usableOnTarget = getBooleanFromString(potion.usableOnTarget) end if(potion.splashable) then potion.splashable = getBooleanFromString(potion.splashable) end if(potion.realAnimation) then potion.realAnimation = getBooleanFromString(potion.realAnimation) end POTIONS[index] = potion end end function onUse(cid, item, fromPosition, itemEx, toPosition) local potion = POTIONS[item.itemid] if(not potion) then return false end if(not isPlayer(itemEx.uid) or (not potion.usableOnTarget and cid ~= itemEx.uid)) then if(not potion.splashable or not potion.splash) then return false end if(toPosition.x == CONTAINER_POSITION) then toPosition = getThingPosition(item.uid) end doDecayItem(doCreateItem(POOL, potion.splash, toPosition)) doRemoveItem(item.uid, 1) if(not potion.empty or potion.removeOnUse) then return true end if(fromPosition.x ~= CONTAINER_POSITION) then doCreateItem(potion.empty, fromPosition) else doPlayerAddItem(cid, potion.empty, 1) end return true end if(((potion.level and getPlayerLevel(itemEx.uid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(itemEx.uid)))) and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1) return true end if(potion.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPosition(cid), getThingPosition(itemEx.uid)) > potion.range) then return false end local x = getPlayerLevel(cid) local min_, max_ = potion.min, potion.max local health = potion.health if health then local hp = math.ceil(math.random(health[1] * x, health[2] * x)) if hp < min_ then hp = math.random(min_, max_) elseif hp > max_ then hp = math.random(max_, max_ + 100) end doCreatureAddHealth(itemEx.uid, hp) end local mana = potion.mana if mana then local mp = math.ceil(math.random(mana[1] * x, mana[2] * x)) if mp < min_ then mp = math.random(min_, max_) elseif mp > max_ then mp = math.random(max_, max_ + 100) end doPlayerAddMana(itemEx.uid, mp) end doSendMagicEffect(getThingPosition(itemEx.uid), CONST_ME_MAGIC_BLUE) if(not potion.realAnimation) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) else for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), 1, 1)) do if(isPlayer(tid)) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid) end end end doRemoveItem(item.uid, 1) if(not potion.empty or potion.removeOnUse) then return true end if(fromPosition.x ~= CONTAINER_POSITION) then doCreateItem(potion.empty, fromPosition) else doPlayerAddItem(cid, potion.empty, 1) end return true end Script simples,mas bem útil.
Te ajudei ? Rep +
Abraços.
-
Puncker recebeu reputação de Pablorox em Primeiro de muitos :)Primeiro de muitos? hmm... Ah sim rsrs, não queria dizer para ningúem mais o primeiro a conseguir tirar o TK do ar e travar ele foi eu, isso porque descobri uma brecha muito boba e é uma brecha que não pode ser corrigida pois é típica de forums, faz um bom tempo que não faço isso, quando descobri essa brecha logo desenvolvi uma ferramenta em Delphi que facilita a "utilização" dessa brecha, não usei programinhas já prontos eu criei minha PRÓPRIA ferramenta para fazer isso, essa ferramenta ainda existe e é poderosa, mais é poderosa por um motivo... O host do TK não é dos que você pode chamar de "bom" por isso minha ferramenta foi funcional e ainda é funcional, e facilmente consegui travar o site ou derrubá-lo e também sobrecarregar o servidor de banco de dados (SQL ou outro tipo de DB) do TK, que é o principal motivo do travamento e das caídas do site e isso é uma dica pro pessoal ou a pessoa que providencia o host do TK. E bom... irei dizer essa brechinha que não pode ser chamada de brecha... Ao clicar em um download/post a contagem/visitas é alterada, essa contagem é localizada dentro do Banco de Dados do TK, cada vez que eu clico em um link de download ou acesso um post o site executa uma alteração dentro do banco de dados em que é adicionado o valor 1 ao atual valor dentro do banco, um humano não é capaz de clicar tão rapidamente sendo capaz de criar uma sobrecarga no banco de dados mais um programa bem feito sim...
E partindo para o ponto hacker que o froostin diz ser... Froostin você não é hacker e desse jeito nunca vai ser... Usar brechas de SQL Injection e usar programas baixados da net de DDOs não é ser hacker, e ainda por cima programas de DDOs que você baixa da net são todos "FAIL" você bota o IP do site e bota pra atacar logo depois você acessa o site e o site está offline, mas sabe porquê? Porque o site bloqueou o seu IP e na hora que você acessa você não consegue acessá-lo pois ao verificar seu IP ele não permite o acesso do seu computador ao site, mas para as outras pessoas o site está em perfeita usabilidade, sem travamentos, sem caídas, só você que é o Bobo Mor se achando fodão que não consegue acessar o site sendo que você não consegue acessá-lo porque seu IP está bloqueado.
Dica: Sai dessa vida e vai pra escola, estude, estude muito faça pesquisas por conta própria sem ninguem mandar você fazer, faça faculdade ou seja revolucionário e use a própria internet para adquirir conhecimentos e coloque todo seu conhecimento em prática assim você poderá provar para nós que você é mesmo FODÃO, e pros babacas de plantão ser fodão não é catar toda a mulherada, ser fodão não é ser famoso, ser fodão é ser MUITO INTELIGENTE.
Não sei se com esse post posso receber uma punição, mas com punição ou não minha vida continuará a mesma e não ficarei revoltadinho com ninguém apenas seguirei meu rumo.
-
Puncker deu reputação a Raul Neiva em Comandos para web siteOlá galera do Tibia King.Hoje venho trazer a vocês vários comandos para usarem no web site.
Este comandos vão ser uma "mão na roda" para muitas pessoas.
Ai vai ...
Remover Premium ACC de todos. Não funciona com VIP System .
UPDATE account SET premdays=0; Dar 7 dias de Premium ACC a todos os players. Não funciona com VIP System. UPDATE accounts SET premdays = premdays + 7 Mardar todos os Players par a o templo. UPDATE players SET posx = X, posy = Y, posz = Z; Colocar todo mundo como Grupo 1 = Player. UPDATE groups SET flags=0,name="Player" WHERE id=1; UPDATE players SET group_id=1; DELETE FROM groups WHERE id<>1; Criar Account Manager. (Original em forgottenserver.sql) INSERT INTO `players` VALUES (1, 'Account Manager', 1, 1, 1, 0, 150, 150, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 50, 50, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 10, 10, 10, 0, 0); Remover Red Skull e frags de todos. UPDATE `players` SET `redskulltime`=0; Dar Todas as Blesses aos players. UPDATE `players` SET `blessings`=31; Remover um item especifico (exemplo id 2160) completamente do jogo (depot, players, houses). DELETE FROM player_depotitems, player_items, tile_items WHERE itemtype = 2160; Deletar players inativos, level baiaxo de 50, 20 days Inativo. Recomendo um backup do seu banco de dados antes desta ação. DELETE FROM players WHERE level < 50 AND lastlogin < UNIX_TIMESTAMP() - 20*24*60*60 Deletou um player do banco de dados? Com este código irá remover todos os items dele que ficaram no database. DELETE FROM player_items WHERE player_id NOT IN (SELECT id FROM players); * Deletar todos os itens de um único player .Onde 1234 é o ID do player. DELETE FROM `player_depotitems` , `player_items` WHERE `player_id` = '1234' Trocar o outfit de todos os players. UPDATE players SET lookbody =69, lookfeet =95, lookhead =115, looktype =128 Remover as casas de players que foram deletados. UPDATE `houses` SET `owner` = '0' WHERE `houses`.`owner` NOT IN ( SELECT `players`.`id` FROM `players` WHERE `players`.`id` = `houses`.`owner` ); Deletar um Storage de todos os players. Ótimo em caso de bugs de Quest. DELETE FROM `player_storage` WHERE `key` = '11551'; E o Global Storage Também. DELETE FROM `global_storage` WHERE `key` = '11551';
Tópico editado por mim,Raul Neiva.
Gostou ? Rep + !
-
Puncker deu reputação a Fox B. em War Of EmperiumNome: War Of Emperium * Completo
Versão: 8.54~8.60 (por enquanto testado apenas em Tfs 0.4)
Ultilidade: War entre Guilds (destruir 3 torres para conquistar o castelo e ganhar o prêmio)
STAFF : por favor criem uma seção chamada (sistemas) para sistemas completos como este por exemplo, entre outros...
Bem, xega de conversa e vamos ao que intereça...
Scan Do War Of Emperium!
Creditos: Mateksoft
Obrigado renato por lembrar!
War Of Emperium ~ Completo.zip
-
Puncker deu reputação a Raul Neiva em Criando backpack com nome do playerBackpack System
Testado: TFS 0.3.6pl1
Retirado: OTLand
Tópico: Editado por Raul Neiva.
Explicação: Em sua backpack,irá possuir o nome do player,no qual,só quem pode abrir/mover a backpack é o dono dela.
Instalação: Em action.xml adicione:
<action itemid="4851" event="script" value="own.lua"/> Crie um arquivo lua chamado own, na pasta scripts:
function onUse(cid, item, fromPosition, itemEx, toPosition) if itemEx.actionid ~= 3070 then if isInArray({1988, 2365}, itemEx.itemid) then doItemSetAttribute(itemEx.uid, "aid", 3070) doItemSetAttribute(itemEx.uid, "uid", getPlayerGUID(cid) + 1000) doItemSetAttribute(itemEx.uid, "name", getItemInfo(itemEx.itemid).name .. " that belongs to ".. getCreatureName(cid) .. ".") doRemoveItem(item.uid) else doPlayerSendCancel(cid, "Sorry, not possible.") end else doPlayerSendCancel(cid, "Sorry, not possible.") end return true Abra a backpack e coloque:
<action actionid="3070" event="script" value="backpack.lua"/> Agora vá em backpack.lua e coloque:
function onUse(cid, item, fromPosition, itemEx, toPosition) if item.actionid == 3070 then if item.uid ~= getPlayerGUID(cid) + 1000 then doPlayerSendCancel(cid, "Sorry, this backpack doesn't belong to you.") return true end end end Como usar o script: Escolha a backpack que você usará o script. Coloque o código:
if isInArray({1988, 2365}, itemEx.itemid) then *Usem o ID 4851 em sua backpack.
Façam bom proveito !
Qualquer dúvida estou a disposição.
Abraços.
-
Puncker recebeu reputação de Augusto em [Resolvido] [DUVIDA] Shell Visual BasicLeia este tutorial por favor:
http://www.jorgepaulino.com/2009/04/vbnet-extraindo-executaveis-dos.html
Após fazer todos esses passos insira o Shell(LocalParaOndeExtraiu), não sei se isso dará certo mas só será possível saber testando, infelizmente não poderei testar para você.
-
Puncker recebeu reputação de PostadorHunter em [Tutorial] Manipulando arquivos de configuração .ini{Manipulando arquivos de configuração .ini}
O que é um arquivo INI ?
Um arquivo INI é um arquivo texto usado para armazenar/fornecer configurações pessoais para sistemas/usuários ; Um arquivo INI é um arquivo com dados externo ao programa principal e esta formatado em : Secções(FileName) , Entradas e Valores.
Como por exemplo: Eu quero que o usuário digite algo em um "EditBox" mas que o que ele digite fique guardado e sempre seja usado, então irei gravar o que ele digitou em um arquivo .ini (Chamado de arquivo de inicialização mas também pode ser chamado de configuração) e quando eu quizer usar o que o usuário digitou eu busco dentro do arquivo .ini.
Funções
Primeiramente em seu projeto do VB adicione um novo "Module" chamado "INIread.vb" e outro chamado "INIwrite.vb".
(para criar um novo module, clique com botão direito no primeiro item da lista do Solution Explorer, Add > Module)
Dentro do INIread.vb apague tudo e cole isso:
Option Strict Off Option Explicit On Module INIread Public Function ReadIniValue(ByRef INIpath As String, ByRef KEY As String, ByRef Variable As String) As String Dim NF As Short Dim Temp As String Dim LcaseTemp As String Dim ReadyToRead As Boolean AssignVariables: NF = FreeFile ReadIniValue = "" KEY = "[" & LCase(KEY) & "]" Variable = LCase(Variable) EnsureFileExists: FileOpen(NF, INIpath, OpenMode.Binary) FileClose(NF) SetAttr(INIpath, FileAttribute.Archive) LoadFile: FileOpen(NF, INIpath, OpenMode.Input) While Not EOF(NF) Temp = LineInput(NF) LcaseTemp = LCase(Temp) If InStr(LcaseTemp, "[") <> 0 Then ReadyToRead = False If LcaseTemp = KEY Then ReadyToRead = True If InStr(LcaseTemp, "[") = 0 And ReadyToRead = True Then If InStr(LcaseTemp, Variable & "=") = 1 Then ReadIniValue = Mid(Temp, 1 + Len(Variable & "=")) FileClose(NF) : Exit Function End If End If End While FileClose(NF) End Function End Module E dentro do INIwrite.vb cole isso: Option Strict Off Option Explicit On Module INIwrite Public Function WriteIniValue(ByRef INIpath As String, ByRef PutKey As String, ByRef PutVariable As String, ByRef PutValue As String) As Object Dim Temp As String Dim LcaseTemp As String Dim ReadKey As String Dim ReadVariable As String Dim LOKEY As Short Dim HIKEY As Short Dim KEYLEN As Short Dim VAR As Short Dim VARENDOFLINE As Short Dim NF As Short Dim X As Short AssignVariables: NF = FreeFile ReadKey = vbCrLf & "[" & LCase(PutKey) & "]" & Chr(13) KEYLEN = Len(ReadKey) ReadVariable = Chr(10) & LCase(PutVariable) & "=" EnsureFileExists: FileOpen(NF, INIpath, OpenMode.Binary) FileClose(NF) SetAttr(INIpath, FileAttribute.Archive) LoadFile: FileOpen(NF, INIpath, OpenMode.Input) Temp = InputString(NF, LOF(NF)) Temp = vbCrLf & Temp & "[]" FileClose(NF) LcaseTemp = LCase(Temp) LogicMenu: LOKEY = InStr(LcaseTemp, ReadKey) If LOKEY = 0 Then GoTo AddKey HIKEY = InStr(LOKEY + KEYLEN, LcaseTemp, "[") VAR = InStr(LOKEY, LcaseTemp, ReadVariable) If VAR > HIKEY Or VAR < LOKEY Then GoTo AddVariable GoTo RenewVariable AddKey: Temp = Left(Temp, Len(Temp) - 2) Temp = Temp & vbCrLf & vbCrLf & "[" & PutKey & "]" & vbCrLf & PutVariable & "=" & PutValue GoTo TrimFinalString AddVariable: Temp = Left(Temp, Len(Temp) - 2) Temp = Left(Temp, LOKEY + KEYLEN) & PutVariable & "=" & PutValue & vbCrLf & Mid(Temp, LOKEY + KEYLEN + 1) GoTo TrimFinalString RenewVariable: Temp = Left(Temp, Len(Temp) - 2) VARENDOFLINE = InStr(VAR, Temp, Chr(13)) Temp = Left(Temp, VAR) & PutVariable & "=" & PutValue & Mid(Temp, VARENDOFLINE) GoTo TrimFinalString TrimFinalString: Temp = Mid(Temp, 2) Do Until InStr(Temp, vbCrLf & vbCrLf & vbCrLf) = 0 Temp = Replace(Temp, vbCrLf & vbCrLf & vbCrLf, vbCrLf & vbCrLf) Loop Do Until Right(Temp, 1) > Chr(13) Temp = Left(Temp, Len(Temp) - 1) Loop Do Until Left(Temp, 1) > Chr(13) Temp = Mid(Temp, 2) Loop OutputAmendedINIFile: FileOpen(NF, INIpath, OpenMode.Output) PrintLine(NF, Temp) FileClose(NF) End Function End Module Pronto as funções agora estão funcionando em seu projeto. Aparecerá 2 warnings mas ignore. Como usar as funções? Vamos definir uma variável "File" que será o caminho do arquivo .ini. Dim File as String Agora vamos atribuir um valor para a variável file. File = "C:\teste.ini" E agora? Como escrever/gravar ou ler este arquivo? Para escrever/gravar: WriteIniValue(File, "Teste", "Valor1", "Oi") Código inteiro (Coloque em algum botão ou algo do tipo): Dim File as String File = "C:\teste.ini" WriteIniValue(File, "Teste", "Valor1", "Oi") O arquivo .ini após ele executar isso ficara assim: [Teste] Valor1=Oi Agora vamos ler e exibir o que está escrito no arquivo .ini (Coloque em algum botão ou algo do tipo) Dim Str as String Str = ReadIniValue(File, "Teste", "Valor1") MsgBox(Str)
Com essas funções você pode criar várias idéias, use a sabedoria e crie idéias perfeitas com isto.
-
Puncker recebeu reputação de Mateuso em [Resolvido] [DUVIDA] Shell Visual BasicLeia este tutorial por favor:
http://www.jorgepaulino.com/2009/04/vbnet-extraindo-executaveis-dos.html
Após fazer todos esses passos insira o Shell(LocalParaOndeExtraiu), não sei se isso dará certo mas só será possível saber testando, infelizmente não poderei testar para você.
-
Puncker recebeu reputação de thalia em Alguem sabe um programa para abrir seu ot server automaticamente?OTL 1.4.0a ( Auto-IP | Auto-Restarter)
http://www.megaupload.com/?d=8A3M5W0W
Ta aí o download ;p
Créditos Notorious (Rafael Canovas)
-
Puncker deu reputação a gateu em [Talkaction] Telportar Todos Para O Templo!E aew galera!
Venho aki trazer esse script muito bacana.
Vou postar do jeito que eu coloquei no meu servidor.
O script nao fui eu quem fiz, somente traduzi e arrumei a tag.
Espero que gostem.
Créditos:
Sync
StreamSide
Shawak
Tag em Talkactions.XML:
<talkaction log="yes" words="/teleportall" access="5" event="script" value="teleportall.lua"/> Crie um arquivo teleportall.lua na pasta scripts da talkactions do seu servidor e adicione o script. function onSay(cid, words, param, channel) local temple = { x = 1584, y = 85, z = 7 } for _, cid in ipairs(getPlayersOnline()) do if getPlayerGroupId(cid) < 6 then if(param == '') then doTeleportThing(cid, temple) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Todos os players foram teleportados para o templo.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS) else local t = string.explode(param, ",") doTeleportThing(cid, { x = t[1], y = t[2], z = t[3] } ) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Todos os players foram teleportados para as coordenadas: [X:"..t[1].."], [Y:"..t[2].."], [Z:"..t[3].."]") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS) end end end return TRUE end Com esta talkaction podemos teleportar todos online para o templo ou para alguma coordenada [x][y][z] /teleportall -> teleporta todos para o seu templo /teleportall 158, 69, 7 -> teleporta todos os chars para a coordenada [x=158][y=69][z=7] Nesta parte do script vc coloca o seu templo: local temple = { x = 1584, y = 85, z = 7 }
E é isso aew galera
Se ajudei Rep + clica no verdinho!!!
-
Puncker deu reputação a AL4sKiM em [Resolvido] Soft Boots - BOHEspera, você editou o ID? 6529
Se sim, deve ser problema no macro ai voce teria que reportar pro mega corrigir.
-
Puncker deu reputação a Augusto em Simulador de Teclas + TibiaAPIBom, após muito estudo, erros, noite a base de coca-cola e salgadinhos... vou disponibilizar um mini projeto de como simular o pressionamento de hotkeys no cliente do tibia, utilizando a linguagem C# (my love ).
Não esta 100%, nem aquelas coisas, pois estou passando apenas uma base (o que eu aprendi), quem quiser se aprofundar ta ae a dica (www.google.com.br) <- meu grande MENTOR!.
Sem mais delongas...
Até+
Hotkeys.rar