Histórico de Curtidas
-
kbsao500 recebeu reputação de Giovani Moraes Tavar em [Action] players free conhecendo sua area vipvc construiu uma area vip e os player free ta enchendo seu saco pra ver como ela é e vc n confia em levar eles pra olhar ?.. simples chegou o novo system "tabajara Tremzinho da alegria!" eu baxei um ot aki do TK e nele tinha esse trem system ele fica no treiner vc anda uns 10 sqm e para..
ai eu tive uma ideia que tal trasforma ele em um trem que possa levar players pra ver sua area vip pelo andar de cima ? bora la vou explica com fotos se acharem inutil podem exclui na moral so to tentando ajudar. vamos la
va na pastado seu OT: data\actions\scripts
copie (kualker arquivo .lua) e cole
E renomei o arquivo que você colou para: lookvip.lua e dentro deste arquivo coloque isso
--Script by Rastafael
--Config
local SPEED = 1
local PLAYERSPEED = 250
--End
local RAILS = {7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130} --Thxy rails itemid by nord
local CART = {[0] = 7132, [2] = 7132, [3] =7131, [1] =7131}
local CONFIG = {
[7121] = 0,[7122] = 0,
[7123] = {EAST, SOUTH},
[7124] = {WEST, SOUTH},
[7125] = {EAST, NORTH},
[7126] = {WEST, NORTH},
[7127] = 0,[7128] = 0,
[7129] = 0,[7130] = 0,
--Random
}
local reverse = {[0] = 2, 3, 0, 1} -- All that table was made by nord.
local function moveTrain(cid, frompos, direc)
local tab
if not isPlayer(cid) then
return
end
local pos = getCreaturePosition(cid)
local rar = findRail(pos)
if not rar then
doPlayerSetNoMove(cid, false)
doRemoveCondition(cid, CONDITION_OUTFIT)
doChangeSpeed(cid, -PLAYERSPEED)
doMoveCreature(cid, direc)
else
tab = CONFIG[rar]
if tab and type(tab) == 'table' then
direc = tab[tab[1] == reverse[direc] and 2 or 1] -- by nord here
end
doSetItemOutfit(cid, CART[direc], -1)
doMoveCreature(cid, direc)
addEvent(moveTrain, SPEED, cid, pos,direc)
end
end
function findRail(p)
local p_ = {x=p.x, y=p.y, z=p.z}
for i=0,10 do
p_.stackpos = i
local t = getTileThingByPos(p_)
if isInArray(RAILS, t.itemid) then
return t.itemid,t.uid
end
end
end
function onUse(cid, item, frompos) --Script by Rastafael
if hasCondition(cid, CONDITION_OUTFIT) or (item.actionid < 500 and item.actionid > 503) then
return false
end
doTeleportThing(cid, frompos, false)
doPlayerSetNoMove(cid, true)
doChangeSpeed(cid, PLAYERSPEED)
addEvent(moveTrain, SPEED, cid, frompos, item.actionid-500)
return true
end
salva e fexa
la onde ta local SPEED = 1 é a velocidade do trem (coloque a velocidade que vc achar melhor eu aconsehlo deixa uns 200 ai ele fica devagarzinho o player poderar ver sua area vip com calma)
la onde ta local PLAYERSPEED = 250 é a velocidade que o player ira ficar ( não mexa)
depois disso vai la na pasta data/action/action.xml
abra o arquivo action.xml aperte Ctrl + F e procure por oher <!-- Other -->
e cole isso logo abaixo do nome <!-- Other -->
<action itemid="7131" event="script" value="lookvip.lua" />
<action itemid="7132" event="script" value="lookvip.lua" />
onde ta em azul é o id dos Trem (carrinho) "não mexa"
salve e fexe e pronto ja ta tudo certo agora vamo pro mapa
---------------------------
agora abra seu RME (Remeres Map Editor)
aperte a tecla J e digite la onde esta mostrando a imagem o id "7131" ira aparece um carrinho emgual ta na imagem e aperte ok
depois coloke os trilhos para a direção que vc quer e coloke o carrinho na mesma direcão
depois de coloca os carrinhos clike nele com o mouse dieito e va em Properties coloque a actionid para ele anda pro lado que vc ker
na imagem abaixo ta mostrando as action que faz ele ir pra direita ou pra cima
action 501 ele anda pra direita -->
action 502 ele anda pra baixo \/
action 503 ele anda pra esquerda <---
action 504 ele anda em diagonal esquerda baixo
action 505 ele anda em diagonal direita cima
action 506 ele anda em diagonal esquerda cima
action 507 ele anda em diagonal direita baixo
olhe a imagem abaixo
depois que vc coloca a actionid no carrinho "lembrando que é so uma action que vc coloca"
digamos que a imagem abaixo seja meu templo e a area vip marcada em vermelho e o carrinho
marcado em azul coloke os trilhos onde tenha agua onde player n podera entra ape!
se cv coloka ele indo para a agua no final do trilho coloke um chao e um teleport e no teleport coloke a posicão que ele ira te levar quando o player passa com o carrinho (no caso la dentro da area vip) um andar acima se seu carrinho entra no teleporte quando ele tive indo para baixo engual na imagem vc tera que coloka os trilhos do msm jeito para baixo \/ se vc coloka pra outro lado o player ira dece do carrinho.. entao se ele entra no tp indo para baixo ele ira sair na posição indo para baixo.. se ele entra indo para direita --> e tem que sair na posição indo para direita!
agora ele andando na sua area vip e depois entrando em um teleport final voltando pro templo!ol
he na imagem abaixo
Bom é isso ae galera se entenderão vlw.. se n entender ou tiver mau explicado por favor apaguem o post e se vai critica só olhe é melhor =D
PS: o mapa que tinha o sistema de trem é o Global_Full_developed_By_Rastafael versão 8.60!
-
kbsao500 recebeu reputação de jukak2 em [Action] players free conhecendo sua area vipvlw
-
kbsao500 deu reputação a Kimoszin em Rent System - Aluguel de ItensInformações
Oque é o Rent System?
É um sistema feito para os jogadores poderem alugar alguns itens por uma quantia e por um certo tempo.
Hmmm, legal... mas para que esse sistema seria util?
Bom, para o jogador antes de comprar algum item vip, por exemplo. Ele poderia testar para ver seus hits.
Ok, Mas como ele funciona?
O sistema vai entregar para o player um item, depois do tempo configuravel ele irá remover, não importa onde esteja, ele vai remover.
Instalação
\mods\rent.xml
<?xml version="1.0" encoding="UTF-8"?> <mod name="Rent System" version="1.0" author="Kimoszin" contact="tibiaking.com" enabled="yes"> <config name="rent_config"><![CDATA[ messages = { sucess = MESSAGE_INFO_DESCR, fail = MESSAGE_STATUS_WARNING, } warningStorage = 45768 items = { ["knight armor"] = {id=2476, time=1, price=3000, premium=true, cap=false}, ["demon legs"] = {id=2495, time=3, price=3000, premium=true, cap=true}, ["blue legs"] = {id=7730, time=2, price=3000, premium=true, cap=true}, ["demon shield"] = {id=2520, time=1, price=3000, premium=true, cap=true}, } function doWarningItemWasRemoved(cid) if (getCreatureStorage(cid, warningStorage) > -1) then local item = items[getItemNameById(getCreatureStorage(cid, warningStorage))] doPlayerSendTextMessage(cid, messages.sucess, "Ok, "..item.time..(item.time > 1 and " minutes" or " minute").." has passed, the rent of "..getItemNameById(item.id).." ended.") doCreatureSetStorage(cid, warningStorage, -1) end end ]]></config> <talkaction words="!rent" event="buffer"><![CDATA[ domodlib('rent_config') local item, itemuid = items[param:lower()], math.random(1000, 65535) if (param == "") then return doPlayerSendTextMessage(cid, messages.fail, "Sorry, you need to inform parameters.") end if (param == "list") then local str = "~* Rent System by Kimoszin *~\n\n" for name, iten in pairs(items) do str = str..string.sub(name, 0, 1):upper()..string.sub(name, 2):lower().." - "..iten.price.."gps \n" end str = str .."\n WWW.TIBIAKING.COM" return doPlayerPopupFYI(cid, str) end if not(item) then return doPlayerSendTextMessage(cid, messages.fail, "Sorry, but it is not possible to rent this item.") end if (item.premium and not(isPremium(cid))) then return doPlayerSendTextMessage(cid, messages.fail, "You need a premium account.") end if (item.cap and not(getPlayerFreeCap(cid) >= getItemWeightById(item.id, 1, 1))) then return doPlayerSendTextMessage(cid, messages.fail, "You don't have capacity.") end if not(doPlayerRemoveMoney(cid, item.price)) then return doPlayerSendTextMessage(cid, messages.fail, "Sorry, you do not have any money.") end doItemSetAttribute(doPlayerAddItem(cid, item.id, 1), "uid", itemuid) doPlayerSendTextMessage(cid, messages.sucess, "You rented a "..getItemNameById(item.id).." for "..item.time.. (item.time > 1 and " minutes" or " minute")..".") doCreatureSetStorage(cid, warningStorage, item.id) local player_id = getPlayerGUID(cid) addEvent(function() local player = getPlayerByGUID(player_id) if not(isPlayer(player)) then db.executeQuery("DELETE FROM `player_items` WHERE `player_items`.`player_id` = "..player_id.." AND `itemtype` = "..item.id..";") else doPlayerSendTextMessage(cid, messages.sucess, "Ok, "..item.time..(item.time > 1 and " minutes" or " minute").." has passed, the rent of "..getItemNameById(item.id).." ended.") doCreatureSetStorage(cid, warningStorage, -1) doRemoveItem(itemuid, 1) end end, item.time * 60 * 1000) ]]></talkaction> <creatureevent name="rentLogin" type="login" event="buffer"><![CDATA[ domodlib('rent_config') doWarningItemWasRemoved(cid) ]]></creatureevent> </mod>
Explicações
♣ Comandos:
!rent itemname: vai alugar o item !rent list: vai mostrar a lista dos item que são alugaveis. ♣ Variaveis
id: id do item que vai ser alugado time: tempo do item que vai ser alugado price: preço do item que vai ser alugado premium: vai verificar se o player é premium cap: vai verificar se o player tem capacidade para alugar o item -
kbsao500 deu reputação a Bruno Carvalho em [TalkAction] Player Check SystemVersão: 3.2
Versão de tibia: 9.4+ (Funciona em anteriores)
Descrição: Existem muitos scripts que ajudam o administrador do servidor a cuidar dele, um deles é saber coisas sobre quem está jogando e se está sendo honesta. Eu peguei alguns scripts e estou juntando em um para diminuir o tamanho e ter uma fácil verificação.
TAG:
<talkaction log="yes" words="!p;/p" access="5" event="script" value="playercheck.lua"/> Script:
Talkactions/scripts/playercheck.lua
local config = { check = {"check", "viwer", "verificar", "ver"}, delete = {"del", "delete", "deletar"}, search = {"search", "procurar"} } function getItemsInContainer(cont, sep) local text = "" local tsep = "" local count = "" for i=1, sep do tsep = tsep.."-" end tsep = tsep..">" for i=0, getContainerSize(cont.uid)-1 do local item = getContainerItem(cont.uid, i) if isContainer(item.uid) == FALSE then if item.type > 0 then count = "("..item.type.."x)" end text = text.."\n"..tsep..getItemNameById(item.itemid).." "..count.." ("..item.itemid..")" else if getContainerSize(item.uid) > 0 then text = text.."\n"..tsep..getItemNameById(item.itemid).." ("..item.itemid..")" text = text..getItemsInContainer(item, sep+2).." ("..item.itemid..")" else text = text.."\n"..tsep..getItemNameById(item.itemid).." ("..item.itemid..")" end end end return text end function onSay(cid, words, param, channel) local slotName = {"Cabeça", "Amuleto", "Backpack", "Armor", "Mao Direita", "Mao Esquerda", "Legs", "Pés", "Ring", "Ammo Slot"} local t = string.explode(param, ",") if(table.isStrIn(param, config.check)) then if getPlayerGroupId (cid) >= 5 then local player = getPlayerByNameWildcard(t[2]) if isPlayer(player) == TRUE then local text = getPlayerName(player).."'s Equipment: " for i=1, 10 do text = text.."\n\n" local item = getPlayerSlotItem(player, i) if item.itemid > 0 then if isContainer(item.uid) == TRUE then text = text..slotName[i]..": "..getItemNameById(item.itemid).." ("..item.itemid..") "..getItemsInContainer(item, 1) else text = text..slotName[i]..": "..getItemNameById(item.itemid).." ("..item.itemid..")" end else text = text..slotName[i]..": Empty" end end doShowTextDialog(cid, 6579, text) else doPlayerSendCancel(cid, "This player is not online.") end end elseif(table.isStrIn(param, config.delete)) then if getPlayerGroupId(cid) >= 5 then local player = getPlayerByNameWildcard(t[3]) if isPlayer(player) == TRUE then count = t[4] if(not t[4]) then count = 1 end if getPlayerItemCount(player, t[2]) > 0 then if doPlayerRemoveItem(player, t[2], count) then doPlayerSendCancel(cid, "Item Deletado.") else doPlayerSendCancel(cid, "Este player não esta quantidade.") end else doPlayerSendCancel(cid, "Este player não tem o item.") end end end elseif(table.isStrIn(param, config.search)) then if getPlayerGroupId (cid) >= 5 then local player = getPlayerByNameWildcard(t[3]) local result = db.getResult("SELECT name, online FROM players WHERE id IN (SELECT player_id FROM player_items WHERE itemtype = ".. t[2] ..");") local msg = "Resultados da busca pelo item ".. t[2] .." em seu banco de dados:\n\n" if result:getID() ~= -1 then while true do local name = result:getDataString("name") local online = result:getDataInt("online") msg = msg .. name .." [".. (online == 1 and "Online" or "Offline") .."]\n" if not result:next() then break end end else msg = msg .. "O item não foi encontrado em nenhum jogador." end doShowTextDialog(cid, t[2], msg) end end return true end Explicação:
Quando o god digita:
/p check, (PNAME) - Ele verifica os items que o player tem.
/p del, (ID), (PNAME), (COUNT) - Ele deleta o item de determinado player (Se não colocar o count ele irá remover somente 1).
/p search, (ID) - Ele verifica quantos players tem tal item e se está online.
Créditos:
Oneshot
CaioODemais
Comedinha (Bruno Carvalho)