Ir para conteúdo

Featured Replies

Postado

Olá, tem vários comandos !eject pelo fórum, porém nenhum dos que encontrei funcionou comigo, talvez pelo fato de eu usar SQLITE.
Precisava muito desse comando no meu servidor, alguém possui um que funcione com SQLITE?

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

  • Respostas 13
  • Visualizações 2k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Fala que não tem a função vai ver e a versão do seu server, tenta esse : 

  • Esse mod só funciona para quem usa MYSQL, caso contrário resultara em erro como mostrou acima. Em fim, por ser SQLITE, complica muito, por ser muito limitado. Sugiro trocar para mysql pois é melh

  • Compreendo. Caso eu ache algo para isso em sqlite eu entro em contato aqui no tópico, no entanto não desista, o fórum é grande deve ter algo para sqlite! 

Postado

!eject no caso e para sair da house certo ??

vai em talkactions.xml e adicione isso la:

<talkaction words="!eject" filter="word-spaced" event="script" value="eject.lua"/>

e em talkactions/scripts

crie um arquivo chamado eject.lua e adicione dentro:

function onSay(cid, words, param, channel)
	local house = getHouseFromPos(getCreaturePosition(cid))
	if(not house) then
		doPlayerSendCancel(cid, "You are not inside a house.")
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
		return false
	end

	local owner = getHouseInfo(house).owner
	if(owner ~= getPlayerGUID(cid) and (owner ~= getPlayerGuildId(cid) or getPlayerGuildLevel(cid) ~= GUILDLEVEL_LEADER)) then
		doPlayerSendCancel(cid, "You are not the owner of this house.")
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
		return false
	end

	setHouseOwner(house, 0)
	doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE)
	return false
end

 

Postado
  • Autor
28 minutos atrás, WhiteBubble disse:

!eject no caso e para sair da house certo ??

vai em talkactions.xml e adicione isso la:


<talkaction words="!eject" filter="word-spaced" event="script" value="eject.lua"/>

e em talkactions/scripts

crie um arquivo chamado eject.lua e adicione dentro:


function onSay(cid, words, param, channel)
	local house = getHouseFromPos(getCreaturePosition(cid))
	if(not house) then
		doPlayerSendCancel(cid, "You are not inside a house.")
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
		return false
	end

	local owner = getHouseInfo(house).owner
	if(owner ~= getPlayerGUID(cid) and (owner ~= getPlayerGuildId(cid) or getPlayerGuildLevel(cid) ~= GUILDLEVEL_LEADER)) then
		doPlayerSendCancel(cid, "You are not the owner of this house.")
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
		return false
	end

	setHouseOwner(house, 0)
	doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE)
	return false
end

 

Não é isso amigo, !eject funciona assim:
Um player encontra uma house já ocupada por outro player, vira para a porta e fala !eject
Se o dono da house não loga a mais de 10 dias, os items dentro da mesma vão para o depot do atual dono da house, e a house se torna "À venda".

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Postado
Agora, luangop disse:

Não é isso amigo, !eject funciona assim:
Um player encontra uma house já ocupada por outro player, vira para a porta e fala !eject
Se o dono da house não loga a mais de 10 dias, os items dentro da mesma vão para o depot do atual dono da house, e a house se torna "À venda".

Bom nisso não posso te ajudar, mas tenho um MOD parecido que o tanto de dias que esta configurado ele verifica as houses e automaticamente poe elas a venda sem o player precisar usar o eject.

cri um arquivo com nome Clean Houses.xml em mods e adicione isso dentro:

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Cleanhouses" version="1.03" author="nsanee" contact="tibiaking.com" enabled="yes">
    <description>
        v.1.03 - Added 'onlyNonPremium' configurable.
                 Removed modlib, since the script is run once anyway we don't need it loaded at all times.
                 It shouldn't now stop execution when a house is nameless.
				
		v.1.02 - now uses only one sql query, removed multiworld configurable  since it's not needed anymore
        v.1.01 - small fixes, optimized query + multiworld support.
       
		
        This mod will clean houses of inactive players and move their items to the depot.
        
        config explained:
            
            days - If the player hasn't logged in for this number of days his house will be freed.
            log - true/false, whether to enable logging of which houses have been cleaned.
            file - path to the log file, where logs will be stored. Ignored if 'log' set to false
            onlyNonPremium - if set to 'true', the script will clean only the houses of players who don't have any pacc days left.
			
		other notes:
			DO NOT remove doSaveServer() at the end, otherwise if your server happens to crash before the nearest server save you will regret it =)
    </description>

    <globalevent name="cleanhouses" type="start" event="buffer"><![CDATA[
	
	
        local config = { 
            days = 7,
            log = true,
            file = getDataDir() .. "/logs/cleanhouses.txt",
	    onlyNonPremium = true
        }
		
		
		
        local ns_query =[[ SELECT houses.owner, houses.id as hid, houses.name as house_name ,players.name FROM houses
            LEFT JOIN players ON players.id=houses.owner
            LEFT JOIN accounts ON players.account_id=accounts.id
            WHERE players.lastlogin < (UNIX_TIMESTAMP() - ]] ..config.days.. [[*24*60*60)
            ]] ..(config.onlyNonPremium and ' AND accounts.premdays=0 ' or '')..[[
            AND	players.world_id =]] .. getConfigValue("worldId")
		
        local house = db.getResult(ns_query)
        local logs = " :: Houses cleaned:\n\n"
        if house:getID() ~= -1 then
            repeat
                logs = logs .. house:getDataString('house_name') ..", owned by " .. house:getDataString('name') .. "\n"
                setHouseOwner(house:getDataInt('hid'), 0)
            until not house:next()
            house:free()
        else
            logs = logs .. "There were no houses to clean."
        end
        if config.log then
            doWriteLogFile(config.file, logs)
        end
        addEvent(doSaveServer, 1000)
		
    ]]></globalevent>
</mod>

Em local config em days você coloca quantos dias offline vai ter que ficar para perder a house.

Postado
  • Autor
48 minutos atrás, WhiteBubble disse:

Bom nisso não posso te ajudar, mas tenho um MOD parecido que o tanto de dias que esta configurado ele verifica as houses e automaticamente poe elas a venda sem o player precisar usar o eject.

cri um arquivo com nome Clean Houses.xml em mods e adicione isso dentro:


<?xml version="1.0" encoding="UTF-8"?>
<mod name="Cleanhouses" version="1.03" author="nsanee" contact="tibiaking.com" enabled="yes">
    <description>
        v.1.03 - Added 'onlyNonPremium' configurable.
                 Removed modlib, since the script is run once anyway we don't need it loaded at all times.
                 It shouldn't now stop execution when a house is nameless.
				
		v.1.02 - now uses only one sql query, removed multiworld configurable  since it's not needed anymore
        v.1.01 - small fixes, optimized query + multiworld support.
       
		
        This mod will clean houses of inactive players and move their items to the depot.
        
        config explained:
            
            days - If the player hasn't logged in for this number of days his house will be freed.
            log - true/false, whether to enable logging of which houses have been cleaned.
            file - path to the log file, where logs will be stored. Ignored if 'log' set to false
            onlyNonPremium - if set to 'true', the script will clean only the houses of players who don't have any pacc days left.
			
		other notes:
			DO NOT remove doSaveServer() at the end, otherwise if your server happens to crash before the nearest server save you will regret it =)
    </description>

    <globalevent name="cleanhouses" type="start" event="buffer"><![CDATA[
	
	
        local config = { 
            days = 7,
            log = true,
            file = getDataDir() .. "/logs/cleanhouses.txt",
	    onlyNonPremium = true
        }
		
		
		
        local ns_query =[[ SELECT houses.owner, houses.id as hid, houses.name as house_name ,players.name FROM houses
            LEFT JOIN players ON players.id=houses.owner
            LEFT JOIN accounts ON players.account_id=accounts.id
            WHERE players.lastlogin < (UNIX_TIMESTAMP() - ]] ..config.days.. [[*24*60*60)
            ]] ..(config.onlyNonPremium and ' AND accounts.premdays=0 ' or '')..[[
            AND	players.world_id =]] .. getConfigValue("worldId")
		
        local house = db.getResult(ns_query)
        local logs = " :: Houses cleaned:\n\n"
        if house:getID() ~= -1 then
            repeat
                logs = logs .. house:getDataString('house_name') ..", owned by " .. house:getDataString('name') .. "\n"
                setHouseOwner(house:getDataInt('hid'), 0)
            until not house:next()
            house:free()
        else
            logs = logs .. "There were no houses to clean."
        end
        if config.log then
            doWriteLogFile(config.file, logs)
        end
        addEvent(doSaveServer, 1000)
		
    ]]></globalevent>
</mod>

Em local config em days você coloca quantos dias offline vai ter que ficar para perder a house.

Esse mod me retorna esse erro quando inicio o servidor:

[28/11/2016 21:41:16] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: no such function: UNIX_TIMESTAMP ( SELECT houses.owner, houses.id as hid, houses.name as house_name ,players.name FROM houses
[28/11/2016 21:41:16]             LEFT JOIN players ON players.id=houses.owner
[28/11/2016 21:41:16]             LEFT JOIN accounts ON players.account_id=accounts.id
[28/11/2016 21:41:16]             WHERE players.lastlogin < (UNIX_TIMESTAMP() - 7*24*60*60)
[28/11/2016 21:41:16]              AND accounts.premdays=0             AND    players.world_id =0)

OBS: usando tfs 0.3.6

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo