você pode usar o comando !deathlist NOME ex: !deathlist Carlin:
in your db execute this query:
CREATE TABLE death_list (
id INTEGER NOT NULL,
player_id INTEGER NOT NULL,
date INTEGER NOT NULL,
level INTEGER NOT NULL,
killer_name INTEGER NOT NULL,
PRIMARY KEY ( id )
);
creaturescript
death_list.lua function onDeath(cid, corpse, deathList)
local str = ""
for _, pid in ipairs(deathList) do
if isCreature(pid) == true then
str = str.."".. (str == "" and "" or ",") ..""..getCreatureName(pid)
else
str = str.."".. (str == "" and "" or ",") .." a field item"
end
end
str = str.."."
death = str .. " ".. (getPlayerBlessing(cid, 5) and "[Blessed]" or getPlayerSlotItem(cid, 2).itemid == 2173 and "[AOL]" or "")
db.executeQuery("INSERT INTO `death_list` (`player_id`, `date`, `level`, `killer_name`) VALUES ('".. getPlayerGUID(cid).."', '".. os.time() .."', '".. getPlayerLevel(cid) .."', '".. death .."');")
return true
end
creaturescript.xml <event type="death" name="DeathList" event="script" value="death_list.lua"/>
creaturescript/script/login.lua registerCreatureEvent(cid, "DeathList")
talkactions
deathlist.lua limit = 5
function onSay(cid, words, param, channel)
str = ""
if param == "" then
local qry = db.getResult("SELECT `player_id`, `date`, `level`, `killer_name` FROM `death_list` ORDER BY `date` DESC LIMIT 0, " .. limit)
if(qry:getID() ~= -1) then
repeat
str = str .."\n "..os.date("%d %B %Y %X ", qry:getDataInt("date")).." "..getPlayerNameByGUID(qry:getDataString("player_id")).." died at level "..qry:getDataInt("level").." by:\n"..qry:getDataString("killer_name")
until not(qry:next())
qry:free()
else
str = "Não há mortes no servidor."
end
doPlayerPopupFYI(cid, "Last Deaths:\n\n" .. str)
return true
end
local getGuid = getPlayerGUIDByName(param:lower())
if not getGuid then doPlayerSendCancel(cid, "Este Player não existe.") return true end
local qry = db.getResult("SELECT `id`, `date`, `level`, `killer_name` FROM `death_list` WHERE `player_id` = " .. getGuid .." ORDER BY `date` DESC LIMIT 0, " .. limit)
if(qry:getID() ~= -1) then
repeat
str = str .."\n "..os.date("%d %B %Y %X ", qry:getDataInt("date")).." died at level "..qry:getDataInt("level").." by:\n"..qry:getDataString("killer_name")
until not(qry:next())
qry:free()
else
str = "Não há mortes."
end
doPlayerPopupFYI(cid, "Last Deaths of: " .. param .. ".\n\n" .. str)
return true
end
talkactions.xml <talkaction words="!deathlist" script="deathlist.lua"/>
Olá, eu sou o ítalo Gonçalves dono da OTProjects e aconselho a todos desconfiarem da esmola, pois se ele pagou pelo produto ele não passaria de graça para vocês, e por respeito ao XTIBIA eu quero que algum dos moderadores do Forum feche esse tópico, aguardo respostas privadas ou aqui mesmo!
qualquer dúvida a respeito add: contato@otprojects.com.br será um prazer falar com vocês!
Bora galerinha, estou disponibilizando para vocês meu trabalho no qual fiquei meses trabalhando...
O motivo pelo qual estou disponibilizando para download é pelo fato de estar muito ocupado com minha profissão, e por este motivo não tive tempo para cuidar do server, nem dos nukers... (risos).
Gostaria de lembrar que O zandalari OT ja teve 200 players online em 1 semana de servidor, isso prova o quanto sucesso este mapa faz, e quanto inovador ele é... então espero que façam bom proveito deste grande projeto que é o zandalari!
-TFS 0.4_DEV COMPILADO 100% ESTAVEL
-PASTA DATA 0 BUGS, REMOVI TODOS OS BUGS POSSIVEIS PODEM CONFERIR
-VOCAÇÕES BALANCEADAS
-PRONTO PARA RODAR-
SEGUE ABAIXO AS IMAGENS:
TEMPLO ZANDALARI:
ZANDALARI CITY:
NPC'S ZANDALARI:
HOUSES:
DESERTO DE NOATUN AO SUL DE ZANDALARI CITY (OPEN WAR):
CIDADES INTERLIGADAS:
MOUNTHRIZE SEA (ILHA DOS MISTERIOS) PRECISA NADAR ATÉ A ILHA:
Bom, vim postar aqui um baiak que eu mesmo editei, com teleports etc..
- O que mudou do baiak original ?
- City Editada
- Novos Tps
- Sala de quests
- Vip Editada
- Novos Itens
- Novos Npcs
- Novos Monstros
- Armas Vip Totalmente + ROXS
~ Bem, não vou ficar falando, apenas baixem e digam o que acharam
SS :
MONSTERS.
ARMAS VIP.
NPCS.
QUEST ROOM.
SET VIP.
TEMPLE.
TREINERS.
Scan: Scan Aqui
Download: Download
@Qualquer bug reportar pra mim ! [ gabrielportari@hotmail.com ]
Creditos : Baiak [ Criador do mapa ]
Eu [ Editado o map 100% ]
Versão Testada:TFS 0.3.6 - 8.54 - 8.6 - 9.6
Créditos pelas modificações: Kydrai,Vodkart e Marcryzius
Oque Contém no Sistema vip 3.0?
Comandos:
Query
Primeiro passado execute essa query na sua DB:
ALTER TABLE `players` ADD `vipacess` INT(15) NOT NULL DEFAULT 0;
Agora vá em Data/lib/050-function e adicione essas funções:
function getCharacterAcess(cid)
local query = db.getResult("SELECT `vipacess` FROM `players` WHERE `id` = "..getPlayerGUID(cid))
if query:getID() ~= -1 then return query:getDataInt("vipacess") end
end
function getCharacterDays(cid)
local acess = math.ceil((getCharacterAcess(cid) - os.time())/(86400))
return acess <= 0 and 0 or acess
end
function HaveCharaterAcess(cid)
return getCharacterDays(cid) > 0 and true or false
end
function setAcessTime(cid, time)
return db.executeQuery("UPDATE `players` SET `vipacess` = "..time.." WHERE `id` = "..getPlayerGUID(cid))
end
function addCharacterAcess(cid, days)
local add = (days <= 0 and 1 or days)*86400
local time = getCharacterDays(cid) == 0 and (os.time() + add) or (getCharacterAcess(cid) + add)
return setAcessTime(cid, time)
end
function doRemoveCharacterAcess(cid, days)
local remove = days*86400
local time = getCharacterAcess(cid) - remove
return setAcessTime(cid, (time <= 0 and 1 or time))
end
function getVipAcessDate(cid)
if HaveCharaterAcess(cid) then return os.date("%d/%m/%y %X", getCharacterAcess(cid)) end
return false
end
Talkactions
agora em talkactions/scripts
vipsystemplayer.lua
function onSay(cid, words, param)
if(words == "!buyvip") then
local days = 10
local price = 50000
if not doPlayerRemoveMoney(cid, price) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.") return true
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.")
addCharacterAcess(cid, days)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem "..getCharacterDays(cid).." dias de VIP, ela acaba em "..getVipAcessDate(cid))
elseif(words == "!vipdays") then
return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem "..getCharacterDays(cid).." dias de VIP. "..(getCharacterDays(cid) > 0 and "ela acaba em "..getVipAcessDate(cid).."." or ""))
end
return true
end
vipsystemgod.lua
function onSay(cid, words, param)
if(words == "/checkvip") then
if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true
end
local player = getPlayerByName(param)
if not isPlayer(player) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player "..player.." not found.") return true
end
return doPlayerPopupFYI(cid, "O jogador tem "..getCharacterDays(player).." dias de VIP no character.")
elseif(words == "/addvip") then
local t = string.explode(param, ",")
if not tonumber(t[2]) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true
end
local player = getPlayerByNameWildcard(t[1])
if(not player)then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.")
end
addCharacterAcess(player, tonumber(t[2]))
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você adicionou "..tonumber(t[2]).." dias de VIP no player "..getCreatureName(player))
doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..tonumber(t[2]).." dias de VIP no seu character.")
elseif(words == "/delvip") then
local t = string.explode(param, ",")
if not tonumber(t[2]) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true
end
local player = getPlayerByNameWildcard(t[1])
if(not player)then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.")
end
doRemoveCharacterAcess(player, tonumber(t[2]))
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você removeu "..tonumber(t[2]).." dias de VIP do jogador "..getCreatureName(player)..".")
end
return true
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
local days = 15
addCharacterAcess(cid, (days <= 0 and 1 or days))
doRemoveItem(item.uid,1)
return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem "..getCharacterDays(cid).." dias de VIP, ela acaba em "..getVipAcessDate(cid))
end
Actions.xml
<action itemid="ID DO SEU ITEM" script="addvipdays.lua"/>
Vip Door
actions/script
perfectvipdoor.lua
function onUse(cid, item, frompos, item2, topos)
if not HaveCharaterAcess(cid) then
return doPlayerSendTextMessage(cid,22,"Você precisa ser vip para passar aqui.")
end
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, topos, true)
return true
end
em movements/scripts crie um arquivo.lua e renomeie para
vipe.lua
function onStepIn(cid, item, position, fromPosition)
if item.actionid == 13700 and not HaveCharaterAcess(cid) then
doTeleportThing(cid, fromPosition, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"você não é vip.")
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
return true
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"bem vindo.")
return true
end