Ir para conteúdo
  • Cadastre-se

(Resolvido)[REQUEST] !Mount Doll Script Full


Ir para solução Resolvido por BoneFox,

Posts Recomendados

meu mountdoll.lua

 

Spoiler

local mounts = 
{ 
	--["mount"] = {id = x},
	["widow queen"] = {id = 1}

}

function onSay(cid, words, param)

	local player, word = Player(cid), mounts[string.lower(param)]
	local mountdoll_id = 13030 -- id do mount doll
		
	if (player:getItemCount(mountdoll_id) > 0) then
		if (param ~= "" and word) then
			if(word and not player:hasMount(word.id)) then  
				player:removeItem(mountdoll_id, 1)
				player:sendTextMessage(MESSAGE_INFO_DESCR, "Sua mount foi adicionada!")
				player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS)
				player:addMount(word.id)
			else
				player:sendCancelMessage("Voce ja tem esta mount.")
			end
		else
			player:sendCancelMessage("Digite novamente, algo está errado!")
		end
	else
		player:sendCancelMessage("Voce não tem um mount doll!")
	end

	return true
end 

 

 

 

Minha mounts.xml

 

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<mounts>
	<mount id="1" clientid="368" name="Widow Queen" speed="20" premium="no" />
	<mount id="2" clientid="369" name="Racing Bird" speed="20" premium="no" />
	<mount id="3" clientid="370" name="War Bear" speed="20" premium="no" />
	<mount id="4" clientid="371" name="Black Sheep" speed="20" premium="no" />
	<mount id="5" clientid="372" name="Midnight Panther" speed="20" premium="no" />
	<mount id="6" clientid="373" name="Draptor" speed="20" premium="no" />
	<mount id="7" clientid="374" name="Titanica" speed="20" premium="no" />
	<mount id="8" clientid="375" name="Tin Lizzard" speed="20" premium="no" />
	<mount id="9" clientid="376" name="Blazebringer" speed="20" premium="no" />
	<mount id="10" clientid="377" name="Rapid Boar" speed="20" premium="no" />
	<mount id="11" clientid="378" name="Stampor" speed="20" premium="no" />
	<mount id="12" clientid="379" name="Undead Cavebear" speed="20" premium="no" />
	<mount id="13" clientid="387" name="Donkey" speed="20" premium="no" />
	<mount id="14" clientid="388" name="Tiger Slug" speed="20" premium="no" />
	<mount id="15" clientid="389" name="Uniwheel" speed="20" premium="no" />
	<mount id="16" clientid="390" name="Crystal Wolf" speed="20" premium="no" />
	<mount id="17" clientid="392" name="Brown War Horse" speed="20" premium="no" />
	<mount id="18" clientid="401" name="Kingly Deer" speed="20" premium="no" />
	<mount id="19" clientid="402" name="Tamed Panda" speed="20" premium="no" />
	<mount id="20" clientid="405" name="Dromedary" speed="20" premium="no" />
	<mount id="21" clientid="406" name="King Scorpion" speed="20" premium="no" />
	<mount id="22" clientid="421" name="Rented Horse" speed="20" premium="no" />
	<mount id="23" clientid="426" name="Armoured War Horse" speed="20" premium="no" />
	<mount id="24" clientid="427" name="Shadow Draptor" speed="20" premium="no" />
	<mount id="25" clientid="437" name="Rented Horse" speed="20" premium="no" />
	<mount id="26" clientid="438" name="Rented Horse" speed="20" premium="no" />
	<mount id="27" clientid="447" name="Ladybug" speed="20" premium="no" />
	<mount id="28" clientid="450" name="Manta" speed="20" premium="no" />
	<mount id="29" clientid="502" name="Ironblight" speed="20" premium="no" />
	<mount id="30" clientid="503" name="Magma Crawler" speed="20" premium="no" />
	<mount id="31" clientid="506" name="Dragonling" speed="20" premium="no" />
	<mount id="32" clientid="515" name="Gnarlhound" speed="20" premium="no" />
	<mount id="33" clientid="521" name="Crimson Ray" speed="20" premium="no" />
	<mount id="34" clientid="522" name="Steelbeak" speed="20" premium="no" />
	<mount id="35" clientid="526" name="Water Buffalo" speed="20" premium="no" />
	<mount id="36" clientid="546" name="Armoured Scorpion" speed="20" premium="no" />
	<mount id="37" clientid="547" name="Armoured Dragonling" speed="20" premium="no" />
	<mount id="38" clientid="548" name="Armoured Cavebear" speed="20" premium="no" />
	<mount id="39" clientid="559" name="The Hellgrip" speed="20" premium="no" />
	<mount id="40" clientid="571" name="Lion" speed="20" premium="no" />
	<mount id="41" clientid="572" name="Golden Lion" speed="20" premium="no" />
	<mount id="42" clientid="580" name="Shock Head" speed="20" premium="no" />
	<mount id="43" clientid="606" name="Walker" speed="20" premium="no" />
	<mount id="44" clientid="621" name="Azudocus" speed="20" premium="no" />
	<mount id="45" clientid="622" name="Carpacosaurus" speed="20" premium="no" />
	<mount id="46" clientid="624" name="Death Crawler" speed="20" premium="no" />
	<mount id="47" clientid="626" name="Flamesteed" speed="20" premium="no" />
	<mount id="48" clientid="627" name="Jade Lion" speed="20" premium="no" />
	<mount id="49" clientid="628" name="Jade Pincer" speed="20" premium="no" />
	<mount id="50" clientid="629" name="Nethersteed" speed="20" premium="no" />
	<mount id="51" clientid="630" name="Tempest" speed="20" premium="no" />
	<mount id="52" clientid="631" name="Winter King" speed="20" premium="no" />
	<mount id="53" clientid="644" name="Doombringer" speed="20" premium="no" />
	<mount id="54" clientid="647" name="Woodland Prince" speed="20" premium="no" />
	<mount id="55" clientid="648" name="Hailtorm Fury" speed="20" premium="no" />
	<mount id="56" clientid="649" name="Siegebreaker" speed="20" premium="no" />
	<mount id="57" clientid="650" name="Poisonbane" speed="20" premium="no" />
	<mount id="58" clientid="651" name="Blackpelt" speed="20" premium="no" />
	<mount id="59" clientid="669" name="Golden Dragonfly" speed="20" premium="no" />
	<mount id="60" clientid="670" name="Steel Bee" speed="20" premium="no" />
	<mount id="61" clientid="671" name="Copper Fly" speed="20" premium="no" />
	<mount id="62" clientid="672" name="Tundra Rambler" speed="20" premium="no" />
	<mount id="63" clientid="673" name="Highland Yak" speed="20" premium="no" />
	<mount id="64" clientid="674" name="Glacier Vagabond" speed="20" premium="no" />
	<mount id="65" clientid="682" name="Glooth Glider" speed="20" premium="no" />
	<mount id="66" clientid="685" name="Shadow Hart" speed="20" premium="no" />
	<mount id="67" clientid="686" name="Black Stag" speed="20" premium="no" />
	<mount id="68" clientid="687" name="Emperor Deer" speed="20" premium="no" />
	<mount id="69" clientid="688" name="Flying Divan" speed="20" premium="no" />
	<mount id="70" clientid="689" name="Magic Carpet" speed="20" premium="no" />
	<mount id="71" clientid="690" name="Floating Kashmir" speed="20" premium="no" />
	<mount id="72" clientid="691" name="Ringtail Waccoon" speed="20" premium="no" />
	<mount id="73" clientid="692" name="Night Waccoon" speed="20" premium="no" />
	<mount id="74" clientid="693" name="Emerald Waccoon" speed="20" premium="no" />
	<mount id="75" clientid="726" name="Flitterkatzen" speed="20" premium="no" />
	<mount id="76" clientid="727" name="Venompaw" speed="20" premium="no" />
	<mount id="77" clientid="728" name="Batcat" speed="20" premium="no" />
	<mount id="78" clientid="734" name="Sea Devil" speed="20" premium="no" />
	<mount id="79" clientid="735" name="Coralripper" speed="20" premium="no" />
	<mount id="80" clientid="736" name="Plumfish" speed="20" premium="no" />
	<mount id="81" clientid="738" name="Gorongra" speed="20" premium="no" />
	<mount id="82" clientid="739" name="Noctungra" speed="20" premium="no" />
	<mount id="83" clientid="740" name="Silverneck" speed="20" premium="no" />
	<mount id="84" clientid="761" name="Nova1" speed="20" premium="no" />
    <mount id="85" clientid="762" name="Nova2" speed="20" premium="no" />
    <mount id="86" clientid="763" name="Nova3" speed="20" premium="no" />	
</mounts>

 

 

Alguém pode inserir essa mout lista no script mountdoll.lua? Não sei a diferença das cores

 

Obrigado. REP+

tk-melhor.png

Link para o post
Compartilhar em outros sites
  • Solução
Spoiler

local mounts = 
{ 
	["racing bird"] = {id = 2},
	["war bear"] = {id = 3},
	["black sheep"] = {id = 4},
	["midnight panther"] = {id = 5},
	["draptor"] = {id = 6},
	["titanica"] = {id = 7},
	["tin lizzard"] = {id = 8},
	["blazebringer"] = {id = 9},
	["rapid boar"] = {id = 10},
	["stampor"] = {id = 11},
	["undead cavebear"] = {id = 12},
	["donkey"] = {id = 13},
	["tiger slug"] = {id = 14},
	["uniwheel"] = {id = 15},
	["crystal wolf"] = {id = 16},
	["brown war horse"] = {id = 17},
	["kingly deer"] = {id = 18},
	["tamed panda"] = {id = 19},
	["dromedary"] = {id = 20},
	["scorpion king"] = {id = 21},
	["rented horse"] = {id = 22},
	["armoured war horse"] = {id = 23},
	["shadow draptor"] = {id = 24},
	["rented horse"] = {id = 26},
	["ladybug"] = {id = 27},
	["manta"] = {id = 28},
	["ironblight"] = {id = 29},
	["magma crawler"] = {id = 30},
	["dragonling"] = {id = 31},
	["gnarlhound"] = {id = 32},
	["crimson ray"] = {id = 33},
	["steelbeak"] = {id = 34},
	["water buffalo"] = {id = 35},
	["armoured scorpion"] = {id = 36},
	["armoured dragonling"] = {id = 37},
	["armoured cavebear"] = {id = 38},
	["the hellgrip"] = {id = 39},
	["lion"] = {id = 40},
	["golden lion"] = {id = 41},
	["shock head"] = {id = 42},
	["walker"] = {id = 43},
	["azudocus"] = {id = 44},
	["carpacosaurus"] = {id = 45},
	["death crawler"] = {id = 46},
	["flamesteed"] = {id = 47},
	["jade lion"] = {id = 48},
	["jade pincer"] = {id = 49},
	["nethersteed"] = {id = 50},
	["tempest"] = {id = 51},
	["winter king"] = {id = 52},
	["doombringer"] = {id = 53},
	["woodland prince"] = {id = 54},
	["hailtorm fury"] = {id = 55},
	["siegebreaker"] = {id = 56},
	["poisonbane"] = {id = 57},
	["blackpelt"] = {id = 58},
	["golden dragonfly"] = {id = 59},
	["steel bee"] = {id = 60},
	["copper fly"] = {id = 61},
	["tundra rambler"] = {id = 62},
	["highland yak"] = {id = 63},
	["glacier vagabond"] = {id = 64},
	["glooth glider"] = {id = 65},
	["shadow hart"] = {id = 66},
	["black stag"] = {id = 67},
	["emperor deer"] = {id = 68},
	["flying divan"] = {id = 69},
	["magic carpet"] = {id = 70},
	["floating kashmir"] = {id = 71},
	["ringtail waccoon"] = {id = 72},
	["night waccoon"] = {id = 73},
	["emerald waccoon"] = {id = 74},
	["flitterkatzen"] = {id = 75},
	["venompaw"] = {id = 76},
	["batcat"] = {id = 77,
	["sea devil"] = {id = 78},
	["coralripper"] = {id = 79},
	["plumfish"] = {id = 80},
	["gorongra"] = {id = 81},
	["noctungra"] = {id = 82},
	["silverneck"] = {id = 83},
	["nova1"] = {id = 84},
	["nova2"] = {id = 85},
	["nova3"] = {id = 86},
	["widow queen"] = {id = 1},
}
}

function onSay(cid, words, param)

	local player, word = Player(cid), mounts[string.lower(param)]
	local mountdoll_id = 13030 -- id do mount doll
		
	if (player:getItemCount(mountdoll_id) > 0) then
		if (param ~= "" and word) then
			if(word and not player:hasMount(word.id)) then  
				player:removeItem(mountdoll_id, 1)
				player:sendTextMessage(MESSAGE_INFO_DESCR, "Sua mount foi adicionada!")
				player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS)
				player:addMount(word.id)
			else
				player:sendCancelMessage("Voce ja tem esta mount.")
			end
		else
			player:sendCancelMessage("Digite novamente, algo está errado!")
		end
	else
		player:sendCancelMessage("Voce não tem um mount doll!")
	end

	return true
end 

 

 

-- Talkactions.xml -- 

<talkaction words="!mount" script="mountdoll.lua"/>

- Rented Horse

tk-melhor.png

Link para o post
Compartilhar em outros sites

Vou te explicar a diferenca das cores..

 

@Larissa Azhaurn na esquerda - @vankk na direita..

 

 

nomeDasCores.jpg

 

 

O seu script seria o nome da montaria e o ID que está configurada no mounts.xml

<mount id="8" clientid="375" name="Tin Lizzard" speed="20" premium="no" />

Tin Lizzard ID 8.. então..

["Tin Lizzard"] = {id = 8}

Só não esquece que o script precisa ter VIRGULAS "," e quando for a ultima linha das montarias, não precisa, eg:

["widow queen"] = {id = 1},
["Racing Bird"] = {id = 2},
["War Bear"] = {id = 3},
["Black Sheep"] = {id = 4}

 

discord.pngDiscord: vankk #7765

Precisando de ajuda? Entre em contato comigo via Discord.

 

Muitos vêm seus muitos dias de glória, mas poucos vêm seus muitos dias de luta.

Link para o post
Compartilhar em outros sites

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 Erimyth
      Fala galerinha eu estava e um amigo meu me pediu um script de health e mana por talkaction por MSN, fiz ele e resolvi postar-lo aqui no TK para a galera usar-lo.

      Vá em data > talkactions > talkactions.xml e adicione a seguinte tag:

      <talkaction words="!buyhealth;!buymana" event="script" value="buylife.lua">
      Agora vá até a pasta scripts dentro de talkactions, crie um arquivo chamado buylife.lua com isto dentro:
      -- [( Script created by Matheus for TibiaKing.com )] -- function onSay(cid, words, param) local health = 1000 -- Vida que será adicionada ao player após ele usar o comando! local mana = 1000 -- Mana que será adicionada ao player após ele usar o comando! local cost = 10000 -- Preço para você comprar mana ou health! if (words == "!buymana") then if (doPlayerRemoveMoney(cid, cost) == TRUE) then doCreatureAddMana(cid, mana) doSendMagicEffect(getCreaturePosition(cid), 12) else doPlayerSendCancel(cid, "Sorry, you need "..cost.." gold coins to buy mana.") return TRUE end elseif (words == "!buyhealth") then if (doPlayerRemoveMoney(cid, cost) == TRUE) then doCreatureAddHealth(cid, health) doSendMagicEffect(getCreaturePosition(cid), 12) else doPlayerSendCancel(cid, "Sorry, you need "..cost.." gold coins to buy mana.") end return TRUE end end
      Prontinho, espero que gostem, é um script bem simples mas pode ser útil para alguns.  
        Você gostou deste conteúdo!? Este conteúdo te ajudou!? Isso será realmente útil pra você!? Então, se possível, faça uma doação (de qualquer valor) que estará me ajudando também!  
    • Por Leu
      Usando o script do Cjaker como base (e a descrição do tópico dele, na cara dura mesmo!), otimizei as operações no banco de dados (tava muito zuado) e adicionei um range de accounts protegidas pra evitar apagar os gms/samples/contas de spoofers do otservlist/etc... ;
      Salve galera, mais um script para quem está precisando dar aquela limpada no banco de dados e otimizar o Servidor.
       
      -- Especificações --
      TFS 1.1+ Objetivo é limpar as contas inativas/vazias e os players Inativos assim removendo os usuários que estão inativos e ocupando espaço no banco de dados.
        -- Instruções --
       
      Em globalevents.xml insira essa linha <globalevent type="startup" name="CleanDatabases" script="cleandatabase.lua" />  
      Crie um script chamado cleandatabase.lua na pasta globalevents/scripts e cole isso dentro dele. --- --- Generated by EmmyLua(https://github.com/EmmyLua) --- Created by leu. --- DateTime: 04/04/18 18:42 --- --[[ Clean Database by Cjaker | Refactor and SQL Optimizations by Leu ]]-- local inactiveMonths = 1 --> Quantos meses o player ficou inativo local createdMonths = 1 --> Quantos meses a conta foi criada e não possui character criado. local protectedAccIdEnd = 20 --ignorar accounts com id <= 20 local function clearInactivePlayers() local inactiveTimestamp = os.time() - (86400 * (inactiveMonths*30)) local totalClear=0 local fromClause = "`players` WHERE `account_id` > ".. protectedAccIdEnd .." AND lastlogin <= "..inactiveTimestamp local resultId = db.storeQuery("SELECT COUNT(*) as num_inativos FROM "..fromClause) if resultId ~= false then totalClear = result.getDataInt(resultId, 'num_inativos') result.free(resultId) if totalClear > 0 then db.query("DELETE FROM "..fromClause) end end return totalClear end local function clearEmptyAccounts() local totalClear = 0 local createdTimestamp = os.time() - (86400 * (createdMonths*30)) local fromClause = "`accounts` ACCS WHERE `id` > ".. protectedAccIdEnd .." AND `creation` <= "..createdTimestamp.." AND (SELECT COUNT(*) from `players` WHERE `account_id` = ACCS.`id`) > 0" local resultId = db.storeQuery("SELECT COUNT(*) as num_inativas FROM "..fromClause) if resultId~= false then totalClear = result.getDataInt(resultId,'num_inativas') result.free(resultId) if totalClear > 0 then db.query("DELETE ACCS FROM "..fromClause) end end return totalClear end function onStartup() print('>> ' ..clearInactivePlayers().. " players inativos deletados.") print('>> ' ..clearEmptyAccounts().. " contas vazias deletadas.") end  
       
      é isso senhores, paganois, flw!
       
      EDIT 24-04-2018: correção DELETE accs QUERY
       
    • Por .Smile
      Olá a todos, atualmente estou aprendendo programação e desenvolvendo um Servidor, uma das coisas chatas a se fazer era ficar alternando entre um Personagem PLAYER e outro GOD para testar algumas coisas, com esses 2 scripts eu resolvi esse problema.

      É um script simples que eu pretendo futuramente melhorá-lo.

      What does the command do?
      /adm - Transforma seu personagem em GOD e kika ele
      /player - Transforma seu personagem em PLAYER e kika ele
       
      LEMBRANDO QUE: Não é qualquer que consegue usar esse comando, você precisa ter dado a sua conta o acesso de god, assim podendo ter esse comando num Servidor Online com outros jogadores sem que os mesmos possam usar.

      \data\talkactions
      talkactions.xml
      Code: <talkaction words="/player" script="player.lua" /> <talkaction words="/adm" script="adm.lua" /> \data\talkactions\scripts 
      adm.lua
      Code: function onSay(player, words, param) if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end local position = player:getPosition() player:setGroup(Group(3)) position:sendMagicEffect(14) player:remove() return false end \data\talkactions\scripts
      player.lua
      function onSay(player, words, param) if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end local position = player:getPosition() player:setGroup(Group(1)) position:sendMagicEffect(13) player:remove() return false end  
    • Por Yan Liima
      #Introdução
      Bom hoje estarei trazendo aqui o sistema de Ping feito pelo Mock, com uma pequena adaptação feita por mim para funcionar em TFS 0.4(talvez podendo funcionar em outras)
      Pois o que ele disponibilizou foi apenas para TFS 0.3.6 e nem foi muito utilizado pela comunidade. Muitos servidores daqui para download tem script no talk mas a lib está totalmente errada e não tem o code nas sources.
      Esse sistema tem varias utilizades, podendo usar o comando !ping para verificar seu ms ou até mesmo por para kikar jogadores com ms muito alto...
      Se você não sabe o cliente já tem um sistema de ping, e getOtsystime é como os.time () + os.clock (), você tem ano, mês, dia, hora, minutos, segundos, milisegundos...
      Enfim chega de enrolação e vamos lá!
       
      Code para TFS 0.4 e OTX:
       
      Code para TFS 0.3.6
       
      LIB:
       
       
      Prontinho, agora seu servidor está pronto para utilizar as funções de Ping. Seja criativo!
      Ahh você é daqueles que quer tudo na mão né? Aqui vai um talkactions para ver o ping.
       
      Em talkactions/scripts crie um arquivo chamado playerping.lua, cole isto dentro:
      -- Script by Yan Liima(Night for tibiaking.com) function onSay(cid, words, param, channel) local ms = ping.CheckPing(cid) doPlayerSendTextMessage(cid,22,"Ping aproximado --> ["..ms.."].") return true end Em talkactions.xml
      <talkaction words="!ping" event="script" value="playerping.lua"/>  
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo