Tópico já existente no fórum, evite cometer double post.
Se você ainda não sabe o que venha a ser double post ou tem dúvidas sobre as regras do fórum, é necessário que leia-as aqui.
Abraços.
info
Grupo: Herói
Registrado: 17/02/08
Posts: 2.5k
Reputação: +193

È tanta posição que o xtibia cria, que esses que competem por um cargo acabam esquecendo do principal "ajudar".
Se tudo for feito pelo "pesquisar" não precisa de tantos cargos assim no xitbia =D...
Double post não é quando alguem postar duas mensagens uma atraz da outra dentro do tópico? Será que estou ficando mais burro ou vocês que estão sendo muitos espertos, aldaciosos, malandrões?!?
Henrique Moura
Messenger - kakilow123@hotmail.com
E-mail - moura_820@hotmail.com
Skype - henriquekakilo
Entrada como estagiário - 24/09/09 <<<<< :withstupidsmiley:
Editado Setembro 28 por Kubos
info
Grupo: Herói
Registrado: 17/02/08
Posts: 2.5k
Reputação: +193

Eu estou mantendo a ordem na área, acredito que assim é melhor para organizar e ajudar todos usuários.
E se você viu o "link", é de um outro tópico que o mesmo usuário criou.
Abraços.
Editado Setembro 28 por KaKilo
desculpa pelo topico repetido. eu sei que fiz mal, mas e que nao sabia mesmo em qual dos dois colocar.
esse topico nao e 100% pedido de script, pq eu ja deixei aki a ideia (algoritimia) de como deve ser programado o script.
mas tambem n e 100% pedido de ajuda, pq de uma certa forma eu pedi um script.
entao postei nos 2.
desculpa..
kubos, ja dei uma olhada, e nao encontro nada que satisfaça a minha necessidade..
Tópico já existente no fórum, evite cometer double post.Se você ainda não sabe o que venha a ser double post ou tem dúvidas sobre as regras do fórum, é necessário que leia-as aqui.
Link
Abraços.
Pensei que o link fosse para as regras =D...imaginação fertil a minha!
Mas tudo bem, todos fazemos cagada, mas seria melhor em vez de repreender tentar ajudar.
Se quer repreender vire policial! Você está no lugar errado amigo.
@Tópico
Sua idéia seria aplicada aonde, algum tipo de evento?
Editado Setembro 28 por Kubos
nao.
e simples, ha uma sala, com um npc na porta, ao falar com esse npc, o player pagara uma certa quantia e podera entrar na sala, onde ele podera permanecer por 1 hora. se dentro de 1 hora ele nao sair, ele deveria ser teleportado para fora da sala.
e aqui vai entrar o script, preciso q ele conte o tempo q esse player esta dentro da sala, e apos 1 hora, teleporte o player.
a forma como eu imaginei foi a que eu postei, e ja tenho o npc criado, ao entrar na sala, e registado na base de dados os dois storages, um com o tempo restante do player, e o outro indicando q o player esta la dentro.. ja tenho o sistema feito para que o storage apenas fique com value = 1 se o player realmente estiver la dentro.
o que preciso e simples, 1 funçao q a cada x tempo, verifica o storage do player, se for = 1, significa que ele esta la dentro da sala, entao vai ao outro storage e remove de la o x tempo em que a funçao e chamada.
info
Grupo: Conde
Registrado: 07/05/08
Posts: 612
Reputação: +12
Char no Tibia: leviana luciferiana

agora que você detalhou melhor como é o funcionamento do script fica mais facil pros scripters fazerem ele.
lembre-se quanto mais informações você deixar melhor é pros scripters le ajudarem a fazer o que queres.
se eu tiver um tempinho e paciencia eu faço ele pra você.
Obrigado pela atençao..
eu nao necessito mesmo do script. apenas da funçao que posso usar para fazer isso.
mas ja avancei mais um pouco, ja consegui fazer o script.
o meu problema agora e so conseguir criar um evento para que ele seja executado.
ha possibilidades de criar uma funçao quando uma criatura e atacada??
ou seja, um script por exemplo pro scarab, quando o scarab e atacado, executa um script. chama uma funçao e manda pra la o CID que o atacou.
assim eu colocaria o script pra executar sempre q a tal criatura fosse atacada, e no script iria buscar o os.time(). e depois verificar no playerstorage. e no caso do os.time() >= playerstorage entao teleporta o player pra fora da sala.
nao preciso que façam o script pra mim. so quero que me digam como coloco um script pra ser executado quando uma criatura e atacad.
info
Grupo: Conde
Registrado: 07/05/08
Posts: 612
Reputação: +12
Char no Tibia: leviana luciferiana

é mais facil você adicionar um evento ao passar na porta já que ele não pode retorna.
usa isso no script da porta e põe a função teleporte pra ele se teleportado pra fora da arena em 1 hora.
addEvent(teleporte, 1*1000*3600, {cid=cid})
obrigado pela ajuda.
mas o que eu preciso nao pode ser isso.
pq o player pode sim sair da sala antes de terminar a 1 hora. e tambem pode fazer logout dentro da sala.
o que eu queria era mesmo colocar um script quando atacasse um criatura..
pq isso iria me servir nao so nesse sistema, como em outro sistema q estou a desenvolver.
queria por exemplo contar o numero de rotworm que um player ja matou. por exemplo.
se eu tenho uma criatura, como faço pra adicionar a ele um scipt quando ela for atacada, e preciso receber por parametros so o CID de quem atacou.
obrigado
Opa, esse script ele conta quantos monstros um jogador matou, claro que os monstros adicionados no script.
veja se pode ajudar você.
Créditos pirl0
data/creaturescripts/scripts/ criar arquivo >>> monsters.lua
function onKill(cid, target)
-- Config --
local storage = 666 -- Storage value of the script.
local script =
{
name = getCreatureName(target), -- Do not edit.
how_check = getPlayerStorageValue(cid,999), -- Do not edit.
killed = getPlayerStorageValue(cid,storage), -- Do not edit.
skull_check = getCreatureSkullType(target) -- Do not edit.
}
local how = 3 -- How many monsters need to get reput point.
local rep_for_monster = 1 -- How many reputation give for kill monster.
local rep_for_player = 5 -- How many reputation give for kill player without skull.
local rep_for_whiteskull = 10 -- How many reputation give for kill player with white skull.
local rep_for_redskull = 15 -- How many reputation give for kill player with red skull.
local rep_for_blackskull = 20 -- How many reputation give for kill player with black skull.
local points = script.killed + 1
local msg = "You have now ".. points .." points."
local msg_monster = "Congratulations, you have slained ".. how .." monsters and you gained ".. rep_for_monster.." reputation point." -- Standard message for killing monster you can edit this.
local msg_player = "Congratulations, you have killed a ".. script.name .." and you gained ".. rep_for_player .." reputation points." -- Standard message for killing player without skull you can edit this.
local msg_white = "Congratulations, you have killed a ".. script.name .." and you gained ".. rep_for_whiteskull .." reputation points." -- Standard message for killing player with white skull you can edit this.
local msg_red = "Congratulations, you have killed a ".. script.name .." and you gained ".. rep_for_redskull .." reputation points." -- Standard message for killing player with red skull you can edit this.
local msg_black = "Congratulations, you have killed a ".. script.name .." and you gained ".. rep_for_blackskull .." reputation points." -- Standard message for killing player with black skull you can edit this.
-- Script --
if(getPlayerStorageValue(cid,999) >= how -1) then
setPlayerStorageValue(cid, storage,script.killed + rep_for_monster)
doPlayerSendTextMessage(cid,22,msg_monster)
doPlayerSendTextMessage(cid,23,msg)
setPlayerStorageValue(cid, 999,0)
return TRUE
elseif(isMonster(target) == TRUE) then
setPlayerStorageValue(cid, 999,script.how_check + 1)
return TRUE
elseif(isPlayer(target) == TRUE) then
setPlayerStorageValue(cid, storage,script.killed + rep_for_player)
doPlayerSendTextMessage(cid,22,msg_player)
doPlayerSendTextMessage(cid,23,msg)
return TRUE
elseif(isPlayer(target) == TRUE) and skull_check == 3 then
setPlayerStorageValue(cid, storage,script.killed + rep_for_whiteskull)
doPlayerSendTextMessage(cid,22,msg_white)
doPlayerSendTextMessage(cid,23,msg)
return TRUE
elseif(isPlayer(target) == TRUE) and skull_check == 4 then
setPlayerStorageValue(cid, storage,script.killed + rep_for_redskull)
doPlayerSendTextMessage(cid,22,msg_red)
doPlayerSendTextMessage(cid,23,msg)
return TRUE
elseif(isPlayer(target) == TRUE) and skull_check == 5 then
setPlayerStorageValue(cid, storage,script.killed + rep_for_blackskull)
doPlayerSendTextMessage(cid,22,msg_black)
doPlayerSendTextMessage(cid,23,msg)
return TRUE
end
end
creaturescripts.xml
<event type="kill" name="ReputationFromMonsters" event="script" value="reputation from monsters.lua"/>
login.lua
registerCreatureEvent(cid, "ReputationFromMonsters")
Sistema de reoutação:
data/talkactions/scripts criar aquivo >>> getrep.lua
function onSay(cid, words, param, channel) -- Config -- storage = 666 local reputation = getPlayerStorageValue(cid,storage) -- Script -- if reputation == 1 or reputation == 0 then doPlayerSendCancel(cid, "You have ".. reputation .." reputation point.") else doPlayerSendCancel(cid, "You have ".. reputation .." reputation points.") end return TRUE -- Here end
talkactions.xml
<talkaction words="!reputation" hide="yes" event="script" value="getrep.lua"/> <talkaction words="/reputation" hide="yes" event="script" value="getrep.lua"/>
Ainda o cara fez sistema para site, olha ae:
characters.php na linha 99 troque isso
$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Created:</TD><TD>'.date("j F Y, g:i a", $player->getCreated()).'</TD></TR>';
por isso
if($config['site']['show_reputation'])
{
$id = $player->getCustomField("id");
if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;
$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH=10%>Reputation:</TD>';
$rep = $SQL->query('SELECT `value` FROM `player_storage` WHERE `player_id` = '.$id.' and `key` = '.$config['site']['show_reputation_storage'].';')->fetch();
if($id >= 0) {
$main_content .= '<TD><B>'.$rep[value].'</B></TD></TR>';
config.php
$config['site']['show_reputation_storage'] = 666;// the storage of reputation $config['site']['show_reputation'] = 1;// show 1 = yes, 0 = no
info
Grupo: Barão
Registrado: 01/07/09
Posts: 216
Reputação: +4

data/movements/scripts crie o arquivo timeroom.lua e coloque isto:
function onStepIn(cid, item, pos)
local config = {
newPos = {x=?, y=?, z=?},
effect = 13,
timeToLeave = 60 * 60 * 1000,
storage = 53550,
}
if isPlayer(cid) then
if getPlayerStorageValue(cid, config.storage) <= 0 then
addEvent(doTeleportThing, config.timeToLeave, cid, config.newPos)
addEvent(doSendMagicEffect, config.timeToLeave, config.newPos, config.effect)
addEvent(doPlayerSetStorageValue, config.timeToLeave, cid, config.storage, 0)
doPlayerSetStorageValue(cid, config.storage, 1)
end
end
return true
end
data/movements/movevents.xml:
<movevent type="StepIn" event="script" value="timeroom.lua"/>
info
Grupo: Artesão
Registrado: 29/04/09
Posts: 136
Reputação: +3

info
Grupo: Banidos
Registrado: 07/08/06
Posts: 1
Reputação: 0
ola pessoal,
estou a tentar desenvolver um script, mas estou com alguma dificuldade. por isso vim aqui pra ver se alguem me ajuda.
o script devera contar a quanto tempo um player esta em uma determinada sala. e se este tempo for maior que 1800 segundos, ele deve ser teleportado para fora da sala.
Esta sala apenas tem entrada por 1 porta, q tem ja um uid, com uma action, onde o player ao clicar na porta, e feito o setstoragevalue, para o storage 4098 -> com o tempo restante la dentro ( 1800 ), e para o storage 4099 -> o valor 1, significa q ele esta la dentro.
Gostaria entao de um script, q a cada segundo, ou minuto, verifique se o storage 4099 e = a 1. e se for, diminui 1 segundo ou minuto no storage 4098.. se este chegar a 0. o player e teleportado para a location x=1687 y=823 z=7.
obrigado a todos.