Tudo que Cat postou
-
Gostaria do script Gold to platinum, platinum to crystal
Vá em data/actions/scripts e cria um arquivo.lua nomeado changegold.lua function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == ITEM_GOLD_COIN and item.type == ITEMCOUNT_MAX then doChangeTypeItem(item.uid, item.type - item.type) doPlayerAddItem(cid, ITEM_PLATINUM_COIN, 1) doSendAnimatedText(fromPosition, "$$$", TEXTCOLOR_PLATINUMBLUE) elseif item.itemid == ITEM_PLATINUM_COIN and item.type == ITEMCOUNT_MAX then doChangeTypeItem(item.uid, item.type - item.type) doPlayerAddItem(cid, ITEM_CRYSTAL_COIN, 1) doSendAnimatedText(fromPosition, "$$$", TEXTCOLOR_TEAL) elseif item.itemid == ITEM_PLATINUM_COIN and item.type < ITEMCOUNT_MAX then doChangeTypeItem(item.uid, item.type - 1) doPlayerAddItem(cid, ITEM_GOLD_COIN, ITEMCOUNT_MAX) doSendAnimatedText(fromPosition, "$$$", TEXTCOLOR_YELLOW) elseif item.itemid == ITEM_CRYSTAL_COIN then doChangeTypeItem(item.uid, item.type - 1) doPlayerAddItem(cid, ITEM_PLATINUM_COIN, ITEMCOUNT_MAX) doSendAnimatedText(fromPosition, "$$$", TEXTCOLOR_PLATINUMBLUE) else return FALSE end return TRUE end Agora vá em data/actions/actions.xml e adicione essa linha antes de </actions> <!-- Gold / platinum / ccrystal --> <action itemid="2148" script="changegold.lua"/> <action itemid="2152" script="changegold.lua"/> <action itemid="2160" script="changegold.lua"/> Se quiser adicionar outra moeda, pode usar esse código que eu uso: Você terá que trocar os X pelos ids das moedas, exemplo: X1 - ID DA MOEDA 1, GOLD COIN... X2 - ID DA MOEDA 2, PLATINUM COIN... X3 ... X4 ... X5 ... Mas se for criar uma nova moeda me avise, é preciso fazer outra configuração em items.xml, além disso você precisa adicionar os ids das moedas novas que colocar aqui no actions.xml, exatamente como os três IDS que eu passei pra você ali em cima. local coins = { [X1] = {to = X2}, [X2] = {to = X3, from = X1}, [X3] = {to = X4, from = X2}, [X4] = {to = X5, from = X3}, [X5] = {from = X4}, } function onUse(cid, item, fromPosition, itemEx, toPosition) if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then return false end local coin = coins[item.itemid] if(not coin) then return false end if(coin.to ~= nil and item.type == ITEMCOUNT_MAX) then doChangeTypeItem(item.uid, item.type - item.type) doPlayerAddItem(cid, coin.to, 1) elseif(coin.from ~= nil) then doChangeTypeItem(item.uid, item.type - 1) doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX) end return true end
-
Comprar e vender Bases OTserve é proibido ??
Mas agora vamos falar sobre o sistema. O Tibia King permite que você apareça em uma plataforma em destaque no menu classificados, oferecendo seus "serviços". Depois que você consegue o contato do cliente interessado, fora dó fórum você vende o que quiser meu amigo. Quase todo mundo ganha, Inclusive o site que diz que apoia uma coisa mas faz outra. Ou seja, o Tibia King diz que você não pode vender MAPA nem DATAPACK. Mas permite você aparecer em destaque anunciando que faz serviços de DATAPACK e MAPA. ÓBVIO que não é a mesma coisa que vender um produto, mas convenhamos que é a mesma coisa. As pessoas estão parando de desenvolver coisas, pra anunciar seus "SERVIÇOS", pra dai então desenvolver coisas, só que pra vender.
-
Comprar e vender Bases OTserve é proibido ??
Essas são as regras atuais: ... Somente serão permitidas vendas de conteúdos criados pelo próprio autor, não sendo permitidas a venda de data-packs, mapas completos (ou do próprio Tibia), websites, sources ou qualquer outro conteúdo vinculado a terceiros; ...
-
Amora's Show-Off
Ta ficando fera, os detalhes estão bons, não tem do que reclamar com exceção do formato caracol e o topo da montanha. Você precisa explorar mais a paleta e conhecer as possibilidades de dealhes que pode utilizar, da uma estudada em raw - others, raw - exterior, raw - nature, raw - architecture
-
[PEDIDO] Referente ao tfs 0.4 (rev3777) do Fir3element
é limita sim, testei com otclient e funcionou de boas com excessão da hp em %. Acho que o que mais buga é o cap, hp e mp, ao por acima do level máximo. eu joguei um OT chamado rozinx, lá era possível pegar 10kk com life 500kk+, usando client normal. Tem ideia de como o admin pode ter feito essa alteração cara? Mas não quero desviar o assunto do tópico, o @.Foxxy tentou me ajudar também mas eu já me conformei que não vai ser tão fácil
-
Item bate em area 3x3
3 = é o monstro que será atacado, significa que ali é a parte central dos efeitos 2 = se eu não me engano é o player, pra spells tipo exevo mas san 1 = area atingida pelo effect 0 = area ignorada
-
Item bate em area 3x3
@Sttorm Ele quer que a pedra ative o atributo 3x3 ao usá-la em qualquer sword, club, axe, arrow, bolt, wand ou rod. Ou seja qualquer item de ataque que você de "use with" ativará o atributo x3, que pode ser removido usando a pedra na weapon novamente. local area = createCombatArea( { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } ) Eu sinceramente acho mais prático e mais legal fazer por tempo de duração, por que não faria sentido você gastar uma pedra energizada pra tornar uma arma mais mágica, e depois usar mais uma pedra energizada pra tornar uma arma menos mágica. O que aconteceria com essa pedra então? Ela ficaria energizada em dobro? aohriueeasdouhaiasie (nem sei que pedra vai ser usada) Bom foi isso que eu entendi. Eu não sei mais como ajudar, está nas mãos da tempestade. Boa sorte com o sistema @Zzyzx
-
[PEDIDO] Referente ao tfs 0.4 (rev3777) do Fir3element
@Fir3element Poderia liberar essa versão com exp/hp/mp/cap/skills expandidos pra galera né? A não ser que isso abra um leque de outros bugs, eu acho que daria muito mais recurso pra surgirem novos tipos de ots. É só uma sugestão, nem sei se é viável, eu to tentando fazer no meu projeto e ta sendo complicado, the bug atrás de thebug. Acredito que o client do Tibia tenha algum limite ou esquema pra evitar player abuse
-
Dúvida de Mapa
Comprar um caderno de desenho e paciência. Muita paciência e tempo. Eu levei 1 ano para fazer Amazonia, um continente enorme que abrange dezenas de temáticas de nature em um mesmo espaço (do tamanho de uma edron por exemplo) Acho que você deveria focar em construir uma cidade RPG simples e uma area ao redor dela consideravelmente pequena, e a partir disso ir expandindo. Por que é muito fácil se perdeer em um mapa grande, ou desanimar completamente, ou não saber o que fazer. E acredite, todos passamos por isso...
-
Item bate em area 3x3
O sttorm resolveu. Meu método não precisaria baixar client, uma vez que a sprite duplicada ja existe no utilizado pelos players. O que mudaria seria um id/item novo cadastrado no items.xml
-
Item bate em area 3x3
Da pra copiar o sistema de encantamento de armas do tibia. Talvez baixar um items.otb editor e duplicar as sprites das armas, dai quando usa a pedra nelas se transformam em outro id (mesma sprite) por um tempo configurável, depois volta pro id original. Esse id duplicado seria a arma em 3x3. (outro script) exemplo: Por tempo de duração actions/scripts/triweapon Se volta ao normal usando a pedra nela: actions/scripts/triweaponback Tempo de duração: creaturescripts/login.lua items/items.xml Dano 3x3 weapons/scripts/triweapon01 (com critical) Não é bem a solução pro seu problema, até por que essa weapon com critical tem um dano diferente. Mas ta ai uma opção caso você não consiga o código 100% do sistema.
-
[Pedido] Premiaçao por tempo online
Esse código vai dar 1 cc após 1 hora online e 2 cc após duas horas online. É só configurar ali no início: creaturescripts/scripts/onreward -- made by static -- local items = { [1] = { itemid = 2160, count = 1, }, [2] = { itemid = 2160, count = 2 } } local events = {} local function addReward(cid, rewardId) if not isPlayer(cid) then return end local item = items[rewardId or #items] doPlayerAddItem(cid, item.itemid, item.count) events[cid] = addEvent(addReward, 60 * 60 * 1000, cid, rewardId + 1) end function onLogin(cid) events[cid] = addEvent(addReward, 60 * 60 * 1000, cid, 1) return true end function onLogout(cid) if events[cid] then stopEvent(events[cid]) events[cid] = nil end return true end creaturescripts/scripts/login.lua registerCreatureEvent(cid, "itemLogin") registerCreatureEvent(cid, "itemLogout") creaturescripts/creaturescripts.xml <event type="login" name="itemLogin" event="script" value="onreward.lua"/> <event type="logout" name="itemLogout" event="script" value="onreward.lua"/>
-
[PEDIDO] Referente ao tfs 0.4 (rev3777) do Fir3element
Reforço o tópico, também estou precisando dessa atualização. Agradecerei muito se alguém tiver a boa vontade!
-
Dúvida de Mapa
Você precisa suavizar a transição para então focar nos detalhes. E só por que tem um relevo menor no meio, o que indica sujeira, pisoteamento ou entropia não significa que não deva ter os mesmos detalhes no restante do cenário. Dicas de aperfeiçoamento de detalhes: Grass tufts 1 e 2 (os menores) são excepcionais para usar na transição, podendo ter deles em todos os lugares, porém em maior quantidade na grama em menor nos demais locais. Debris é o detalhe que mais aplica acabamento em um mapa, se você souber usar moderadamente nem é preciso exagerar em outros detalhes. Deve ter pelo menos 1% de natureza viva na natureza morta, e vice-versa. Dica de aperfeiçoamento por seleção de ground id: Coloque ground de forma manual em locais onde quer que os detalhes sejam exibidos de forma mais exótica, veja a diferença:
-
Dúvida de Mapa
- Nolis Show Off
- Como criar bordas bonitas
-
(Resolvido)Offset do remere map editor
Disponha. Se a dúvida foi resolvida clique no botão definir como melhor resposta, isso ajudará outros membros a encontrar a resolução mais facilmente. O botão fica à esquerda do nome:
-
Erro no Remeres - ME AJUDA!
eu nao sei se corrompeu mesmo ou é conflito de itens.otb tenta por o itens.otb da outra versão na pasta da versão anterior, so pra ver o que acontece mas esse tipo de erro é fodido eu ja perdi mapas que corromperam por que a luz caiu, etc..
-
Erro no Remeres - ME AJUDA!
parece que corrompeu o arquivo não consegue nem por import?
-
Você joga Otserv? Do you Play Otserv?
Cada sistema desses tem mil possibilidades de fazê-lo de forma diferenciada, você se refere ao fato de estarmos limitados ao TFS? Eu acho que a sua pergunta pode ser respondida, existem ots completos. Mas reformulando ela, existem ots completos, diferenciados e open source disponíveis para a comunidade?
-
Amora's Show-Off
Deu um diferencial, mas você não precisa prender as bordas de grass morta às de grass comum, a grass comum pode e deve entrar em contato com a de terra também. Trabalhe mais as bordas, usando as tecnicas de sobreposição que eu mostrei nas imagens. Também pode por mais grass tufts (nao muitos) e areia marrom na terra
-
Amora's Show-Off
+ Adicione mais desses pelo mapa, longe um do outro, pode usar outros ids de arvores ++ Esse id ajuda na hora de preencher espaços com nature, e tem mais variações (pontuda, com frutinhas, etc) x Remova ou coloque em outro lugar -> Junte esse tipo de matinho com os outros em ++ e adicione mais dele rosa estes espaços podem ser preenchidos com outro ground, seja de pedra com a grana cobrindo, de terra ou grama morta -
-
(Resolvido)Offset do remere map editor
Boa tarde @alls -- A ferramenta de import do Remere's Map Editor (file -> import -> import map) vai posicionar as partes do mapa na posição em que elas estavam + os valores X e Y de offset. Se você importar um mapa que está na posição x1000, y2000 e atribuir em offset os valores x3000,y3000 - o mapa será adicionado em x4000,y5000. -- Você também pode usar valores negativos (x-3000,y-3000) em Offset para mudar a direção de X e Y. -- Para verificar/alterar as dimensões do seu mapa use Map - Properties (ctrl + p)
-
Baú/Chest shop - Comprar mesmo item com 2 moedas diferentes
Não tinha percebido, obrigado por avisar. Corrigido: local coin = 2148 -- id da primeira moeda local coin2 = 2160 -- id da segunda moeda local eff = 28 -- efeito mágico ao comprar o item local lever = { [7017] = {50, 50, 10522} -- [actionid] = {quantidade da moeda 1, quantidade da moeda 2, id do item a comprar} } function onUse(cid,item,fromPosition,itemEx,toPosition) if getPlayerItemCount(cid, coin) >= (lever[item.actionid][1]) and getPlayerItemCount(cid, coin2) >= (lever[item.actionid][2]) then doPlayerRemoveItem(cid,coin,lever[item.actionid][1]) doPlayerRemoveItem(cid,coin2,lever[item.actionid][2]) doPlayerAddItem(cid,lever[item.actionid][3], isItemStackable(lever[item.actionid][3]) and 1) doPlayerSendTextMessage(cid,22,"Voce comprou " .. getItemNameById(lever[item.actionid][3]) .." por "..lever[item.actionid][1].." " ..getItemNameById(coin).. " e "..lever[item.actionid][2].." " ..getItemNameById(coin2)) doSendMagicEffect(getCreaturePosition(cid), config.eff) else return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sao necessarios "..lever[item.actionid][1].." " ..getItemNameById(coin).. " e "..lever[item.actionid][2].." " ..getItemNameById(coin2).. " para realizar esta compra.") end end