Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
Em 17/02/2018 em 18:09, Thenew disse:

Aqui deu este erro 

[18:7:28.037] [Error - CreatureEvent::configureEvent] No valid type for creature event.modalwindow
[18:7:28.039] [Warning - BaseEvents::loadFromXml] Cannot configure an event

Você registrou o evento em login.lua?
Vá em login.lua na pasta data/creaturescript/others e adicione o evento lá:

Spoiler

'potions_lever',

:D rep+ vlw

Link para o post
Compartilhar em outros sites

Olá é possível você colocar para comprar tipo por 1 talkaction, eu falo "comprarpotion e abre a janela modal mais apenas para quem estiver em protectzone.

Link para o post
Compartilhar em outros sites

Pode ser meio frescura mas acho que ficaria melhor para configurar o script se você unificar as 3 variáveis id_potion, price, cap em uma array de itens, onde cada item tem um id/preco/cap. Quando tem poucos fica fácil de ver, mas quando tiver muito item vai ficar complicado saber se ta tudo certinho, mas achei bem legal isso do OTx, estou pensando seriamente em migrar xD mt legal a facilidade de criar janelinhas nele

Editado por marcot (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 2 months later...
Em 04/02/2018 em 01:20, tataboy67 disse:

Opa 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:

  1. Ao clicar na alavanca, abrirá um Modal com todas as opções de compra na tela do jogador !
  2. O jogador poderá selecionar entre a compra de 1x / 50x / 100x itens !
  3. Adicionado venda só para player que possuírem ''Cap'' na bag.
     

* Foto:
unknown.png.912bca2f388ccfeb30c9188dee037954.png

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 :

  Mostrar conteúdo oculto


function onUse(cid, item, fromPosition, target, toPosition, isHotkey)
    cid:registerEvent("potions_lever")

    local title = "Potions"
    local message = "choose your potion you want to buy."

    local window = ModalWindow(1000, title, message)

    window:addButton(101, "Buy 50")
    window:addButton(102, "Buy 100")
    window:addButton(103, "Buy 1")
    window:addButton(104, "Cancel")

    window:addChoice(1, "Mana Potion") -- nome do item que deseja vender
    window:addChoice(2, "Health Potion")
    window:addChoice(3, "Strong Mana Potion")
    window:addChoice(4, "Strong Health Potion")
    window:addChoice(5, "Great Mana Potion")
    window:addChoice(6, "Great Health Potion")
    window:addChoice(7, "Great Spirit Potion")
    window:addChoice(8, "Ultimate Mana Potion")
    window:addChoice(9, "Ultimate Health Potion")
    window:addChoice(10, "Ultimate Spirit Potion")
    window:addChoice(11, "Supreme Health Potion")

    window:setDefaultEscapeButton(104)

    window:sendToPlayer(cid)
    return true
end


Em data/actions adicione a linha:

  Mostrar conteúdo oculto


<action actionid="22100" script="compra_modal.lua"/>

 

Em data/creaturescripts/scripts Crie um arquivo com o nome de potions.lua e coloque isso dentro :

  Mostrar conteúdo oculto


--[[
TABELA DE PREÇOS DAS POTIONS

NOME----------------------/ID----------/PRICE-------/CAP-------

mana potion;              ID: 7620;   Price: 50;     Cap: 2.70; 
health potion;            ID: 7618;   Price: 45;     Cap: 2.70; 
strong mana potion;       ID: 7589;   Price: 80;     Cap: 2.90; 
strong health potion;     ID: 7588;   Price: 100;    Cap: 2.90;  
great mana potion;        ID: 7590;   Price: 120;    Cap: 3.10;   
great health potion;      ID: 7591;   Price: 190;    Cap: 3.10;     
great spirit potion;      ID: 8472;   Price: 190;    Cap: 3.10;     
ultimate mana potion;     ID: 26029;  Price: 350;    Cap: 3.10;     
ultimate health potion;   ID: 8473;   Price: 310;    Cap: 3.10;      
ultimate spirit potion;   ID: 26030;  Price: 350;    Cap: 3.10;     
supreme health potion;    ID: 26031;  Price: 500;    Cap: 3.50;      

Creditos ao script: tataboy67 (TIBIAKING)
]]--

function onModalWindow(cid, modalWindowId, buttonId, choiceId)
	cid:unregisterEvent("potions_lever")

	local id_Potions = {7620, 7618, 7589, 7588, 7590, 7591, 8472, 26029, 8473, 26030, 26031} -- id das potions
	local price = {50, 45, 80, 100, 120, 190, 190, 350, 310, 350, 500} -- price 1x
	local cap = {2.70, 2.70, 2.90, 2.90, 3.10, 3.10, 3.10, 3.10, 3.10, 3.10, 3.50} -- capacity

	if modalWindowId == 1000 then
		if buttonId == 103 then -- botão de compra de 1 item (potion)
			if cid:getMoney() >= price[choiceId] then
				if cid:getFreeCapacity() >= cap[choiceId] then
				cid:removeMoney(price[choiceId])
				cid:addItem(id_Potions[choiceId],1)
				cid:getPosition():sendMagicEffect(15)
				cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You bought a potion.")
				else
				cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "you do not have enough capacity.")
				cid:getPosition():sendMagicEffect(10)
				end
			else
			cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "you do not have enough money.")
			end
		end

		if buttonId == 101 then -- botão de compra de 1 item (potion)
			if cid:getMoney() >= price[choiceId]*50 then
				if cid:getFreeCapacity() >= cap[choiceId]*50 then
				cid:removeMoney(price[choiceId]*50)
				cid:addItem(id_Potions[choiceId],1*50)
				cid:getPosition():sendMagicEffect(15)
				cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You bought 50x potions")
				else
				cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "you do not have enough capacity.")
				cid:getPosition():sendMagicEffect(10)
				end
			else
			cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "you do not have enough money.")
			end
		end

		if buttonId == 102 then -- botão de compra de 1 item (potion)
			if cid:getMoney() >= price[choiceId]*100 then
				if cid:getFreeCapacity() >= cap[choiceId]*100 then
				cid:removeMoney(price[choiceId]*100)
				cid:addItem(id_Potions[choiceId],1*100)
				cid:getPosition():sendMagicEffect(15)
				cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You bought 100x potions")
				else
				cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "you do not have enough capacity.")
				cid:getPosition():sendMagicEffect(10)
				end
			else
			cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "you do not have enough money.")
			end
		end
	end
end


Em data/creaturescripts/creaturescripts.xml adicione a linha:

  Mostrar conteúdo oculto


<event type="modalwindow" name="potions_lever" script="potions.lua"/>


Créditos: 
EU (100% pelo script)
Strutz (Pela ideia do sistema)

Rep+ para me motivar ;D

Obs: Testem o Script antes da aprovação pois estou sem PC agora e a verificação de cap foi feita sem teste !

image.thumb.png.5a952373ca76fa69cecef1f64b1453eb.pngpode me ajudar com esse erro?

Link para o post
Compartilhar em outros sites
17 minutos atrás, ricardok10 disse:

image.thumb.png.5a952373ca76fa69cecef1f64b1453eb.pngpode me ajudar com esse erro?

Você fez alguma alteração no script, linha 3 na pasta action não possui nada escrito ! não devia esta acontecendo isso ...

Link para o post
Compartilhar em outros sites
7 minutos atrás, tataboy67 disse:

Você fez alguma alteração no script, linha 3 na pasta action não possui nada escrito ! não devia esta acontecendo isso ...

fiz tudo certinho ele só aparece o erro quando eu cliko na alavanca porem não abre a janela... será que é a alavanca?

 

achei outro errinho

 

image.thumb.png.dda602de6376ad43f307ba4f1e9fffff.png

Editado por ricardok10 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
8 minutos atrás, ricardok10 disse:

fiz tudo certinho ele só aparece o erro quando eu cliko na alavanca porem não abre a janela... será que é a alavanca?

 

achei outro errinho

 

image.thumb.png.dda602de6376ad43f307ba4f1e9fffff.png

Qual a versão do seu OT? 

Link para o post
Compartilhar em outros sites
19 horas atrás, ricardok10 disse:

10.10

Não devia está acontecendo isso... .-.

Link para o post
Compartilhar em outros sites
6 horas atrás, tataboy67 disse:

Não devia está acontecendo isso... .-.

me ajuda por favor gostei muito do script é show de bola mais infelizmente não esta pegando ....

Link para o post
Compartilhar em outros sites
2 horas atrás, ricardok10 disse:

me ajuda por favor gostei muito do script é show de bola mais infelizmente não esta pegando ....

Aqui está rodando perfeitamente manin rs

eq agr n da pra eu testa

Link para o post
Compartilhar em outros sites
Em 14/05/2018 em 18:36, ricardok10 disse:

fiz tudo certinho ele só aparece o erro quando eu cliko na alavanca porem não abre a janela... será que é a alavanca?

 

achei outro errinho

 

image.thumb.png.dda602de6376ad43f307ba4f1e9fffff.png

UP

 

alguém pra me ajudar?

 

Link para o post
Compartilhar em outros sites
Em 14/05/2018 em 18:36, ricardok10 disse:

fiz tudo certinho ele só aparece o erro quando eu cliko na alavanca porem não abre a janela... será que é a alavanca?

 

achei outro errinho

 

image.thumb.png.dda602de6376ad43f307ba4f1e9fffff.png

Você não tem o modal WIndow instalando em seu sistema...

Link para o post
Compartilhar em outros sites
Link para o post
Compartilhar em outros sites

alguém pra me ajudar?

4 horas atrás, tataboy67 disse:

https://otland.net/threads/tfs-1-2-modal-window-helper-lib.238773/
ta ai, instala isso no seu servidor, e dps testa o sistema

 

não funciona aff :'(

 

image.thumb.png.3f03995f9496384a439d1763b61cf315.png

Link para o post
Compartilhar em outros sites
  • 8 months later...
  • Cat mudou o título para Modal Compra por alavanca 1.2

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Imperius
      O propósito é criar uma nova função em creaturescripts que será acionada toda vez que um novo report (CTRL + R) for aberto.
       
      Eu implementei para enviar uma notificação no grupo do Telegram, contendo os dados do report.
       
      Isso garantirá que os GMs tenham acesso aos reports dos jogadores mesmo quando não estiverem logados, e também evitará que algum report seja perdido caso o jogador saia do servidor.
      A parte do Telegram é apenas um exemplo. Você pode ajustar o script para executar outras ações desejadas.
       
      creatureevent.cpp:
      Dentro deste arquivo, localize a função:
       
      uint32_t CreatureEvent::executeChannelLeave(Player* player, uint16_t channelId, UsersMap usersMap)  
      abaixo dela, adicione:
       
      uint32_t CreatureEvent::executeOpenRuleViolation(Player* player, std::string message) { if (!m_interface->reserveEnv()) { std::clog << "[Error - CreatureEvent::executeOpenRuleViolation] Call stack overflow." << std::endl; return 0; } ScriptEnviroment* env = m_interface->getEnv(); env->setScriptId(m_scriptId, m_interface); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(player)); lua_pushstring(L, message.c_str()); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; }  
      Após, procure por:
       
      std::string CreatureEvent::getScriptEventName() const  
      abaixo de:
       
      case CREATURE_EVENT_CHANNEL_LEAVE: return "onLeaveChannel";  
      adicione:
       
      case CREATURE_EVENT_OPEN_RULE_VIOLATION: return "onOpenRuleViolation";  
      Agora, procure por:
       
      std::string CreatureEvent::getScriptEventParams() const  
      abaixo de:
       
      case CREATURE_EVENT_CHANNEL_LEAVE: return "cid, channel, users";  
      adicione:
       
      case CREATURE_EVENT_OPEN_RULE_VIOLATION: return "cid, message";  
      Procure por:
       
      bool CreatureEvent::configureEvent(xmlNodePtr p)  
      abaixo de:
       
      else if(tmpStr == "leavechannel") m_type = CREATURE_EVENT_CHANNEL_LEAVE;  
      adicione:
       
      else if(tmpStr == "openruleviolation") m_type = CREATURE_EVENT_OPEN_RULE_VIOLATION;  
       
      creatureevent.h:
      Dentro deste arquivo, localize:
       
      enum CreatureEventType_t  
      adicione "CREATURE_EVENT_OPEN_RULE_VIOLATION" como o último item de enum CreatureEventType_t
       
      Exemplo:
       
      enum CreatureEventType_t { // ... CREATURE_EVENT_OPEN_RULE_VIOLATION };  
      Agora, procure por:
       
      uint32_t executeChannelLeave(Player* player, uint16_t channelId, UsersMap usersMap);  
      abaixo dela, adicione:
       
      uint32_t executeOpenRuleViolation(Player* player, std::string message);  
      game.cpp:
      Dentro deste arquivo, localize:
       
      bool Game::playerReportRuleViolation(Player* player, const std::string& text)  
      e substitua por:
       
      bool Game::playerReportRuleViolation(Player* player, const std::string& text) { //Do not allow reports on multiclones worlds since reports are name-based if(g_config.getNumber(ConfigManager::ALLOW_CLONES)) { player->sendTextMessage(MSG_INFO_DESCR, "Rule violation reports are disabled."); return false; } cancelRuleViolation(player); boost::shared_ptr<RuleViolation> rvr(new RuleViolation(player, text, time(NULL))); ruleViolations[player->getID()] = rvr; ChatChannel* channel = g_chat.getChannelById(CHANNEL_RVR); if(!channel) return false; for(UsersMap::const_iterator it = channel->getUsers().begin(); it != channel->getUsers().end(); ++it) it->second->sendToChannel(player, SPEAK_RVR_CHANNEL, text, CHANNEL_RVR, rvr->time); CreatureEventList joinEvents = player->getCreatureEvents(CREATURE_EVENT_OPEN_RULE_VIOLATION); for(CreatureEventList::iterator it = joinEvents.begin(); it != joinEvents.end(); ++it) (*it)->executeOpenRuleViolation(player, text); return true; }  
      Agora é só compilar a source.
       
      depois em "data > creaturescripts > creaturescripts.xml", adicione:
       
      <event type="login" name="loginNotifyRuleViolation" script="notifyRuleViolation.lua"/> <event type="openruleviolation" name="openNotifyRuleViolation" script="notifyRuleViolation.lua"/>  
      em "data > creaturescripts > scripts", crie um arquivo notifyRuleViolation.lua e adicione:
       
      function onOpenRuleViolation(cid, message) local config = { token = "", -- Token do seu BOT no Telegram chatId = "" -- ID do chat do Telegram que será enviado a notificação. } local message = "Player: "..getCreatureName(cid).."\n\nReport:\n"..message.."" message = string.gsub(message, "\n", "%%0A") local url = "https://api.telegram.org/bot"..config.token.."/sendMessage" local data = "chat_id="..config.chatId.."&text="..message.."" local curl = io.popen('curl -d "'..data..'" "'..url..'"'):read("*a") return true end function onLogin(cid) registerCreatureEvent(cid, "openNotifyRuleViolation") return true end  
       
      Demonstração:
      1. Jogador abre um novo report (CTRL + R)

      2. notifyRuleViolation.lua, definido em creaturescripts.xml, é acionado para enviar uma notificação ao grupo do Telegram.
       

       
    • Por Johncore
      Otg Server é um projeto fork do The Forgotten Server 1.3, feito por brasileiros que visam sempre por estabilidade, um código mais clean, temos no projeto várias Datapacks como
      Global 11.0, Global 8.6, Global 8.0, RadBR 11.0, Evolutions 11.0, Yurots Classic 11.0, nossa base também é excelente para rodar projetos que são mapa Baiak ou ATS Custom pelo baixissimo uso de cpu e fix do Decay de itens.

      Todos são bem vindos para colaborar com o projeto... que não visa nenhum lucro financeiro, queremos apenas colaborar com a comunidade OTSERV,
      temos ouvido de muitas pessoas que procuram uma base estável, limpa, esse é o nosso objetivo nesse projeto.
       
      Estamos a procura de programadores/dev/webmaster que queiram ajudar / que tenham tempo e serão recompensados por isso.
       
      Nossa Datapack principal Global 11.00 contem as seguintes features:
      CAST SYSTEM ✅
      AUTOLOOT ✅
      WINTER UPDATE 2023 ✅
      SUMMER UPDATE 2023 ✅
      ADDONS 13.22 UPDATE ✅
      MONTARIAS 13.22 UPDATE ✅
      ITEMS 13.22 UPDATE ✅
      DAILY REWARD ✅
      IMBUEMENTS ✅
      PREY ✅
      EXERCISE WEAPONS ✅
      HIRELINGS NPCS ✅
      ANTI ROLLBACK ✅
       
       
      Github Global 11x:  💾
      https://github.com/otg-br/global-11x
      Clients e outras ferramentas:  💾
      https://github.com/otg-br/tools
      Github Otg Gesior:  💾
      https://github.com/otg-br/gesior
      Github Otg Otclientv8:  💾
      https://github.com/otg-br/otclientv8
      Wiki Otg:  💾
      https://github.com/otg-br/global-11x/wiki
       
       
      Creditos:
      TFS Team Erick Nunes Gui Bruxo Worthdavi LuSKT Leo Pereira Luan Luciano Cjaker Comedinhas Nekiro OTG Colaborators
    • Por sirmagna
      Procuro equipe interessada em desenvolver um projeto de "Tibia HunterxHunter"
      Tenho um projeto pré-montado que estou criando sozinho
      estarei disponibilizando uma previa 
      das minhas sprites 
      preciso de uma equipe com boas ideias e criativa
      para concluir o ot e deixar online para todos desfrutarem dessa obra prima
       
      *******ate o momento o projeto contem sprites do Killua Zoldyck/Hisoka Morow/Gon Freecss/Chrollo Lucilfer/Kurapika
      >>>Previa:



      OTClient_2024-02-09_19-29-45.mp4
    • Por luanluciano93
      Olá galera, em 02/12/23 o projeto Canary atualizou seu release para a versão 3.1.2 e como estou desenvolvendo um servidor usando esta base decidi divulga-la, pois a cada dia ela melhor muito, é um projeto promissor.

      Para quem não conhece, Canary é um projeto desenvolvido no github de um servidor completo na versão 13.21 (atualmente) com todas as features do tibia global. Ele tem duas opções de datapack que seriam o global e um custom.

      Aqui está o link do projeto para quem quiser conhecer melhor: https://github.com/opentibiabr/canary
      Aqui está o link do lançamento do release para a versão 3.1.2 e suas mudanças e melhorias: https://github.com/opentibiabr/canary/compare/v3.1.1...v3.1.2
      Aqui está o link do discord do projeto para dúvidas e etc: https://discord.com/invite/gvTj5sh9Mp
      Aqui está o link de tutoriais e a documentação do projeto: https://docs.opentibiabr.com/home/welcome

      Algumas das features existentes no projeto:

      BOOSTED CREATURE:

       
      EVENT SCHEDULE:

       
      CYCLOPEDIA:

       
      CHARMS:

       
      DAILY REWARD: 

       
      PREY:

       
      IMBUEMENTS:

       
      MARKET:

       
      STORE:

       
      CUSTOM CHARACTERS:


       
      DENTRE MUITOS OUTROS!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo