Ir para conteúdo

[Novo]TV System


Posts Recomendados

TV System.

Este novo sistema de TV pega em qualquer servidor, testado em Dash, PDA, e tfs 0.3.6 pl1 do meu server de pokémon.

 

 

PDA

 

1° Action

 

Vá na pasta Actions crie um arquivo .lua com o nome:
TVsystem.lua e coloquem isso dentro:

 

function onUse(cid, item, frompos, item2, topos)

if getPlayerStorageValue(cid, 99284) == 1 then
doPlayerSendCancel(cid, "Voce nao pode assistir TV durante a gravacao.")
return true
end

local a = getThingPos(cid)

if item.itemid >= 1452 and item.itemid <= 1454 then
if a.y <= topos.y then
doPlayerSendCancel(cid, "Por favor, fique em frente da televisao.")
doPlayerSetVocation(cid, 1)
return true
end
end

if item.itemid == 1452 then
if a.x < topos.x then
doPlayerSendCancel(cid, "Por favor, fique em frente da televisao.")
doPlayerSetVocation(cid, 1)
return true
end
elseif item.itemid == 1454 then
if a.x > topos.x then
doPlayerSendCancel(cid, "Por favor, fique em frente da televisao.")
doPlayerSetVocation(cid, 1)
return true
end
end

doPlayerSetVocation(cid, 2)

if not checkChannelsList(cid) then
doPlayerSendCancel(cid, "Nao existem quaisquer canais de ar agora.")
doPlayerSetVocation(cid, 1)
return true
end

if #getCreatureSummons(cid) >= 1 then
doReturnPokemon(cid, getCreatureSummons(cid)[1], getPlayerSlotItem(cid, 8), pokeballs[getPokeballType(getPlayerSlotItem(cid, 8).itemid)].effect)
end

openChannelDialog(cid)

return true
end

 

 

Ainda em Actions!

 

Crie outro arquivo.lua chamado de Gravadora.lua, e coloque isso dentro:

 

function onUse(cid, item, frompos, item2, topos)

if getPlayerStorageValue(cid, 99284) == 2 then
doPlayerSendCancel(cid, "Voce tem que fechar o bate-papo particular para Record.")
return true
end

if getPlayerStorageValue(cid, 99284) == 1 then
doPlayerSendCancel(cid, "Você já está no ar! Seu canal de TV é: "..getPlayerStorageValue(cid, 99285).."")
doPlayerSendChannel(cid, getPlayerChannelId(cid), getPlayerStorageValue(cid, 99285))
return true
end

if not isPremium(cid) then
doPlayerSendCancel(cid, "Apenas jogadores vips podem gravar.")
return true
end

doPlayerPopupFYI(cid, "Escolha um nome para seu canal.")

end

 

 

Agora vamos programa-lo no action.lua:

 

Vá em actions.lua, e coloque:

 

<action itemid="16547-16550;13495-11498;15675-15680" event="script" value="TVsystem.lua"/>

<action itemid="12330" event="script" value="Gravadora.lua"/>
TVSystem: na parte que está em azul, você terá que colocar os ids das televisões.
Gravadora: na parte que está em azul você coloca o id da camera.
Agora vamos criar um NPC, e configura-lo na pasta data/Lib.
Vá na pasta do NPC e crie um NPC Chamado Paulo.
Paulo.xml e coloque isso dentro:

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Paulo " speed="0">
<health now="670" max="660"/>
<look type="Id da Outfit" head="114" body="114" legs="114" feet="114"/>
<parameters>
</parameters>
</npc>

Agora na Pasta data/LIB, crie um arquivo chamado:
tvsystem.lua
E coloque dentro:

function doPlayerWatchOther(cid, target)
if not isCreature(cid) then return true end
local hasOutfitCond = getCreatureCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType or -1
setPlayerStorageValue(cid, 99282, getCreatureSpeed(cid))
setPlayerStorageValue(cid, 99283, hasOutfitCond)
setPlayerStorageValue(cid, 99285, target)
doCreatureSetNick(cid, "") --, " ")
local o = getCreatureOutfit(cid)
local olddir = getCreatureLookDir(cid)
local oldpos = getThingPos(cid)
doCreatureSetHideHealth(cid, true)
doPlayerLock(cid)
local dir = "data/npc/Paulo.xml"
local a = io.open(dir, "a+")
local b = a:read("*all")
a:close()
local npcname = 'name="'..getCreatureName(cid)..' "'
local npchealth = 'health now="'..getCreatureHealth(cid)..'" max="'..getCreatureMaxHealth(cid)..'"'
local npcoutfit = 'look type="'..o.lookType..'" head="'..o.lookHead..'" body="'..o.lookBody..'" legs="'..o.lookLegs..'" feet="'..o.lookFeet..'"'
b = string.gsub(b, 'name="(.-)"', npcname)
b = string.gsub(b, 'health now="(.-)" max="(.-)"', npchealth)
b = string.gsub(b, 'look type="(.-)" head="(.-)" body="(.-)" legs="(.-)" feet="(.-)"', npcoutfit)
local c = io.open(dir, "w")
c:write(b)
c:close()
o.lookType = 814
doCreatureSetOutfit(cid, o, -1)
doTeleportThing(cid, getThingPos(target), false)
local n = doCreateNpc("Paulo", oldpos)
doCreatureSetLookDir(n, olddir)
setPlayerStorageValue(n, 9891, getPlayerSex(cid))
doPlayerSetVocation(cid, 1)
doChangeSpeed(cid, -getCreatureSpeed(cid))
doChangeSpeed(cid, getCreatureSpeed(target))
end
function doPlayerStopWatching(cid)
if not isCreature(cid) then return true end
doPlayerUnlock(cid)
doCreatureSetNick(cid, "") --, getCreatureName(cid))
local pos = {}
local speed = getPlayerStorageValue(cid, 99282)
local npc = getCreatureByName(getCreatureName(cid).." ")
local olddir = 0
if isCreature(npc) then
olddir = getCreatureLookDir(npc)
local pos = getThingPos(npc)
doRemoveCreature(npc)
doTeleportThing(cid, pos, false)
end
doChangeSpeed(cid, -getCreatureSpeed(cid))
doChangeSpeed(cid, speed)
doCreatureSetHideHealth(cid, false)
doCreatureSetLookDir(cid, olddir)
doCreatureSetNick(cid, getCreatureName(cid))
setPlayerStorageValue(cid, 99285, -1)
local outfit = getPlayerStorageValue(cid, 99283)
if outfit >= 1 then
local newOutfit = getCreatureOutfit(cid)
newOutfit.lookType = outfit
doCreatureSetOutfit(cid, newOutfit, -1)
else
doCreatureRemoveCondition(cid, CONDITION_OUTFIT)
end
end
function getWatchingPlayersFromPos(cid, pos)
local ret = {}
local cp = {}
cp.x = pos.x
cp.y = pos.y
cp.z = pos.z
for a = 0, 255 do
cp.stackpos = a
local b = getTileThingByPos(cp).uid
if isCreature(b) and getCreatureOutfit(b).lookType == 600 and getPlayerStorageValue(b, 99285) == cid then
table.insert(ret, b)
end
end
return ret
end

Na parde de azul no script da lib, será assim: Outfit do NPC +200. Por exemplo LookType 400+200 ficará 600.
Caso ocorra algum Bug Fala a e no tópico.
Dash
Em breve
Créditos a um desconhecido.
-E amim por editar.
Editado por Lord Stryton
Link para o comentário
Compartilhar em outros sites

Ctz que nao precisa adicionar nada nas sources? que eu saiba no tvsystem.lua tem uma funçao : doCreatureSetNick(cid, "") --, " ") , checkChannelsList

e essa funçao eu nao tenhu nas sources como faço?

Editado por Nextbr
Link para o comentário
Compartilhar em outros sites

Ctz que nao precisa adicionar nada nas sources? que eu saiba no tvsystem.lua tem uma funçao : doCreatureSetNick(cid, "") --, " ") , checkChannelsList

e essa funçao eu nao tenhu nas sources como faço?

por isso que achei estranho e pedi video de funcionamento, ali ele n mecheu em nada com source

Link para o comentário
Compartilhar em outros sites

Bom pegou normal.

Mas colocarei a função da source ,estou um pouco sem tempo.


Vou vê na minha source a função e postarei o tutorial.

 

Me desculpem!

 

Editei o tópico coloquei PDA o Dash com a função colocarei brevemente.

Link para o comentário
Compartilhar em outros sites

Bom pegou normal.

 

Mas colocarei a função da source ,estou um pouco sem tempo.

Vou vê na minha source a função e postarei o tutorial.

 

Me desculpem!

 

Editei o tópico coloquei PDA o Dash com a função colocarei brevemente.

a galera e doida pela tv system para dash eu também

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...