Histórico de Curtidas
-
trancx123 recebeu reputação de locauty em (Resolvido)Gostaria de um Arco sem Flechas@danielkight bem, vc precisa me falar 1 item q tenha o efeito q vc queira...
bota isso no lugar desse q vc me passou:
<item id="22419" article="a" name="crude umbral crossbow"> <attribute key="weight" value="13000" /> <attribute key="weaponType" value="distance" /> <attribute key="range" value="5" /> <attribute key="hitChance" value="1" /> <attribute key="attack" value="3" /> ---> aqui vc vai botar vai botar o atributo q vc deseja, n sei qual é pois vc n falou um item com o mesmo efeito </item> o atributo será como esse <attribute key="shootType" value="energy" /> só mudar o value para o efeito q vc deseja
-
trancx123 recebeu reputação de
Magalhaes92em Wand e Rod que trocam por comandoEai galera, vim deixar um script simples que eu editei que vale a pena usa-ló caso não queira algo que envolva todos os tipos de dano como já vi no fórum e que troque o item em sí, no meu caso fiz com wand e rods vips do meu servidor que trocam de elementos por troca de item apenas usando o comando !energy, !fire, !tera, !frigo. Comecemos então ...
Vá em /data/talkactions.xml e coloque a seguinte tag
<talkaction words="!energy" event="script" value="wandvip1.lua"/> se quiser um comando desejável diferente é só trocar o campo words="comandodesejado".
agora vá em /data/talkactions/scripts crie um arquivo com o nome wandvip1.lua
function onSay(cid, words, param, channel) local k = getPlayerItemById(cid, true, 2191).uid if k == 0 then doCreatureSay(cid, 'You don\'t have a Classic wand.', TALKTYPE_ORANGE_1, false, cid) else doCreatureSay(cid, 'you changed your wandt type to fire.', TALKTYPE_ORANGE_1, false, cid) doTransformItem(k, 2189) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_GREEN) return true end return doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) end na segunda linha do script você colocará o id do item que o jogador tem que possuir para usar o comando !energy ---->no caso eu coloquei uma wand de fogo
na sétima linha do script você colocará o id do item que o jogador trocará ao usar o comando !energy---> no caso botei uma wand de energia.
PRONTO! salve tudo e teste! esse script pode não ser usado somente com a finalidade que eu dei a ele mas também como troca de um item X por um Y, ai vc usa conforme sua criatividade
OBS: testei no meu servidor 8.6 tfs 1.0
-
trancx123 deu reputação a xWhiteWolf em Puxar/Empurrar (conjunto de spells)Fala galera do TK, hoje vim trazer pra vocês um conjuntinho de spells que eu criei com base em uma spell que achei aqui no fórum mesmo
Os créditos da spell base que eu utilizei são do OneShot
São duas spells bem simples, uma puxa o oponente pra perto e a outra arremessa ele longe.
Idéia original tirada dos servidores de Avatar que possuem esse tipo de magia pra nação do Ar haha.
Aqui vão os scripts:
empurrararea.lua
Agora algumas imagens (não deu pra captar muito bem oque a spell faz porque ela é composta por diferentes movimentos, sugiro que vcs instalem e testem)
Puxar:
Empurrar
-
trancx123 recebeu reputação de tirso em (Resolvido)Boss morre e nasce um TP!@tirso em creaturescripts/scripts chama de tpmonstros
em cresturescripts.xml
<event type="death" name="teleportbosses" script="tpmonstros.lua"/> na mesma pasta registra no login.lua, vou dar só um exemplo, no caso o da devovorga
e por ultimo registra no script do monstros em monster/scripts, todo monstro q vc registrar tem q ter essa tag
-
trancx123 deu reputação a Natanael Beckman em GesiorACC 2019 8.60 UPDATE 29/06/2019Atualização de 29/06/2019.
Olá meus amigos, essa é a minha última contribuição free que faço na área de OTserver, fiz uma atualização bem completa do Gesior comparando com os que existem disponíveis, não vou falar muito pois grande parte já conhecem... Vou apenas posta algumas imagem das mudanças feitas.
Sempre gostei de evoluir e de oferecer aos demais uma facilidade de obter um material grátis e de qualidade, nunca utilizei meu pouco conhecimento para prejudicar os demais, pelo o contrario sempre foi na intenção de ajudar e se em algum momento falhei, falhei inconscientemente.
- Foi mudado algumas imagens de layout para renovar a estrutura.
- Server Info + Most Power Ful Guilds na mesma estrura.
- Create Account exigindo senhas com letras minusculas, maiúsculas e números, fortalecendo
a segurança do seu cliente e dificultando futuras dores de cabeças.
- Adicionado o mecanismo que identifica os valores de Premuim Points e Backup Points.
- Algumas mudanças de layout.
- Nome do player abaixo linkado.
- Adicionado um Box de doação, com a intenção apenas de complementar
o layout enriquecendo a pagina.
- Fixado o bug edit town, e melhorado o layout.
- Characters.php refeito, nesta imagem é uma visão de uma conta com access admin.
- Visão normal.
- Inventário completo.
- Guilds com visão ampliada.
- Detalhes...
- Novo SHOP com as estrutura de layout melhorada e modernizada.
- Sem BUGs lembre-se do CTRL + F5 para atualizar os cookies nesta pagina.
- Detalhes...
- Detalhes...
- Detalhes...
- Histórico do SHOP...
DOWNLOAD SITE
SHOP.LUA XAMPP 1.7.3 DATABASE LIMPA MYSQL DATABASE COMPLETA MYSQL TUTORIAIS ÚTEIS E COMPATÍVEIS PARA O SITE: PAGSEGURO AUTOMATICO SHOPGUILD BACKUP_POINTS SISTEMA VIP_TIME Créditos: Gesior.pl(WEBMaster) Felipe Monteiro(WEBMaster, WEBDesigner) Natanael Beckman(WEBNada) Nailan (WEBMaster) Ivens Pontes (WEBMaster) Marcio Porto (WEBMaster) Danyel Varejão (Programmer LUA, C++)
-
trancx123 deu reputação a Nightz em OT Server Ready - Apache + MySQL + phpmyadmin + bibliotecasO OT Server Ready (OSR) é um software básico que desenvolvi juntamente com o apoio da 4YouStart feito para auxiliar aqueles que tem mais dificuldade com a parte de infraestrutura.
Veja funcionando:
Avisos:
O software está em BETA. Em caso de qualquer problema envie uma resposta nesse post. Quero lembrar que qualquer cópia dessa postagem sem a devida autorização não é permitida.
O OSR instala e configura os seguintes softwares/bibliotecas (visão geral):
- Apache2 - php5 - MySQL 5.5 - phpmyadmin - Todas bibliotecas para compilar/rodar um OT Server O sistema suporta os seguintes sistemas operacionais:
Debian 7.x Ubuntu 12.x Ubuntu 14.x Para instalar o OT Server Ready, utilize as seguintes instruções:
Lembrete: utilize-o apenas em um servidor novo, recém formatado.
Para instalar no Debian:
apt-get update apt-get install -y gcc wget http://scripts.4youstart.com/ot-server-ready-debian chmod 777 ot-server-ready-debian ./ot-server-ready-debian SENHA Para instalar no Ubuntu:
apt-get update apt-get install -y gcc wget http://scripts.4youstart.com/ot-server-ready-ubuntu chmod 777 ot-server-ready-ubuntu ./ot-server-ready-ubuntu SENHA Substitua a palavra "SENHA" na última linha da instalação pela senha que deseja utilizar no phpmyadmin e MySQL. Recomenda-se que utilize a mesma senha do que a senha do servidor, mas pode utilizar qualquer uma.
Versão atual do Software:
v0.2 [23/11/2015] Lista de bibliotecas instaladas:
v0.1: apache2 php5 libapache2-mod-php5 php5-mcrypt mysql-client-5.5 mysql-server-5.5 mysql-common libboost-all-dev libgmp3-dev liblua5.1-0 liblua5.1-0-dev liblua50 liblua50-dev liblualib50 liblualib50-dev lua50 lua5.1 libsqlite0-dev libsqlite3-dev sqlite3 libmysql++-dev libmysqlclient-dev libxml2-dev libxml++2.6-dev cpp gcc g++ make automake autoconf pkg-config subversion liblua5.1-sql-mysql-dev liblua5.1-sql-sqlite3-dev zlib1g-dev zlib1g libcrypto++-dev libcrypto++ libcurl4-openssl-dev phpmyadmin v0.2: zip unzip build-essential libboost-dev libwww-perl ccache libboost-filesystem-dev libboost-regex-dev libboost-system-dev libboost-thread-dev libssl-dev Façam bom proveito
Foi anexado ao post o script para ubuntu
ot-server-ready-ubuntu
-
trancx123 deu reputação a luanluciano93 em Client MC (Todas versões e Client Próprio)Olá pessoal, esse tutorial é funcional para todas as versões, tanto pra jogadores, como para donos de servers que queiram disponibilizar um client do tibia ou próprio como MC ...
• Primeiramente baixe o Hex Editor [xvi32] (está anexado a este tópico).
• Após isso abra o Hex Editor, aperte CTRL+O, depois selecione o executável do seu servidor ...
• Depois que abrir aperte CTRL+G e selecione a opção HEXADECIMAL, e na opção hexacimal coloque o código referente a versão do seu tibia (vou colocar a lista abaixo).
• Agora substitua o valor de 75 por EB.
• Aperte CTRL+S (para salvar), feche o programa e prontinho, já tem sua MC
LISTA DE NÚMEROS HEXADECIMAIS POR VERSÃO:
Créditos: MartyX
É isso pessoal, espero que ajude.
xvi32.rar
-
trancx123 deu reputação a Natanael Beckman em Auto-Backup DatabaseGalera esse script é um auto backup da sua database, quem gosta de prevenir vamos ao tutorial.
Backup.sh
Criei uma pasta em qualquer local no linux, no meu caso eu fiz uma pasta com o nome database que está localizada na pasta home.
home/database/backup.sh Certo vamos configura o arquivo, dentro dele já vem tudo explicado mais vou dar um reforço, dentro do arquivo backup.sh contém:
#!/bin/bash CAMINHO="/home/database/" <--- local onde vai ficar salvo os backups NOMEBACKUP="server-backup" <--- nome do backup USER="root" <--- não mexe SENHA="nitendo64" <--- senha da database BANCO="casa_blanca" <--- nome da database #Nao mexer daqui pra baixo TEMPO="$(date +'%d-%m-%Y-%H-%M')" ##### #Rodando o backup ##### if [[ -z "$USER" || -z "$SENHA" || -z "$BANCO" ]]; then echo "Por favor preencha o usuário, senha e banco de dados nas configurações." else mysqldump -u$USER -p$SENHA $BANCO > $CAMINHO"/"$NOMEBACKUP"-"$TEMPO".sql" fi Certo configurado né, vamos fazer um teste:
Acessa a pasta:
cd /home/database Da permissão pros arquivos dentro dela, no caso o backup.sh:
chmod 777 -R * Roda o script pra um teste:
./backup.sh Veja na imagem do meu teste, já aparece ali a database, então ta ok deu certo as configurações:
Tudo bem, agora vamos configura pra ficar automático, pra todos os dias o script executar o backup em um certo horário:
crontab -e Se aparecer algo tipo seleciona alguma opção, selecione Nano, que provavelmente seja numero 2...
----------------------------------------------------------------------------------
Se não aparecer vai direto pra isso:
Digite isso dentro do nano, como você ver na imagem acima já tem adicionado:
0 6,21 * * * sh /home/database/backup.sh ctrl+x y da ENTER No meu caso botei pro script ser executado as 06:00hrs e 21:00hrs, então todo os dias nesse horário o script vai fazer o backup pra essa pasta que configurei, caso queria mudar o horário a logica do comado é clara né.
Caso queria deixar de minutos em minutos abaixo observe um exemplo de 5 em 5 minutos:
*/5 * * * * sh /home/database/backup.sh Caso queria deixar de horas em horas abaixo observe um exemplo de 1 em 1 hora:
0 */1 * * * sh /home/database/backup.sh Qualquer duvida postem, clica em GOSTEI, valeu.
Créditos total:
Joffily Ferreira
-
trancx123 deu reputação a roriscrave em ver andar debaixocoloque tudo acima do andar 7, se estiver no 7 voce nao consegue ver embaixo
-
trancx123 deu reputação a dezon em Shop Admin Gesior 2012 (TFS 0.3.6 ~ 0.4, 1.0)[+] Shop Admin Gesior 2012 (TFS 0.3.6 ~ 0.4, 1.0) [+]
[+] Nova versão 2015 [+]
Olá pessoal!
Quero apresentar a mais nova versão do meu script para administrar Web Shop do Gesior 2012.
[+] O que tem de novo?:
O script foi revisado; Comentado as principais partes; Escrito algumas funções e ações novas; Revisado anti-inject; Agora você pode adicionar pontos para quem fizer doação; De uma forma geral, foi revisado de cabo à rabo ! [+] Imagens:
[+] Galeria de imagens online
http://postimg.org/gallery/1ssnwbf1i/
[+] Instalação:
Basta você ter o Gesior 2012 instalado junto aos scripts LUA de shop do mesmo; Ter o banco de dados instalado e um servidor TFS 0.3.6+, TFS 1.0, 1 rodando também.
+ Vá na pata {seu_web_server}\www ou htdocs\pages\ e renomeie o arquivo 'shopadmin.php' para 'shopadmin.php.old';
+ Faça download do script novo e cole na pasta que citei à cima;
+ Faça download desse arquivo http://item-images.ots.me/items_images_1076.zip;
+ Copie e cole a pasta que vem dentro desse arquivo e cole na pasta {seu_web_server}\www ou htdocs\images\ ficando assim {seu_web_server}\www ou htdocs\images\items\ e dentro dessa pasta as imagens dos itens do tibia;
+ Pronto!
[+] Download:
http://www.mediafire.com/view/z62d9zxylpg36dz/shopadmin.php
[+] Scan:
https://www.virustotal.com/pt/file/c06a2f7e1c1909b34f4dee2a7c27930a6c7cad1882edfcdf101689b0b61899d9/analysis/1399682407/
[+] ATENÇÃO: Bug encontrado:
Na realidade o shopadmin.php desenvolvido por mim, não contém bug's, ele faz o registro das ofertas corretamente, o que eu não consegui consertar foi o data/globalevents/scripts/others/shop.lua.
Ele não consegue criar o container e adicionar os itens dentro desse container da oferta cadastrada, exemplo: se você criar uma BP de SD, dá o seguinte erro:
Lua Script Error: [GlobalEvent Interface] data/globalevents/scripts/others/shop.lua:onThink LuaScriptInterface::luaPlayerAddItemEx(). Item not found stack traceback: [C]: in function 'addItemEx' data/lib/compat/compat.lua:363: in function 'doPlayerAddItemEx' data/globalevents/scripts/others/shop.lua:50: in function <data/globalev ents/scripts/others/shop.lua:7> Claro que estou correndo atrás de resolver esse problema, mas se por um acaso alguém tiver a solução, peço que por gentileza, poste aqui que darei os devidos créditos!
[+] Como adicionar items?
Para adicionar items ao shopping é muito fácil, basta você seguir igual eu postei nas fotos a configuração, respeitando o ID do item, Quantidade, o Tipo da oferta e etc, assim você enviará uma nova oferta para o seu site.
Para adicionar uma oferta do tipo Container (Bp, Bag, etc) é fácil também, basta você preencher como na imagem à seguir:
[+] Explicando:
Coloque o 'Nome' da oferta. Insira uma 'Descrição' para essa oferta. Diga a quantidade de 'Premium points' necessários. Selecione o tipo da oferta: 'Item' ou 'Container'. Coloque o 'ID Item 1' à ser vendido, caso seja um item normal: armadura, espada, etc. Preencha a 'Qtde. Item 1' que o player irá receber quando comprar essa oferta. Deixe em branco 'ID Item 2' e 'Qtde. Item 2'. Caso seja BP, selecione o tipo para 'Container', no 'ID Item 1' coloque o Id da BP. Em 'Qtde. Item 1' você deve colocar a quantidade para cada item dentro do container, exemplo: se for BP de Runa, para preencher a BP você terá um total de 20 slots preenchidos pela quantidade de runas do 'Qtde. Item 2', então coloque 20, pois representa a quantidade de slots dentro do container. Agora em 'ID Item 2' você coloca o ID da Runa ou do item que você está vendendo dentro do container. Preencha a 'Qtde. Item 2' com a quantidade para cada slot do container que você está vendendo. Clique em salvar. Pronto, adicionado! [+] Isso é necessário:
Lembrando que você precisa estar já com os scripts em lua funcionando corretamente do sistema de shop do Gesior 2012, você pode encontrá-los aqui: http://otland.net/threads/gesior2012-items-shop-installation-administration.170654/
Obrigado à todos!!!
-
trancx123 deu reputação a Kamiz em Auto map desbloquear mapaOlha amigo, o que tu pode fazer é o seguinte.
Tu abriria seu servidor, exploraria tudo com o GOD, depois você iria na pasta %appdata% pegaria a pasta do tibia que contem lá com o map.
Depois tu iria criar um instalador para que o player baixe do seu site.
Acho que essa solução é complicada mas é a única que deu pra pensar até o momento!
-
trancx123 deu reputação a runeraserver em Custom Cliente - Todas as versões - Qualquer IPFala galera,
Vejo muita gente com dúvida de como fazer custom clients. Neste tutorial vou ensinar para vocês criar custom clients de todas as versões e com qualquer ip.
1º Passo:
• Baixe o programa NotePad http://notepad-plus-plus.org/repository/6.x/6.7.5/npp.6.7.5.Installer.exe
2º Passo:
• Vá no diretório onde está instalado o client que deseja editar, clique com o direito em Tibia.exe e selecione "Edit with Notepad++"
3º Passo:
• Pressione ctrl + f e busque por login01.tibia.com e substitua pelo seu ip, (exemplo.com.br).
Perceba que login01.tibia.com + os 3 NUL que aparecem, somam 20 caracteres (NUL conta como 1).
O seu IP deverá conter 20 caracteres ou menos.
Exemplo:
exemplo.com.br possui 14 caracteres
Como o meu exemplo possui 14 caracteres e login01.tibia.comNULNULNUL possui 20, vou ter que preencher esses 6 caracteres que faltam com 6 NUL.
Para isso, você deverá deixar o cursos de texto na frente do seu ip (exemplo.com.br"AQUI") e ir para Plugins>Converter>Conversion.
Digite 0 em decimal e clique em (ASCII: Insert) 6 vezes, devendo ficar assim: exemplo.com.brNULNULNULNULNULNUL (Lembrando que acrescenta 6 NUL no caso do exemplo, o seu IP deverá completar os 20 caracteres podendo haver mais ou menos NULs).
Procure por esses ips e faça os passos acima em todos:
login01.tibia.com login02.tibia.com login03.tibia.com login04.tibia.com login05.tibia.com tibia01.cipsoft.com tibia02.cipsoft.com tibia03.cipsoft.com tibia04.cipsoft.com tibia05.cipsoft.com Feito isso, procure por:
132127743205872284062295099082293384952776326496165507967876361843343953435544496682053323833394351797728954155097012103928360786959821132214473291575712138800495033169914814069637740318278150290733684032524174782740134357629699062987023311132821016569775488792221429527047321331896351555606801473202394175817 Substitue por:
109120132967399429278860960508995541528237502902798129123468757937266291492576446330739696001110603907230888610072655818825358503429057592827629436413108566029093628212635953836686562675849720620786279431090218017681061521755056710823876476444260558147179707119674283982419152118103759076030616683978566631413 Créditos: Gesior
-
trancx123 deu reputação a xWhiteWolf em Slot Cassino [0.36~0.4]a questão agora é entender pq q qnd vc bota uma bola embaixo ele tá criando ao invés de transformar.. tem ctza absoluta que tu não colocou duas uma em cima da outra?
o id é 1548
-
trancx123 deu reputação a xWhiteWolf em Slot Cassino [0.36~0.4]Olá pessoas, hoje vim trazer pra vocês um script que inicialmente fiz prum trabalho mas acabei gostando muito dele e decidi postar.
To meio que indo dormir porque daqui a pouquinho tenho aula então vai ser tudo bem rapido e se vcs tiverem alguma dúvida comentem aqui.
Primeiramente façam uma sala parecida com essa aqui:
Não precisa ser necessariamente assim, mas ela deve ter as 3 bolas, uma alavanca e um local pra botar o dinheiro pras apostas.
O sistema é baseado naqueles jogos de slot nos cassinos onde você aposta uma quantidade de dinheiro e se tirar 3 peças iguais você recebe o dobro do dinheiro apostado.
em actions/scripts crie um arquivo chamado cassino.lua e adicione o seguinte dentro dele:
Agora em data/actions/actions.xml adicione:
<action actionid="16541" script="cassino.lua"/>
Agora só botar a actionid na lever e configurar tudo de acordo com seu sv (as posições ali em pieces são as posições de cada peça, ou cada bola, se preferir.)
se quiser fazer várias salas é só copiar o código pra um cassino2.lua e registrar outra tag
<action actionid="16542" script="cassino2.lua"/>;
Tá tudo comentado no código então acho que dispensa uma explicação formal de como editar, espero que vocês gostem
Aqui tem um pequeno gif que o membro @eviltox nos forneceu:
Abraços do Lobo!
-
trancx123 deu reputação a xWhiteWolf em Experience Weapon SystemEai galera, hoje eu to trazendo pra vocês o meu Experience Weapon System. Pra quem não conhece é um sistema em que conforme você vai matando os monstros sua arma vai adquirindo parte da experiencia e upando de nível junto com você!
Eu abri um tópico pra sugestões mas os players foram tão criativos que eu decidi seguir meus instintos e fazer da minha própria maneira se não ia ficar muito ruim pra servers que não fossem derivados.
Testado em TFS 0.3.6 mas deve funcionar em qualquer um que tenha getThing(Pos) e onAttack e onKill ;]
Foi decidido por mim então fazer da seguinte maneira:
• Axes/ Swords/ Bows/ Crossbows:
Tem 5% de chance (pra cada nivel) de ferir gravemente o oponente e deixar ele sangrando, o nível do ferimento é proporcional ao nível da arma.
• Clubs:
Tem 5% de chance (pra cada nivel) de bater com tanta força que faça todos ao redor sentirem o tremor do seu ataque e levarem um dano baseado no nivel da arma e no ataque da mesma.
• Wands/ Rods:
Tem 5% de chance (pra cada nivel) de retirar uma quantidade de mana do player (proporcional ao nivel da arma) e ficar recuperando mana mais rapidamente durante 5 segundos após isso
Dito isso vamos ao que interessa:
Adiciona essas duas linhas no seu creaturescripts.xml:
<event type="kill" name="itemexp" script="itemexp.lua"/> <event type="attack" name="conditionitem" script="conditionitem.lua"/> e no login.lua:
--------------- Experience System ---------------- registerCreatureEvent(cid,"itemexp") registerCreatureEvent(cid,"conditionitem") Agora crie um arquivo em data\lib\ chamado 037 - Experience System.lua e coloque isso dentro dele:
Feito isso crie um arquivo em creaturescripts\scripts chamado itemexp.lua e adicione isso daqui:
Agora crie outro arquivo em creaturescripts\scripts, adicione isso daqui nele e chame de conditionitem.lua:
Agora configurando:
Bom, é isso aí, a minha idéia era trazer um pouco a mais de RPG e fazer o pessoal pensar 2x antes de sair trocando suas armas pela primeira que ele dropa que tenha + ataque que a dele pois assim ele passa a ter que valorizar mais os itens que já possui a um bom tempo;
Outro motivo é que agora os items vão valer mais e agora seu server vai ter mais movimento nas trocas ;]
Espero que tenham gostado e qualquer coisa é só falar nos comentários. Abraço do lobinho.
Ps: aqui tem duas fotinhas mas o resto só instalando mesmo porque tem bastante coisa pra mostrar.
E lembrando, se te ajudei clica em Gostei aqui embaixo. Fuis
-
trancx123 deu reputação a xWhiteWolf em Achievements & Reward Chestnão sei como seu sistema vai funcionar, vcs do tibia tem mania de inventar moda e fazer coisas desnecessárias no código, mas de qualquer forma aqui vai um pseudo-código pra distribuir o loot de um corpse com base numa função heurística(uid)
for (deathlist) do order by heuristic end for itens_in_corpse do order by rarity end for (deathlist) do give count (itens_in_corpse, variety_by_heuristic) if itens_in_corpse[iterator].count > variety_by_heuristic then table.insert(itens_in_corpse, {id, count - variety_by_heuristic}) end table.remove(itens_in_corpse, iterator) end Isso é uma opção bem simples, teria que pesar custo de processamento x benefício, dá pra melhorar muito esse código mas aí depende doque você quer tb né..
Se eu fosse fazer, eu pegaria os pontos atribuidos, dividiria pelo tempo pra matar e multiplicaria por (quantidade de ataques/numero de pessoas) com um limiar pra manter uma heurística decente, feito isso eu organizaria um rank definido pelo próprio xml da chance de cada item, rodaria a deathlist do monstro pra comparar quais players se encaixariam nos critérios e distribuiria o loot pro reward chest com base nisso. Claro que isso poderia ficar pesado se vc fizesse somente em lua, mas dada à quantidade de bosses que aceitam esse sistema acho que até daria pra manter assim. Enfim, nunca vi um reward chest mas pelo que vcs falaram aqui essa seria a maneira que eu pensaria. Talvez até desse pra fazer inteiramente em lua, só com manipulação no banco de dados pra manter o reward chest como um depot.
Meu trabalho tá mais que feito, entro aqui por hobby e olhe lá.. o problema é que quando vocês fazem coisas sozinhas já logo pensam em vender ao invés de distribuir só porque "ai ngm ajudou". Quantas vezes eu pedi ajuda pra vocês da equipe, vcs só ignoraram e mesmo assim eu postei? As vezes até com creditos de vocês. Seilá, acho que os argumentos de vocês tão precisando de uma base.. quem sabe se vc estudasse ao invés de ficar aqui se apresentando como se fosse inteligente.
Não precisa de psicologia nenhuma, só precisa ter caráter.
cara, eu nem mexo com tibia.. eu só to falando pra eles postarem o negócio pra ajudar quem mexe. Eu não preciso de ajuda até porque não é do meu interesse esse sistema. Meu skype ta no meu perfil, quem quiser ter uma conversa mais profunda sobre isso é só vir me chamar lá, vamos parar de floodar o tópico porque não sei se o coordenador sabe mas é contra as regras isso. -
trancx123 deu reputação a Fir3element em gaz'haragoth<?xml version="1.0" encoding="UTF-8"?> <monster name="Gaz'haragoth" nameDescription="a gaz'haragoth" race="undead" experience="1000000" speed="400" manacost="0"> <health now="350000" max="350000"/> <look type="591" head="0" body="94" legs="79" feet="79" corpse="22562"/> <targetchange interval="10000" chance="20"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag staticattack="98"/> <flag targetdistance="1"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" min="0" max="-5000"/> <attack name="ice" interval="3000" chance="35" range="7" radius="7" target="1" min="-900" max="-1100"> <attribute key="shootEffect" value="ice"/> <attribute key="areaEffect" value="icearea"/> </attack> <attack name="melee" interval="1800" chance="40" range="7" radius="5" target="0" min="0" max="-1000"> <attribute key="areaEffect" value="blackspark"/> </attack> <attack name="fire" interval="3000" chance="30" length="8" spread="0" min="-4000" max="-6000"> <attribute key="areaEffect" value="fire"/> </attack> <attack name="physical" interval="2500" chance="20" range="7" radius="5" target="0" min="-200" max="-480"> <attribute key="areaEffect" value="greenshimmer"/> </attack> </attacks> <defenses armor="55" defense="65"> <defense name="healing" interval="3000" chance="35" min="2500" max="3500"> <attribute key="areaEffect" value="blueshimmer"/> </defense> <defense name="speed" interval="4000" chance="80" speedchange="500" duration="6000"> <attribute key="areaEffect" value="redshimmer"/> </defense> </defenses> <elements> <element firePercent="50"/> <element earthPercent="50"/> <element energyPercent="50"/> <element deathPercent="50"/> <element physicalPercent="50"/> <element holyPercent="50"/> <element icePercent="50"/> </elements> <immunities> <immunity paralyze="1"/> <immunity invisible="1"/> </immunities> <summons maxSummons="3"> <summon name="Minion of Gaz'haragoth" interval="4000" chance="33"/> </summons> <summons maxSummons="3"> <summon name="Nightmare of Gaz'haragoth" interval="4000" chance="33"/> </summons> <voices interval="5000" chance="30"> <voice sentence="Gaz'haragoth begins to channel DEATH AND DOOM into the area! RUN!" yell="1"/> <voice sentence="Minions! Follow my call!" yell="1"/> <voice sentence="I've beaten tougher demons then you even know" yell="1"/> <voice sentence="You puny humans will be my snacks!" yell="1"/> <voice sentence="Gaz'haragoth calls down: DEATH AND DOOM!" yell="1"/> </voices> <loot> <item id="2152" countmax="50" chance="10000"/> <!-- Platinum Coin --> <item id="2160" countmax="6" chance="10000"/> <!-- Crystal Coins --> <item id="18418" countmax="15" chance="10000"/> <!-- Blue Crystal Splinter --> <item id="7368" countmax="100" chance="10000"/> <!-- Assassin Star --> <item id="22598" countmax="3" chance="10000"/> <!-- Unrealized Dream --> <item id="6500" countmax="2" chance="10000"/> <!-- Demonic Essence --> <item id="8473" countmax="100" chance="10000"/> <!-- Ultimate Health Potion --> <item id="7590" countmax="100" chance="10000"/> <!-- Great Mana Potions --> <item id="8472" countmax="100" chance="10000"/> <!-- Great Spirit Potions --> <item id="22397" countmax="3" chance="10000"/> <!-- Dream Matter --> <item id="18415" countmax="5" chance="10000"/> <!-- Green Crystal Shard --> <item id="22396" countmax="14" chance="10000"/> <!-- Cluster of Solace --> <item id="2158" countmax="2" chance="10000"/> <!-- Blue Gem --> <item id="18416" countmax="10" chance="10000"/> <!-- Green Crystal Splinter --> <item id="18414" countmax="15" chance="10000"/> <!-- Violet Crystal Shard --> <item id="6529" chance="6000"/> <!-- Infernal Bolt --> <item id="22612" chance="6000"/> <!-- Demonic Tapestry --> <item id="5914" chance="6000"/> <!-- Yellow Piece of Cloth --> <item id="5911" chance="6000"/> <!-- Red Piece of Cloth --> <item id="22610" chance="6000"/> <!-- Dream Warden Mask --> <item id="7899" chance="6000"/> <!-- Magma Coat --> <item id="7632" chance="6000"/> <!-- Giant Shimmering Pearl --> <item id="5954" chance="6000"/> <!-- Demon Horn --> <item id="22608" chance="6000"/> <!-- Nightmare Horn --> <item id="2195" chance="6000"/> <!-- Boots of Haste --> <item id="2168" chance="6000"/> <!-- Life Ring --> <item id="22614" chance="6000"/> <!-- Nightmare Beacon --> <item id="22613" chance="6000"/> <!-- Eye Pod --> <item id="22611" chance="6000"/> <!-- Psychedelic Tapestry --> <item id="22398" chance="5000"/> <!-- Crude Umbral Blade --> <item id="22401" chance="5000"/> <!-- Crude Umbral Slayer --> <item id="22404" chance="5000"/> <!-- Crude Umbral Axe --> <item id="22407" chance="5000"/> <!-- Crude Umbral Chopper --> <item id="22413" chance="5000"/> <!-- Crude Umbral Hammer --> <item id="22410" chance="5000"/> <!-- Crude Umbral Mace --> <item id="22416" chance="5000"/> <!-- Crude Umbral Bow --> <item id="22419" chance="5000"/> <!-- Crude Umbral Crossbow --> <item id="22422" chance="5000"/> <!-- Crude Umbral Spellbook --> <item id="22399" chance="5000"/> <!-- Umbral Blade --> <item id="22402" chance="5000"/> <!-- Umbral Slayer --> <item id="22405" chance="4000"/> <!-- Umbral Axe --> <item id="22408" chance="4000"/> <!-- Umbral Chopper --> <item id="22414" chance="4000"/> <!-- Umbral Hammer --> <item id="22411" chance="4000"/> <!-- Umbral Mace --> <item id="22417" chance="4000"/> <!-- Umbral Bow --> <item id="22420" chance="4000"/> <!-- Umbral Crossbow --> <item id="22423" chance="4000"/> <!-- Umbral Spellbook --> <item id="22400" chance="4000"/> <!-- Umbral Masterblade --> <item id="22403" chance="3000"/> <!-- Umbral Master Slayer --> <item id="22406" chance="3000"/> <!-- Umbral Master Axe --> <item id="22409" chance="3000"/> <!-- Umbral Master Chopper --> <item id="22415" chance="3000"/> <!-- Umbral Master Hammer --> <item id="22412" chance="3000"/> <!-- Umbral Master Mace --> <item id="22418" chance="3000"/> <!-- Umbral Master Bow --> <item id="22421" chance="3000"/> <!-- Umbral Master Crossbow --> <item id="22424" chance="3000"/> <!-- Umbral Master Spellbook --> <item id="11262" chance="6000"/> <!-- Solitude Charm --> <item id="11261" chance="6000"/> <!-- Twin Sun Charm --> <item id="11260" chance="6000"/> <!-- Spiritual Charm --> <item id="11259" chance="6000"/> <!-- Unity Charm --> <item id="11258" chance="6000"/> <!-- Phoenix Charm --> </loot> </monster>
-
trancx123 deu reputação a AgaSsI em [Sistema] Auto Lootcreaturescripts.xml
<event type="login" name="aloot_reg" event="script" value="aloot.lua"/> <event type="kill" name="aloot_kill" event="script" value="aloot.lua"/> creaturescripts/scritps aloot.lua
function onLogin(cid) registerCreatureEvent(cid, "aloot_kill") return true end local stor = 7575 function autoloot(cid, target, pos) local function doStack(cid, itemid, new) local count = getPlayerItemCount(cid, itemid) if (count > 100) then count = count - math.floor(count / 100) * 100 end local newCount = count + new if (count ~= 0) then local find = getPlayerItemById(cid, true, itemid, count).uid if (find > 0) then doRemoveItem(find) else newCount = new end end local item = doCreateItemEx(itemid, newCount) doPlayerAddItemEx(cid, item, true) end local function scanContainer(cid, uid, list) for k = (getContainerSize(uid) - 1), 0, -1 do local tmp = getContainerItem(uid, k) if (isInArray(list, tmp.itemid)) then if isItemStackable(tmp.itemid) and (getPlayerItemCount(cid, tmp.itemid) > 0) then doStack(cid, tmp.itemid, tmp.type) else local item = doCreateItemEx(tmp.itemid, tmp.type) doPlayerAddItemEx(cid, item, true) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Looted ' .. tmp.type .. ' ' .. getItemNameById(tmp.itemid) .. '.') doRemoveItem(tmp.uid) elseif isContainer(tmp.uid) then scanContainer(cid, tmp.uid, list) end end end local items = {} for i = getTileInfo(pos).items, 1, -1 do pos.stackpos = i table.insert(items, getThingFromPos(pos)) end if (#items == 0) then return end local corpse = -1 for _, item in ipairs(items) do local name = getItemName(item.uid):lower() if name:find(target:lower()) then corpse = item.uid break end end if (corpse ~= -1) and isContainer(corpse) then scanContainer(cid, corpse, tostring(getPlayerStorageValue(cid, stor)):gsub('_', ''):explode(',')) end end function onKill(cid, target, lastHit) if not isPlayer(target) then local infos = getPlayerStorageValue(cid, stor) if (infos == -1) then return true end local list = tostring(infos):explode(',') if (#list == 0) then return true end addEvent(autoloot, 150, cid, getCreatureName(target), getCreaturePosition(target)) end return true end talkactios.xml
<talkaction words="/aloot" hide="yes" event="script" value="aloot.lua"/> Talkaction/scrips
local stor, limit = 7575, 5 --storage, limit to add. local allow_container = false --empty! not looted with items, atleast for now. function onSay(cid, words, param) local expl = param:explode(':') local action, rst = expl[1], expl[2] if (action:lower() == 'check') then local infos, list = getPlayerStorageValue(cid, stor), {} if (infos ~= -1) then list = tostring(infos):explode(',') end local txt = 'Autoloot List:\n' if (#list > 0) then for k, id in ipairs(list) do id = id:gsub('_', '') if tonumber(id) then txt = txt .. getItemNameById(tonumber(id)) .. ((k < #list) and '\n' or '') end end else txt = 'Empty' end doPlayerPopupFYI(cid, txt) elseif (action:lower() == 'add') then local infos, list = getPlayerStorageValue(cid, stor), {} if (infos ~= -1) then list = tostring(infos):gsub('_', ''):explode(',') end if (#list >= limit) then return doPlayerSendCancel(cid, 'You already have ' .. limit .. ' autolooting items.') end local item = tonumber(rst) if not item then item = getItemIdByName(rst, false) if not item then return doPlayerSendCancel(cid, 'not valid item.') end end if not allow_container and isItemContainer(item) then return doPlayerSendCancel(cid, 'this item can not be autolooted.') end local attrs = getItemInfo(item) if not attrs then return doPlayerSendCancel(cid, 'not valid item.') elseif not attrs.movable or not attrs.pickupable then return doPlayerSendCancel(cid, 'this item can not be autolooted.') end if isInArray(list, item) then return doPlayerSendCancel(cid, 'already added.') end table.insert(list, tostring(item)) local new = '' for v, id in ipairs(list) do new = new .. '_' .. id:gsub('_' ,'') .. ((v < #list) and ',' or '') end doPlayerSetStorageValue(cid, stor, tostring(new)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item >>' .. getItemNameById(item) .. '<< has been added to the autoloot list.') elseif (action:lower() == 'remove') then local infos, list = getPlayerStorageValue(cid, stor), {} if (infos ~= -1) then list = tostring(infos):gsub('_', ''):explode(',') end if (#list == 0) then return doPlayerSendCancel(cid, 'You dont have any item added.') end if (#list >= limit) then return doPlayerSendCancel(cid, 'You already have ' .. limit .. ' autolooting items.') end local item = tonumber(rst) if not item then item = getItemIdByName(rst, false) if not item then return doPlayerSendCancel(cid, 'not valid item.') end end if not isInArray(list, item) then return doPlayerSendCancel(cid, 'This item is not in the list.') end local new = '' for v, id in ipairs(list) do if (tonumber(id) ~= item) then new = new .. '_' .. id:gsub('_' ,'') .. ((v < #list) and ',' or '') end end doPlayerSetStorageValue(cid, stor, tostring(new)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item >>' .. getItemNameById(item) .. '<< removed from the autoloot list.') end return true end Usando
/aloot check
Cheka a Lista dos Loots
/aloot add:itemid ou nome do item
Exemplo
/aloot add:worm
/aloot add:2170
16:42 Item >>worm<< has been added to the autoloot list.
Para remover
/aloot remove:worm
/aloot remove:2170
Exemplo Testado:
16:41 Looted 2 gold coin.
16:41 Looted 1 cheese.
CREDITOS: eduardobean
é isso pessoal gosto da + Rep
-
trancx123 deu reputação a luangop em [Talkactions] transferir premium points de player pra playerfunction onSay(cid, words, param, channel) local t = string.explode(param, ",") local stopoint = XXXX if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Exemplo de como usar o comando:\nTransferir 50 points para o player 'Amigo'\n!transferpoints, Amigo, 50") return true end local player = getPlayerByNameWildcard(tostring(t[1])) if(not isPlayer(player)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Esse jogador nao existe ou nao esta online.") return true end if not t[2] or t[2] and tostring(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Exemplo de como usar o comando:\nTransferir 50 points para o player 'Amigo'\n!transferpoints, Amigo, 50") return true end local points = tonumber(t[2]) local newpoint = getPlayerStorageValue(player, stopoint) + points local ppoint = getPlayerStorageValue(cid, stopoint) - points if getPlayerStorageValue(cid, stopoint) < points then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao tem points suficientes") return true end if getPlayerStorageValue(cid, stopoint) >= points then setPlayerStorageValue(player, newpoint) setPlayerStorageValue(cid, stopoint, ppoint) doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_BLUE, "".. getPlayerName(cid) .." te deu ".. points .." Points!") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "".. t[1] .." recebeu ".. points .." Points!") return true end end Você não deu informações detalhadas quanto a seu sistema de premium points, chutei que seria por storage. Caso não seja o script não vai funcionar.
No script, altere somente essa parte:
local stopoint = XXXX
Onde esta XXXX coloque a storage dos premium points.
-
trancx123 deu reputação a Hona em Criando instalador para ClientCriando instalador para Client
Download:
baixaki,mediafire,4shared
Abra o aplicativo [ Install Creator ].
Depois você vera uma tela em cima do aplicativo.
Click em avançar.
Agora escolha os arquivos lembrando elis devem estar em uma pasta.
(o programa ira copiar tudo que estiver dentro da pasta)
Depois de escolher os arquivos.
Escolha o idioma de sua preferencia.
Escolha o nome do programa.
Depois click em avançar.
Agora vc escolhe se seu instalador sera full (tela cheia)ou small (pequeno).
Depois click em avançar.
Olhe a imagem abaixo e façam o ki estar nela.
Depois de configurar click em avançar.
Agora coloque tudo sobre o aplicativo que vc quer criar.
Depois click em avançar.
Agora coloque a descrição da sua licença.
Depois click em avançar.
Agora escolha o local a onde o seu jogo sera salvo depois de instalado no pc do jogador.
Depois click em avançar.
Agora vamos criar um atalho para seu arquivo.
Procure seu arquivo .exe na pasta.
Agora coloque o nome do seu atalho.
Depois marque a caixa que diz: Add desktop shortcut
Agora click em avançar.
Aki deixe em branco.
Agora click em avançar
Agora selecione se quer ou não uninstaller.
Depois click em avançar.
Agora marque a caixa que diz do not build the install program
Agora clique em concluir.
Agora click em Build.
Agora escolha onde vai salvar o instalador.
Depois inicie o teste se ficou como vc queria.
Creditos: Adriano C
-
trancx123 deu reputação a Absolute em [Testar VIP Account] !testarvip NEWOlá galera do TK, trago hoje um script que já vi em alguns servidores, o TEST VIP.
Ao atingir o level 200 você poderá executar uma talkaction onde receberá 2 dias VIP pra testar, isto chamará atenção dos players e poderá vender VIP Account.
Em data/talkactions/talkactions.xml adicione a seguinte linha:
<talkaction words="!testarvip" script="absolutevip.lua"/> Em data/talkactions/scripts crie um arquivo com o nome de absolutevip.lua e dentro adicione:
-- Script criado por Absolute dando TEST VIP como bonificação ao atingir determinado level. function onSay(cid, words, param, channel) local level = getPlayerLevel(cid) local lvmin = 200 local yesMsg = "Voce ganhou 2 dias de VIP Account, aproveite para testar!!." local lvlMsg = "Voce precisa de level ".. lvmin .." para testar a VIP." local noMsg = "Voce já recebeu esse bonus safadenho!" test = db.getResult("SELECT `absolutevip` FROM `accounts` WHERE `id` = "..getPlayerAccountId(cid)..";") vip = test:getDataInt("absolutevip") if vip == 0 and level >= lvmin then doPlayerAddPremiumDays(cid, 2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, yesMsg ) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE) db.executeQuery("UPDATE `accounts` SET `absolutevip` = 1 WHERE `id` = "..getPlayerAccountId(cid)..";") elseif level < lvmin then doPlayerSendCancel(cid, lvlMsg ) elseif vip > 0 then doPlayerSendCancel(cid, noMsg) end end No seu banco de dados (PHPMYADMIN) execute a seguinte query:
CREATE TABLE IF NOT EXISTS `accounts` ( `absolutevip` int(15) NOT NULL DEFAULT '0'
Ao atingir level 200 o player poderá usar o comando !testarvip onde irá ganhar 2 dias de VIP para teste.
É óbvio que o player poderá usar apenas uma vez o comando, ao usar ele "seta uma storage na db" onde não poderá usar novamente no mesmo char.
local noMsg = "Voce já recebeu esse bonus safadenho!"
É isso ai galera, creio que vai ajudar muita gente!
Caso haja alguma dúvida poste aqui.
Abraços,
Absolute.
-
trancx123 deu reputação a ViitinG em [actions] Adicionar premium points ao usar X itemBom para quem não sabe como funciona é o seguinte,quando o player usar X item ele vai ganhar X dias de premium points.
• Adicionando o script •
Em "data/lib" crie um arquivo chamado "048-ppoints.lua" e adicione esse script dentro :
function getAccountPoints(cid) local res = db.getResult('select `premium_points` from accounts where name = \''..getPlayerAccount(cid)..'\'') if(res:getID() == -1) then return false end local ret = res:getDataInt("premium_points") res:free() return tonumber(ret) end function doAccountAddPoints(cid, count) return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) + count .."' WHERE `name` ='"..getPlayerAccount(cid).."'") end function doAccountRemovePoints(cid, count) return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) - count .."' WHERE `name` ='"..getPlayerAccount(cid).."'") end Em "data/actions/actions.xml" adicione está tag :
<action itemid="5952" event="script" value="points.lua"/> Em "data/actions/scripts" crie um arquivo lua chamado "points" e cole isso dentro :
local cfg = { amount = 10 } function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 8 then doAccountAddPoints(cid, cfg.amount) doCreatureSay(cid, "Parabéns! Você recebeu 10 Premium Points! ", TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), 28) doRemoveItem(item.uid,1) else doPlayerSendCancel(cid,"Você precisa de level 8 para usar este item.") end return TRUE end • Configurando •
-
trancx123 recebeu reputação de Superkoopa em Como criar item infinito@Superkoopa man, testa e ve se funciona, bota no item q vc quiser essa tag:
<attribute key="breakChance" value="0" />
sei q funciona com itens contáveis com stars, spears...
-
trancx123 recebeu reputação de Lucas Inocencio em A legalidade do OT Server e dos Donates@Lucas Inocencio mano, eu já procurei mt sobre esse assunto quando abri o meu, então vou falar oq sei:
1- oq é de autoria da cip é o cliente como o amigo bem colocou, porém o OTC foi criado criado resolvendo esse problema, já ouvi falar tb q as sprites são de autoria deles pq é dicil pois todo server usa uma boa quantidade de sprites deles mesmo criando suas próprias.
2- em relação aos donates deixe bem explícito q todo dinheiro donatado não tem fins lucrativos e que todo dinheiro arrecadado é reenviestido na evolução do seu servidor, claro q vc sempre vai ter um lucro né? Mas esse lucro pode vir de investidores ou patrocinadores, nunca se sabe né haháhha
-
trancx123 deu reputação a luangop em Ganhar storares e abrir portaEm data/movements/movements.xml Adicione essa linha:
<movevent type="StepIn" actionid="XXXX" event="script" value="storagetp.lua"/>
Onde ta XXXX é o action ID que você vai por em todos os TPS que devem adicionar uma storage.
data/movements/scripts crie um arquivo storagetp.lua e adicione o seguinte:
function onStepIn(cid, item, position, fromPosition) local sto = XXXX local stor = getPlayerStorageValue(cid, sto) if stor < 0 then stor = 0 end if isPlayer(cid) then setPlayerStorageValue(cid, sto, stor + 1) return true end end Onde está XXXX coloque a storage que você vai usar no sistema.
Agora você vai ter que encontrar onde está o script door.lua na sua pasta data/actions/scripts e depois de
function onUse(cid, item, fromPosition, itemEx, toPosition)
Coloque isso:
if item.actionid == XXXX and getPlayerStorageValue(cid, XXXX) == 6 then doorEnter(cid, item, toPosition) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce nao pode entrar.") end item.actionid == XXXX
Aqui coloque o action ID que você vai botar na porta do seu sistema.
getPlayerStorageValue(cid, XXXX)
No XXXX aqui você bota o mesmo valor que botou no local sto = XXXX em storagetp.lua
Espero ter ajudado xD
Qualquer problema avisa, pois fiz na pressa aqui.