Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá pessoal do TibiaKing, Hoje trago para vocês uma Script de Reset System que encontrei, mas que tem como diferencial que ao Resetar o char não desloga.

--> É mais utilizado por Otservers como Subwat que se pega altos níveis rapidamente.

 

1- Vá na pasta do seu OT/data/talkactions e adicione esta TAG ao arquivo "talkactions.xml"

Citar

<talkaction words="!resetar;!reset" event="script" value="reset.lua"/>

2- Após adicionar a TAG vá para data/talkaction/scripts e crie um arquivo .lua chamado reset e cole isso dentro:

Citar

function onSay(cid, words, param, channel)

config = {
RemainingLvl=8,
exper=4200,
pid=getPlayerGUID(cid),
batle="yes"
}

function getPlayerResets(cid)
resets = getPlayerStorageValue(cid,1021)
if resets < 0 then
resets = 0
end
return resets
end

if (config.batle == "yes") and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then
doPlayerSendTextMessage(cid,22,"Você Precisa estar sem Battle para Resetar.")      
return TRUE
end

if (getPlayerStorageValue(cid, 11548) >= os.time()) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED,"Por medidas de segurança você só pode utilizar este comando em " .. (getPlayerStorageValue(cid, 11548)-os.time()+(0)) .. " segundos.")
return TRUE
end

local healthMax, manaMax = getCreatureMaxHealth(cid), getCreatureMaxMana(cid)
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 85 and getPlayerResets(cid) == 15 then
if getPlayerLevel(cid) >= 16000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 16000 ou mais para poder resetar.") 
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 80 and getPlayerResets(cid) == 14 then
if getPlayerLevel(cid) >= 15000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 15000 ou mais para poder resetar.") 
end
end

----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 70 and getPlayerResets(cid) == 13 then
if getPlayerLevel(cid) >= 14000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 14000 ou mais para poder resetar.") 
end
end

----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 65 and getPlayerResets(cid) == 12 then
if getPlayerLevel(cid) >= 13000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 13000 ou mais para poder resetar.") 
end
end

----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 60 and getPlayerResets(cid) == 11 then
if getPlayerLevel(cid) >= 12000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 12000 ou mais para poder resetar.") 
end
end

----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 55 and getPlayerResets(cid) == 10 then
if getPlayerLevel(cid) >= 11000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 11000 ou mais para poder resetar.") 
end
end

----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 50 and getPlayerResets(cid) == 9 then
if getPlayerLevel(cid) >= 10000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 10000 ou mais para poder resetar.") 
end
end

----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 45 and getPlayerResets(cid) == 8 then
if getPlayerLevel(cid) >= 9000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 9000 ou mais para poder resetar.") 
end
end

----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 40 and getPlayerResets(cid) == 7 then
if getPlayerLevel(cid) >= 8000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 8000 ou mais para poder resetar.") 
end
end

----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 35 and getPlayerResets(cid) == 6 then
if getPlayerLevel(cid) >= 7000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 7000 ou mais para poder resetar.") 
end
end

----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 30 and getPlayerResets(cid) == 5 then
if getPlayerLevel(cid) >= 6000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 6000 ou mais para poder resetar.") 
end
end

----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 25 and getPlayerResets(cid) == 4 then
if getPlayerLevel(cid) >= 5000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 5000 ou mais para poder resetar.") 
end
end

----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 20 and getPlayerResets(cid) == 3 then
if getPlayerLevel(cid) >= 4000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 4000 ou mais para poder resetar.") 
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 15 and getPlayerResets(cid) == 2 then
if getPlayerLevel(cid) >= 3000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 3000 ou mais para poder resetar.") 
end
end

----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 10 and getPlayerResets(cid) == 1 then
if getPlayerLevel(cid) >= 2000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 2000 ou mais para poder resetar.") 
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 5 and getPlayerResets(cid) == 0 then
if getPlayerLevel(cid) >= 1000 then 
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) 
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else 
doPlayerSendCancel(cid,"Você precisa ter level 1000 ou mais para poder resetar.") 
end
end


return true
end

3- Execute a query para criar uma coluna "reset" no MySQL

Citar

ALTER TABLE `players` ADD `reset` BIGINT(255) NOT NULL DEFAULT '0';

4- Para finalizar configuere o index.php do seu Gesior para receber a pagina PHP

Citar

<?php
	$limitt = 100; 
	$zap = $SQL->query('SELECT `name`,`level`, `reset`  FROM `players` WHERE `group_id` < '.$config['site']['players_group_id_block'].' AND `name` != "Account Manager" ORDER BY `reset` DESC, `level` DESC LIMIT 100;'); 
	$number_of_rows = 0; 
	$main_content .= '
		<center><h2>Reset Ranking</h2></center>
		<TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%>
	<tr bgcolor="#af2126">
		<td><font color="white">Nome</font></td>
		<td><font color="white">Reset</font></td>
		<td><font color="white">Level</font></td>
	</tr>
	';	
	foreach($zap as $wynik) { 
	if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; }
		$number_of_rows++; 
	$main_content .= '
	<tr bgcolor="'.$bgcolor.'">
		<td>
			<a href="index.php?subtopic=characters&name='.urlencode($wynik['name']).'">
			<b> '.$wynik['name'].' </b></a>
		</td>
		<td>
			'.$wynik['reset'].'
		</td>
		<td>
			'.$wynik['level'].'
		</td>
	</tr>
		';
	}
	$main_content .= '
		</tr>	
	</table>';

?>

Para alterar a quantidade de Resets permitidos é so Remover ou Adicionar as linhas, a mesma coisa para alterar o level do RESET.

 

             Te ajudei ? Deixa aquele REP+ pra fortalecer, basta clicar em GOSTEI

                                                       housefoda.gif

                                        tk-melhor.png

Talvez você queira ver:

BestBaiak

[FAQ]Remere's Map Editor - Dúvidas e soluções de bugs 

 

Contato:

1.png.dadb3fc3ee6ffd08292705b6a71e3d88.png Discord:

Link para o post
Compartilhar em outros sites
  • 1 month later...

saudades de quando eu criei o subwat :/

monsterserver.servegame.com

 

http://otservlist.org/ots/1539558

 

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 Bagon
      Bom, hoje venho trazer á vocês um sistema de Pet System DIFERENCIADO de alguns presentes no fórum. Este sistema tem diversos comandos diferenciados, como: 
       
      !pet nomedopet este comando irá sumonar o pet. 
      !remove irá remover o pet.
      !fale eu sou lindo o pet falará "eu sou lindo"
      !conversar o pet irá conversar com vc. 
       
      Então sem mais delongas vamos ao script.
       
      OBS: SCRIPT TESTADO SOMENTE EM TFS 0.4/0.3, e este script foi feito com a intenção de ser vendido no site do ot ou em poderá usar como quest usando o item selecionado como premio. fique ao seu critério.
       
      Primeiro vá até a pasta talkaction/script e crie um arquivo chamado petsystem.lua, depois coloque o seguinte script:
       
       
      Agora em talkactions/talkactions.xml adicione a seguinte tag:
       
      <talkaction words="!pet;!remove;!fale;!conversar" event="script" value="petsystem.lua" />  
      EXPLICAÇÂO:
      As partes em Negrito, são os pets. Você pode alterar ou criar monstros para fazer eles como pets. (Recomendo criar um monstro para que seja somente pet.)
       
      Exemplo: ["dog"]= {stor=78552},      
       
       
      Lembrando que é necessário mudar esta parte no script do monstro colocado a cima.
       
      <flag attackable="1" /> para :
       
      <flag attackable="0" />  
      agora vá em action/script e crie um arquivo chamado pet com o seguinte script:
       
       
      e vá em action.xml e adiciona a seguinte tag:
       
      <action itemid="10063" script="pet.lua"/> Explicação: Na tag da action o itemid é o item que deverá ser usado para ganhar a storage 78552, e assim podera sumonar o monstro com esta storage.
       
                                              
                                                         CRIE UMA ACTION COM A TAG A CIMA PARA CADA MONSTRO COLOCADO NA TALKACTION,
                                                         BASTA VC ALTERAR A STORAGE DO SCRIPT DA ACTION
                                                         EXEMPLO: em action altere as storage que estão em vermelho, como mostra abaixo
       
                                                              if getPlayerStorageValue(cid, 78552) < 1 then
                                                              setPlayerStorageValue(cid, 78552, 1)
       
                                                         aonde tem 78552 altere para 78553 que no caso é a storage do cyclops escolhido lá no script da talkaction
                                                         e assim susecivelmente.
       
       
       
      CREDITOS:
      Mulizeu
      Smartbox
      Bagon 
       
    • Por Imperius
      Olá, pessoal! Acabei encontrando um script que tinha feito a um tempo atrás. Estou compartilhando aqui para quem quiser usar ou melhorar.
       
      É bem parecido com os outros sistemas de roleta, igual deste tópico: https://tibiaking.com/forums/topic/101557-action-cassino-roleta-de-items/
       
      Como funciona?
       
      O "Treasure Chest" é um item custom, onde o jogador têm a possibilidade de ganhar itens raros ou bem meia boca. Tudo dependerá da sorte.
       
      O jogador precisa tacar o treasure chest na bancada e acionar a alavanca. O treasure chest irá se transformar em vários itens de forma randômica no qual o jogador poderá ou não ganhar. No final, apenas um item é entregue ao jogador.
       
      Para entender melhor o seu funcionamento, segue o GIF abaixo:
       

       
       
      em data > actions > actions.xml
       
       
      em data > actions > scripts > crie um arquivo chamado leverTreasureChest.lua
       
       
      no banco de dados do servidor, adicione o seguinte código em "SQL":
       
       
       

      Também estou disponibilizando uma página PHP, para quem quiser usar no site do servidor. Na página tem informações sobre o funcionamento, quais são os possíveis prêmios e a lista de jogadores que ganharam os itens raros.
       

       
       
      Espero ter ajudado de alguma forma! : )
       
      treasure_chest.php
    • Por Linus
      Você  pode configurar se quer que o preço aumente a cada reset, se quer que o level pra resetar aumente e se vc quer que a vida resete junto (e quanto % da vida atual será a vida após resetar).
       
       
      Testado em tfs 1.1, Versão 10.77
       
       
       
       
      Vá em data/npc/lib/ crie npc_resets.lua :
       



       
      Você pode editar mexendo aqui. no script acima :
      config = { minlevel = 150, --- Level inical para resetar price = 10000, --- Preço inicial para resetar newlevel = 20, --- Level após reset priceByReset = 0, --- Preço acrescentado por reset percent = 30, ---- Porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total) maxresets = 50, ---- Maximo de resets levelbyreset = 0 --- Quanto de level vai precisar a mais no próximo reset } agora em data/npc/ crie reseter.XML :
       



       
       
       
      Agora em data/npc/scripts crie reseter.lua :
       



       
       
       
      Img : 
       

    • Por Sekk
      Bom, procurei esse Castle por MUITO TEMPO, mas não achei em NENHUM LUGAR DA INTERNET. Ontem, eu estava vendo alguns mapas do @Deathrocks, e vi nos prints, que o mapa possuia o evento que eu queria!
       
      Então baixei o mapa e extrai o evento, então venho lhes trazer!
       
       
      Nome: Castle 24H
      Cliente: 8.6
      Versão TFS: 0.4
      Tipo: Evento
       
      Bom, para começar, vamos em actions/scripts e crie 2 arquivos:
       
      castledoor1.lua
       
      castlewar1.lua
       
        Agora em actions.xml adicione as tags:
       
      Agora em monster/traps crie 3 arquivos:
       
      porta.xml
       
      protectcastle.xml  
      statue.xml  
      Agora em monsters.xml adicione as tags:    
      Vamos para movements/scripts e crie 2 arquivos:
       
      castlewar2.lua
       
      level.lua  
      Agora em movements.xml adicione as tags:  
       
      Pronto. Agora você só precisa baixar o mapa, inserir o mesmo ao seu servidor, configurar os teleports, e as hunts dentro do castle etc.
       
      PRINTS:
      1ª parte
       
      2ª parte:
       
      Obs.: Todos os ActionID e monsters já estão no mapa! Você só precisa configurar as coordenadas dos teleports, e o que possui no castle!
       
      Obs².: Tudo o que você pode configurar, já está escrito em cada script!
       
       
      Créditos:
      @DeathRocks
      PC98
      mapa.rar
    • Por MySticaL
      Como funciona esse sistema?
      R-> Simples caso seu otServ for para todos os players, de todos continentes e você não
      queira deixar as funções em lua apenas em uma língua, você pode utilizar esse sistema.
       
      Como usar?
      R-> Após o sistema estar instalado 100%, vai ter 3 comandos: !lang en (setar a linguagem para english), !lang pt (setar a linguagem portuguese) &
      !lang es (setar a linguagem espanõl).

      Vamos começar, vai em data/lib/ e crie um arquivo chamado lang system.lua e coloque isto dentro:
      function getPlayerLanguage(cid) local Lang = db.getResult("SELECT `language` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. " LIMIT 1") if Lang:getID() ~= LUA_ERROR then local langid = Lang:getDataInt("language") Lang:free() return langid end return LUA_ERROR end function doPlayerSetLanguage(cid, new) local acc = getPlayerAccountId(cid) if new == 2 then db.executeQuery("UPDATE `accounts` SET language = 2 WHERE `id` = " .. acc) elseif new == 1 then db.executeQuery("UPDATE `accounts` SET language = 1 WHERE `id` = " .. acc) else db.executeQuery("UPDATE `accounts` SET language = 0 WHERE `id` = " .. acc) end end Ainda em data/lib encontre o arquivo 000-constant.lua e coloque ao final dele isto:
      ENGLISH = 2 SPANISH = 1 PORTUGUES = 0 Agora execute este código na sua SQL:
      ALTER TABLE `accounts` ADD `language` INT( 11 ) NOT NULL DEFAULT '0' Pronto, o sistema está pronto agora vamos criar um comando para que troque a linguagem, vá em data/talkactions/scripts
      e crie um arquivo chamado lang.lua e coloque isto dentro:
      function onSay(cid, words, param) if(param == '') then return true end if(param == 'en') then if getPlayerLanguage(cid) == 2 then doPlayerSendTextMessage(cid, 20, "[Language System (Beta)] Your language is alredy set to english.") return true else doPlayerSendTextMessage(cid, 27, "[Language System (Beta)] You have set english as your language.") doPlayerSetLanguage(cid, 2) return true end end if(param == 'pt') then if getPlayerLanguage(cid) == 0 then doPlayerSendTextMessage(cid, 20, "[Language System (Beta)] Sua língua já está definida como português.") return true else doPlayerSendTextMessage(cid, 27, "[Language System (Beta)] Você definiu o português como sua língua.") doPlayerSetLanguage(cid, 0) return true end end if(param == 'es') then if getPlayerLanguage(cid) == 1 then doPlayerSendTextMessage(cid, 20, "[Language System (Beta)] Su lengua ya esta definida como español.") return true else doPlayerSendTextMessage(cid, 27, "[Language System (Beta)] Tu definistes el español como tu lengua.") doPlayerSetLanguage(cid, 1) return true end end end E em data/talkactions abra o talkactions.xml e coloque está tag:
      <talkaction log="yes" words="!lang" event="script" value="lang.lua"/> Vou dar um exemplo de como usa-la em .lua:
      if getPlayerLanguage(cid) == 2 then doPlayerSendTextMessage(cid, 25, "This message will be displayed in English if the language of the player is in -en!") end if getPlayerLanguage(cid) == 0 then doPlayerSendTextMessage(cid, 25, "Está mensagem será exibida em português se a linguagem do jogador estiver em -pt!") end if getPlayerLanguage(cid) == 1 then doPlayerSendTextMessage(cid, 25, "Usted mensaje se mostrará en Espanõl si el jugador está en el lenguaje -es!") end Outro Exemplo:
      function onLogin(cid) local langmsg = { [ENGLISH] = {"This message will be displayed in English if the language of the player is in -en!"} [SPANISH] = {"Usted mensaje se mostrará en Espanõl si el jugador está en el lenguaje -es!"}, [PORTUGUES] = {"Está mensagem será exibida em português se a linguagem do jogador estiver em -pt!"}, } doPlayerSendTextMessage(cid, 25, langmsg[getPlayerLanguage(cid)][1]) return true end Pronto, agora o sistema está perfeito, os comandos estão no começo do tópico em "Como usar?"
       
      créditos:
      Acubens 
      Drazyn1291 
      MySticaL
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo