Histórico de Curtidas
-
Frajolaa deu reputação a Augusto em Jogar tibia com internet proxy?Olha, eles ate disponibilizam pra teste uma conta, mais tem que falar no chat com eles.
O que o Esdras Eduardo acho que tentou lhe dizer, é caso você tivesse tentando abrir um ot, e você tivesse acesso ao proxy da sua rede, ai faz sentido o que ele falou.
-
Frajolaa deu reputação a Augusto em Jogar tibia com internet proxy?Se a internet que voce utiliza passa por um proxy, esqueca, geralmente as portas altas sao liberadas em proxys (da 1024 ate 65535) e como o tibia usa a 7171/7172, provavelmente estas portas estao todas bloqueadas, deixando apenas as de navegacao (http 80/ ssl 443).
O que pode tentar e usar um proxy, como o tibiatunnel ou o noping, pois eles se conectam nos servidores pela porta 22 (ssh) e a partir dela redirecionam para os servidores do tibia.
Caso vc nao consiga usar um proxy, provavelmente a porta 22 tbm esta bloqueada...ai o que resta e ver com a prestadora de internet a possibilidade de desbloquear tais portas.
-
Frajolaa deu reputação a fumi em Servidor In4k - RecrutamentoIai galera!
Estamos procurando uma equipe para finalizar o servidor que já está em fase final.
Quem estiver interessado deixar skype e o que quer fazer (Mapper, Spriter, Etc).
Estamos precisando urgente de spriter.
Entrarei em contato o mais rápido possível para testes.
Um video para mostrar o sistema que já está pronto só falta terminar as sprites.
para mais informações acesse www.in4k.com.br
-
Frajolaa deu reputação a Qwizer em (Resolvido)[Nologout zone] Ajuda com area nologoutcorrija o kicktime no config.lua caso não mudar verifica de tem o idle no creaturescripts.xml se esta adicionado la se tiver e ainda assim tiver bugado post o idle.lua pra gente ver.
-
Frajolaa deu reputação a Absolute em (Resolvido)[Nologout zone] Ajuda com area nologoutAltere essa parte:
-- Limits idleWarningTime = 14 * 60 * 1000 idleKickTime = 1000 * 1000 * 10000 expireReportsAfterReads = 1 playerQueryDeepness = 2 maxItemsPerPZTile = 0 maxItemsPerHouseTile = 0 POR:
idleWarningTime = 14 * 60 * 1000 idleKickTime = 15 * 60 * 1000 reportsExpirationAfterReads = 1 playerQueryDeepness = -1 tileLimit = 400 protectionTileLimit = 7 houseTileLimit = 0 -
Frajolaa deu reputação a Qwizer em (Resolvido)[Nologout zone] Ajuda com area nologoutidleKickTime = 15 * 60 * 1000
-
Frajolaa deu reputação a Absolute em (Resolvido)[Nologout zone] Ajuda com area nologoutCorreto, faça o test.
-
Frajolaa deu reputação a Leandro Rissa em Velocidade de Push/empurrar playerem (distance push) game.ppc
procura por
if(Position::areInRange<1,1,0>(movingCreature->getPosition(), player->getPosition()) && delay > 0
&& !player->hasCustomFlag(PlayerCustomFlag_CanThrowAnywhere)) linha 1031 troque para if(Position::areInRange<1,1,0>(movingCreature->getPosition(), player->getPosition()) && delay > 250
&& !player->hasCustomFlag(PlayerCustomFlag_CanThrowAnywhere)) pronto e compila de novo -
Frajolaa deu reputação a Markin em (Resolvido)[Pedido] um script igual ao underwarEu já joguei underwar, se eu não me engano ele quer um script que o player ao fazer seu primeiro acesso ao servidor(logar pela primeira vez) ira receber uma mensagem com a função
doPlayerPopupFYI(cid, "bla bla bla") -
Frajolaa deu reputação a Markin em (Resolvido)[Pedido] um script igual ao underwardata/creaturescripts/scripts crie um arquivo com o nome undermsg.lua e adicione isso dentro:
local mensagem = "bla bla bla" function onLogin(cid) if getPlayerStorageValue(cid, 62627) == 0 then doPlayerPopupFYI(cid, mensagem) doPlayerSetStorageValue(cid, 62627, 1 end return TRUE end creaturescripts.xml adicione a tag:
<event type="login" name="underMSG" event="script" value="undermsg.lua"/> ai você edita a mensagem na parte:
local mensagem = "bla bla bla" Pra pular linha você deve usar \n
Exemplo:
local mensagem = "bla bla\n bla bla" -
Frajolaa deu reputação a Skyforever em [Pedido] Quando 1 Player Morre apareçe na tela e !fly Que Funcione --'Explica o de fly
em /data/creaturescripts/scripts
adcione esse script
em creaturescripts.xml essa tag
<event type="death" name="KillerBroad" event="script" value="nomedoscript.lua"/> em login.lua essa linha registerCreatureEvent(cid, "KillerBroad")
-
Frajolaa deu reputação a Nildson em [TUTORIAL] Criando de baú inicial de pokemon !Cria uma pasta chamada pokeinicial.lua dentro de data > actions > script
depois vai em actions.xml data > actions execute com notped ++ ou bloco de notas e poe em qualquer lugar esse nome no spoiler
Despois vá no seu rme onde estiver o bau e coloque o action id do bau onde tiver o 0 coloque 1000 ! e depois dê ok e salve o mapa e inicie o server e teste se der certo fala e se gostar da +rep
Dependendo da sua versão de poketibia essa dai é para gabrieltxu 3.2 caso for outra versão troque o item id onde estiver azul , e onde estiver vermelho você troca pokemon ou codernada ,
e esse é para level sistem !
Creditos : Nildson " Por Criar a Criar só a script e Divulgação do trabalho !"
-
Frajolaa recebeu reputação de MaxSilver em [!deathlist] Funcionando comando para players.Vai na pasta: data/talkactions/scripts
copie um arquivo e renomeie para: deathlist1.lua e cole:
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 deaths = db.getResult("SELECT `player_id`, `date`, `level`, `killer_name` FROM `death_list` ORDER BY `date` DESC LIMIT 0, " .. limit)if(getPlayer:getID() == -1) then doPlayerSendCancel(cid, "Este Player não existe.") return true end local getGuid = getPlayer:getDataInt("id") getPlayer:free() 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 Vai na pasta: data/talkactions e abre talkactions.xml
e cole em player ou em outro lugar, eu coloquei em players. cole isso:
<talkaction words="!deathlist" script="deathlist.lua"/>
Em limit = 5 logo no começo do script é o limite de quantas mortes irao aparecer dos ultimos player que morreu.
Comando !deathlist
-
Frajolaa recebeu reputação de luanluciano93 em [!deathlist] Funcionando comando para players.Vai na pasta: data/talkactions/scripts
copie um arquivo e renomeie para: deathlist1.lua e cole:
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 deaths = db.getResult("SELECT `player_id`, `date`, `level`, `killer_name` FROM `death_list` ORDER BY `date` DESC LIMIT 0, " .. limit)if(getPlayer:getID() == -1) then doPlayerSendCancel(cid, "Este Player não existe.") return true end local getGuid = getPlayer:getDataInt("id") getPlayer:free() 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 Vai na pasta: data/talkactions e abre talkactions.xml
e cole em player ou em outro lugar, eu coloquei em players. cole isso:
<talkaction words="!deathlist" script="deathlist.lua"/>
Em limit = 5 logo no começo do script é o limite de quantas mortes irao aparecer dos ultimos player que morreu.
Comando !deathlist
-
Frajolaa deu reputação a yogo em [TalkAction] Sistema de FragsOlá, hoje venho apresentar o script, Sistema de Frags, este script faz com que abra uma janela em game, e depois na janela apresente os 'Top Killers' do servidor.
Bom, vamos lá.
Primeiro, abra a pasta de seu Servidor > Data > TalkActions > Scripts, lá copie qualquer arquivo.LUA e renomeio como "topkillers" e nele coloque isso:
Agora, vamos em seu Servidor > Data > TalkActions > TalkActions.XML lá adicione está linha:
Salve e Feche. Abra seu servidor e veja os 'Top Killers'
Bom esse script, eu só editei.
Obrigado pela Atenção.
Abraços.
-
Frajolaa deu reputação a Mek Fiuchem em [DUVIDA] Como Posso dar look No Player e ver os fragsCrie na pasta Data/Creaturescripts/script o arquivo fraglook.lua
e cole isso
function getPlayerFrags(cid) local time = os.time() local times = {today = (time - 86400), week = (time - (7 * 86400))} local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC") if(result:getID() ~= -1) then repeat local content = {date = result:getDataInt("date")} if(content.date > times.today) then table.insert(contents.day, content) elseif(content.date > times.week) then table.insert(contents.week, content) else table.insert(contents.month, content) end until not result:next() result:free() end local size = { day = table.maxn(contents.day), week = table.maxn(contents.week), month = table.maxn(contents.month) } return size.day + size.week + size.month end function onLogin(cid) registerCreatureEvent(cid, "fraglook") return true end function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) and thing.uid ~= cid then doPlayerSetSpecialDescription(thing.uid,'[Frags: '..getPlayerFrags(thing.uid)..']') return true elseif thing.uid == cid then doPlayerSetSpecialDescription(cid,'[Frags: '..getPlayerFrags(cid)..']') local string = 'You see yourself.' if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then string = string..' You are '.. getPlayerGroupName(cid) ..'.' elseif getPlayerVocation(cid) ~= 0 then string = string..' You are '.. getPlayerVocationName(cid) ..'.' else string = string..' You have no vocation.' end string = string..getPlayerSpecialDescription(cid)..'' if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then string = string..' You are '.. (getPlayerSex(cid) == 0 and 'wife' or 'husband') ..' of '.. getPlayerNameByGUID(getPlayerPartner(cid)) ..'.' end if getPlayerGuildId(cid) > 0 then string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid) string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.' end if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then string = string..'nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].' string = string..'nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.' end if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then string = string..'nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].' end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string) return false end return true end Agora no Data/Creaturescripts/creaturescripts.xml adicione essas tags: <event type="login" name="fraglook_register" event="script" value="fraglook.lua"/> <event type="look" name="fraglook" event="script" value="fraglook.lua"/>
Ajudei ? Rep+ Please
-
Frajolaa deu reputação a Beyond Sky em [Mod] Automatic Raids [Dia E Hora Marcada]O alerta que continha no tópico antes do meu post me alertava que eu não poderia postar desde que não fosse nada importante ou que não fosse relacionado ao assunto discutido creio que não cometi uma inflação.
-
Frajolaa deu reputação a Vodkart em [Mod] Automatic Raids [Dia E Hora Marcada]Automatic Raids.xml
<?xml version="1.0" encoding="UTF-8"?> <mod name="Automatic Raids" version="1.0" author="Vodkart And xotservx" contact="tibiaking.com" enabled="yes"> <config name="raids_func"><![CDATA[ days = { ["Monday"] = { ["21:30"] = {nome = "Orshabaal", pos = {fromPosition = {x=184, y=55, z=7},toPosition = {x=188, y=58, z=7}},m = {"5 Fire Devil", "2 Orshabaal"}, Time = 15}, ["21:33"] = {nome = "Dragon", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}},m = {"100 Dragon"}, Time = 20} }, ["Sunday"] = { ["10:08"] = {nome = "Demon", pos = {fromPosition = {x=202, y=11, z=7},toPosition = {x=204, y=12, z=7}}, m = {"1 Demon"}, Time = 15}, ["10:46"] = {nome = "Hydra", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}}, m = {"7 Hydra", "4 Cyclops"}, Time = 20} } } ]]></config> <globalevent name="AutomaticRaids" interval="60" event="script"><![CDATA[ domodlib('raids_func') function onThink(interval, lastExecution) if days[os.date("%A")] then hours = tostring(os.date("%X")):sub(1, 5) tb = days[os.date("%A")][hours] if tb then function removeCreature(tb) for x = ((tb.pos.fromPosition.x)-10), ((tb.pos.toPosition.x)+10) do for y = ((tb.pos.fromPosition.y)-10), ((tb.pos.toPosition.y)+10) do local m = getTopCreature({x=x, y=y, z= tb.pos.fromPosition.z}).uid if m ~= 0 and isMonster(m) then doRemoveCreature(m) end end end end doBroadcastMessage("The invasion of " .. tb.nome .. " started") for _,x in pairs(tb.m) do for s = 1, tonumber(x:match("%d+")) do pos = {x = math.random(tb.pos.fromPosition.x, tb.pos.toPosition.x), y = math.random(tb.pos.fromPosition.y, tb.pos.toPosition.y), z = tb.pos.fromPosition.z} doSummonCreature(x:match("%s(.+)"), pos) end end addEvent(removeCreature, tb.Time*60*1000, tb) end end return true end ]]></globalevent> </mod> Configuração: days = { ["Monday"] = { ["21:30"] = {nome = "Orshabaal", pos = {fromPosition = {x=184, y=55, z=7},toPosition = {x=188, y=58, z=7}},m = {"5 Fire Devil", "2 Orshabaal"}, Time = 1}, ["21:33"] = {nome = "Dragon", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}},m = {"100 Dragon"}, Time = 2} }, ["Tuesday"] = { ["10:44"] = {nome = "Demon", pos = {fromPosition = {x=184, y=55, z=7},toPosition = {x=188, y=58, z=7}}, m = {"5 Demon", "8 Fire Devil"}, Time = 1}, ["10:46"] = {nome = "Hydra", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}}, m = {"7 Hydra", "4 Cyclops"}, Time = 2} } } ["DIA"] = { ["HORA DA INVASÃO"] = {nome = "NOME DA INVASÃO", pos = {começo e final da área}, monster = {"MONSTROS"}, Time = para remover os monstro} } O dia da invasão é colocada entre " " e somente dia em inglês e a primeira letra maiúscula, exemplo: "Saturday" Depois são as hora da invasão, que é colocada entre " " e somente a hora e minuto, segundos não precisa exemplo: "15:00" As Posições estão entre { } adicionando as posições x, y e z, é o começo e final da área exemplo: pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}} fromPosition -- começo da área onde vai acontecer a raid toPosition -- final da área onde vai acontecer a raid Os monters tem um modo especial de configurar, vc coloca entre { }, e cada monstro entre " ", e entre as " " vc adiciona "QUANTIDADE MONSTRO", e para adicionar mais tipos de monstro se separa por virgulas, exemplo: {"40 Water Elemental", "5 Cyclops"} Time é uma função extra, é para caso ninguém participe do evento os monstros não fiquem pelo mapa, e é em minutos, exemplo: Time = 15
-
Frajolaa deu reputação a Skyforever em [Wand] Muda de efeitoOlá, galerinha do tibia king vi esse sistema em 1 site e eles estavam vendendo por 9,90 então resolvi fazer e postar de graça
primeiramente va em
data/talkactions/scripts crie um arquivo chamando wand.lua e coloque isso dentro
<talkaction words="!wand" event="script" value="wand.lua"/> agora em data/weapons/scripts crie um arquivo e renomeie para wand1.lua e adicione isso dentro: <wand id="xxx" level="50" mana="13" min="0" max="0" type="earth" event="script" value="wand1.lua"> <!-- wand of effects --> <vocation id="1"/> <vocation id="2"/> <vocation id="5"/> <vocation id="6"/> em items.xml <item id="xxx" article="the" name="nome da sua wand"> <attribute key="description" value="Você pode mudar o elemento da wand digitando !wand elemento desejado." /> <attribute key="weight" value="2300" /> <attribute key="weaponType" value="wand" /> <attribute key="shootType" value="holy" /> <attribute key="range" value="8" /> em data/creaturescripts/scripts login.lua antes do ultimo return true adicione essa linha: if getPlayerStorageValue(cid, 12036) == -1 then setPlayerStorageValue(cid, 12036, 1) end
PS : Testado, e funcionando
PS2 : Podem postar em outros fórums se colocarem créditos
PS3 : Tem que ser o mesmo id em items.xml talkactions.xml e weapons.xml
-
Frajolaa deu reputação a Renato em [Talkaction] Shop System [ !sell - !buy ] Fácil Configuração!Sim, tive a ideia ao ver o shop system do skyd, mas não peguei nada do script dele.
Instalando
talkactions/scripts/shop.lua
local config = {
["demon shield"] = {id = 2520, sell = 'yes 32000', buy = 'yes 70000' },
["magic plate armor"] = {id = 2472, sell = 'yes 120000', buy = 'no' },
["boots of haste"] = {id = 2195, sell = 'yes 30000', buy = 'no' }
}
function upperfirst(first, rest)
return first:upper()..rest:lower()
end
function onSay(cid, words, param, channel)
if (param == nil or param == '' or param == 'lista' or param == 'list') then
if (words == "!sell" or words == "/sell") then
str = "Showing items that you can sell:\n\n"
else
str = "Showing items that you can buy:\n\n"
end
for item, vars in pairs(config) do
if (words == "!sell" or words == "/sell") then
expl = string.explode(vars.sell, " ")
else
expl = string.explode(vars.buy, " ")
end
item = item:gsub("(%a)([%w_']*)", upperfirst)
if (expl[1] == 'no') then
str = str
else
str = str .. item.. " - " .. expl[2] .. " gps\n"
end
end
return doShowTextDialog(cid, 2160, str)
end
local item = config[param:lower()]
param = param:lower()
if (item) then
local sell = string.explode(item.sell, " ")
local buy = string.explode(item.buy, " ")
if (words == "!sell" or words == "/sell") then
if (sell[1] == "yes") then
if (doPlayerRemoveItem(cid, item.id, 1)) then
doPlayerAddMoney(cid, sell[2])
doSendMagicEffect(getPlayerPosition(cid), 30)
return doPlayerSendTextMessage(cid,29,"Here are, you sold "..param.." for "..sell[2].." gold coins.")
else
doSendMagicEffect(getPlayerPosition(cid), 2)
return doPlayerSendTextMessage(cid,29,"You don't have anything "..param.." to sell.")
end
else
doSendMagicEffect(getPlayerPosition(cid), 2)
return doPlayerSendTextMessage(cid,29,"Sorry, "..param.." cannot be sold.")
end
else
if (buy[1] == "yes") then
if (doPlayerRemoveMoney(cid, buy[2])) then
doPlayerAddItem(cid, item.id)
doSendMagicEffect(getPlayerPosition(cid), 28)
return doPlayerSendTextMessage(cid,29,"Here are, you bought "..param.." for "..buy[2].." gold coins.")
else
doSendMagicEffect(getPlayerPosition(cid), 2)
return doPlayerSendTextMessage(cid,29,"You don't have enough money.")
end
else
doSendMagicEffect(getPlayerPosition(cid), 2)
return doPlayerSendTextMessage(cid,29,"Sorry, "..param.." cannot be bought.")
end
end
else
doSendMagicEffect(getPlayerPosition(cid), 2)
if (words == "!sell") then
return doPlayerSendTextMessage(cid,29,"Sorry, this item cannot be sold or it does't exist.")
else
return doPlayerSendTextMessage(cid,29,"Sorry, this item cannot be bought or it does't exist.")
end
end
end
[/code] [b]talkactions/talkactions.xml[/b] [code]<talkaction words="!sell;/sell;!buy;/buy" event="script" value="shop.lua"/> Adicionando novos itens
♣ Config Observem no começo do código estas linhas: local config = {
["demon shield"] = {id = 2520, sell = 'yes 32000', buy = 'yes 70000' },
["magic plate armor"] = {id = 2472, sell = 'yes 120000', buy = 'yes 60000' },
["boots of haste"] = {id = 2195, sell = 'yes 30000', buy = 'no' }
}[/code] Seguindo uma ordem óbvia, adicionem abaixo do boots of haste e antes do '}' que fecha o config. assim para adicionar sigam o modelo ["nome do item"], repectivamente de suas variáveis. [b]♣ Variáveis[/b] [color=#800080][b]id[/b][/color] - é onde você coloca o id do item [color=#800080][b]sell [/b][/color]- você precisa colocar se o item pode ser vendido por "yes" ou "no", caso for yes de um espaço (se não der espaço não funciona) e bote o valor em gold coins (não é k) [color=#800080][b]buy [/b][/color]- segue a ordem igual ao sell porem é se o item pode ser comprado pelo !buy ou não, e o preço que o player pagará. [b]♣ Exemplos[/b] Assim, digamos que desejo acrescentar um mastermind shield onde o player pode vender por 60k e comprar por 120k, adicionarei: [code]["mastermind shield"] = {id = 2514, sell = 'yes 60000', buy = 'yes 120000' }, Em seguida quero adicionar uma soft boots que pode ser vendida por 300k, mas NÃO PODE ser comprada. Colocarei: ["soft boots"] = {id = 6132, sell = 'yes 300000', buy = 'no' }, local config = {
["demon shield"] = {id = 2520, sell = 'yes 32000', buy = 'yes 70000' },
["magic plate armor"] = {id = 2472, sell = 'yes 120000', buy = 'no' },
["boots of haste"] = {id = 2195, sell = 'yes 30000', buy = 'yes 60000' },
["mastermind shield"] = {id = 2514, sell = 'yes 60000', buy = 'yes 120000' },
["soft boots"] = {id = 6132, sell = 'yes 300000', buy = 'no' }
}[/code]
[color=#ff0000][size=5][b]Atenção![/b][/size][/color]
[color=#ff0000]Reparem que em todas as linhas finalizam-se com }, mas na última há ausência da vírgula, isto ocorre por que não pode ter vírgula no último, não sei ao certo se dará erro, não cheguei a testar, mas em muitas linguagens de programação ocorre um erro. Então é melhor ficar atento.[/color]
Creio que passei as devidas instruções corretamente, e não é nenhum bixo de sete cabeças... qualquer um que tenha uma mentalidade normal conseguirá configurar.
[size=5][b]
[size=6][color=#006400]Explicando as talkactions[/color][/size]
[/b][/size]
[b]♣ Comprando[/b]
Bom, agora que já adicionou todos os items, vou explicar como funciona:
O player comprará uma boh (item sugestivo) item por: [color=#800080][b]!buy boots of haste[/b][/color], caso não tenha grana, não vai conseguir, caso tenha comprará.
[b]♣ Vendendo[/b]
O mesmo quando ele for vender, ele falará: [color=#800080][b]!sell boots of haste[/b][/color], caso não tenha o item, o script negará, caso tenha o item some e o dinheiro aparece (:
[center][/center]
[center][/center]
[b]♣ Lista de items[/b]
[i]Ohh, não sei quais items pode ser comprados, e também não sei quanto custa, e agora?[/i]
Diga [b][color=#800080]!buy[/color][/b], ou [b][color=#800080]!buy[/color] [color=#800080]list [/color][/b]ou [b][color=#800080]!buy[/color] [color=#800080]lista[/color][/b] para ver todos os items
[center][/center]
[i]O mesmo com os items que podem ser vendidos:[/i]
[b][color=#800080]!sell[/color][/b], [b][color=#800080]!sell list[/color][/b] ou [b][color=#800080]!sell lista[/color][/b]
[center][/center]
[size=7][color=#006400]Versão 2[/color][/size]
Deixo aberto sugestões para a versão 2
E claro, caso haja, correção de bugs.
__________________
[b]♣ Créditos[/b]
Renato - Desenvolvimento
skydangerous - Ideia
Então, meu config ficará desta forma: -
Frajolaa deu reputação a KekezitoLHP em [ Pedido ] NPC DE TROCAquer coloca pra vende mais item edita aqui
local t = { [2195] = {price = 15} -- [iD DO ITEM QUE SERÁ VENDIDO] = {QUANTO IRÁ CUSTAR} }
local t = { [2195] = {price = 15}, -- [iD DO ITEM QUE SERÁ VENDIDO] = {QUANTO IRÁ CUSTAR} [2195] = {price = 15} } LEMBRA-SE ULTIMO NAO PRECISA DE VIGULA... Se ajudei rep++
-
Frajolaa deu reputação a KekezitoLHP em [ Pedido ] NPC DE TROCAlocal keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local shopWindow = {} local moeda = 9020 -- [iD DA MOEDA] local t = { [2195] = {price = 15} -- [iD DO ITEM QUE SERÁ VENDIDO] = {QUANTO IRÁ CUSTAR} } local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks) if t[item] and not doPlayerRemoveItem(cid, moeda, t[item].price) then selfSay("você não tem "..t[item].price.." "..getItemNameById(moeda), cid) else doPlayerAddItem(cid, item) selfSay("aqui está seu item!", cid) end return true end if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then for var, ret in pairs(t) do table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = getItemNameById(var)}) end openShopWindow(cid, shopWindow, onBuy, onSell) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) COLOCA NO itensvip.lua
-
Frajolaa deu reputação a KekezitoLHP em [ Pedido ] NPC DE TROCAvai em ...\data\npc copie um arquivo qualquer e renomeie para Strike.xml depois abra com o bloco de notas, apague oque estiver dentro e coloque isso.
<?xml version="1.0"?> <npc name="Strike" script="data/npc/scripts/itensvip.lua" access="5" lookdir="2" walkinterval="0"> <health now="200" max="200" /> <look type="324" head="95" body="95" legs="95" feet="95" addons="3" /> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Veio trocar uns vips coins por itens? Diga {vips}." /> </parameters> </npc> vai em ...\data\npc\scripts copie qualquer arquivo que esteje la renomeie para itensvip.lua abra com bloco de notas, apague oque estiver dentro e coloque isso.
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end -- STRIKE START -- function jestervip(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if getPlayerItemCount(cid,2157) >= 50 then if doPlayerRemoveItem(cid,2157,50) then npcHandler:say('Aqui esta seu item!', cid) doPlayerAddItem(cid,7424,1) end else npcHandler:say('Voce nao tem itens necessarios!', cid) end end -- STRIKE END -- keywordHandler:addKeyword({'vips'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Eu troco {jester staff} por vips coins."}) local node1 = keywordHandler:addKeyword({'jester staff'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer trocar 50 vips coins por 1 jester staff?? Yes or no??'}) node1:addChildKeyword({'yes'}, jestervip, {npcHandler = npcHandler, onlyFocus = true, reset = true}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, volte quando quizer negociar!', reset = true}) npcHandler:addModule(FocusModule:new())
onde esta 2157 é o id do item que o npc vai pegar no meu caso eh 2157.
onde esta 50 é a quantidade de vip coins que o npc quer para vender o iten no meu caso são 50.
onde ta 7424 é o id no item que o npc está vendendo no meu caso é 7424.
onde ta 1 é a quantidade de itens que o npc vai entregar quando o player efetuar a compra, no meu caso ele so vai dar 1 iten (aconcelho nao mexer) só se vc quizer que o npc vende mais...
onde ta vip é a fala que o player vai dizer para que o npc diga qual itens ele está vendendo.
onde ta Eu troco {jester staff} por vips coins essa é a fala do npc.
onde ta jester staff é oq o player tem que falar para comprar o item no meu caso o player fala jester staff e ai o npc diz se quer compra ou nao...
onde ta Voce quer trocar 50 vips coins por 1 jester staff?? Yes or no?? essa eh a fala do npc para saber se o player quer compra ou nao...
-
Frajolaa deu reputação a ViitinG em Ajuda! Como faz outra area vip ?"data/movements/scripts/segundavip"
function onStepIn(cid, item, position, fromPosition) local config = { msgDenied = "Somente players VIP podem passar aqui.", msgWelcome = "Seja bem-vindo a area VIP!" } vip = getPlayerStorageValue(cid,18966) if vip == -1 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Adquira Sua Vip.") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return true end doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Bom Proveito.") return true end "data/movements/movements.xml"
<movevent type="StepIn" actionid="18966" event="script" value="segundavip.lua"/> -
Frajolaa deu reputação a leandrovp em Estou querendo criar a area vip do meu otTESTAR PORQUE ESSE SCRIPT EU FIZ PRO MEU BAIAK NAO SEI SE EM TFS FUNCIONA
Vai em data/moviments/script e crie um arquivo .lua com nome de sua escolha
-- Script Feito por Leandro Machado
function onStepIn(cid, item, position, fromPosition)
local config = {
msgDenied = "Você nao e VIP DONATE Para comprar Acesse : http://baiak-lero.bl...gspot.com.br/!",
msgWelcome = "Bem Vindo a area VIP DONATE!"
}
if getPlayerStorageValue(cid, 13500) - os.time() <= 0 then
doTeleportThing(cid, fromPosition, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
return TRUE
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome)
return TRUE
end
--
Aonde está em azul é action id do pizo
Em moviments.xml coloque :
<movevent type="StepIn" actionid="13500" event="script" value="sistemavip.lua"/>
--
Agora o Item para Clicar e ganhar
vai em Actions/script e criei um arquivo.lua com nome de sua escolha
------
-- Script Feito Por Leandro Machado
function onUse(cid, item, fromPosition, itemEx, toPosition)
local config={
removeOnUse = "yes" -- remover quando usar ("yes" or "no")
}
local days = 15 -- coloque os dias que serão a VIP!
local daysvalue = days * 24 * 60 * 60
local storageplayer = getPlayerStorageValue(cid, 13500)
local timenow = os.time()
if getPlayerStorageValue(cid, 13500) - os.time() <= 0 then
time = timenow + daysvalue
else
time = storageplayer + daysvalue
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")
setPlayerStorageValue(cid, 13500, time)
local quantity = math.floor((getPlayerStorageValue(cid, 13500) - timenow)/(24 * 60 * 60))
doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")
if (config.removeOnUse == "yes") then
doRemoveItem(item.uid, 1)
end
return TRUE
end
-----
Aonde ta em azul é o Action ID DO piso que voce coloco no primeiro Script
Aonde ta em vermelhor é os dias de vip que vai ganhar quando clicar no item
actions.xml voce coloca
-----
<action itemid="10309" script="sistemavip.lua"/>
Aonde esta em verde é o ID Do item usado!
--------
Ajudei? REP + Por Favor *-*