Pra que foi isto poderia explicar um poco mais?
- Fórum
- OTServ
- Discussion
- Noticias - Arquivo
- [Arquivado]Script de Sistema De Montaria
[Arquivado]Script de Sistema De Montaria
Por Diogo, 08 de abr. de 2009 em Noticias - Arquivo
info
Grupo: Marquês
Registrado: 16/07/08
Posts: 1.1k
Reputação: +20
Char no Tibia: -
Isso é chamado algoritmo colega, a partir dele vamos criar o(s) script(s) do sistema de montaria.
Como quero que o sistema seja algo desenvolvido em conjunto com os scripters do XTibia, não irei fazer nenhum tipo de programação a menos que seja necessário.
Irei apenas dar idéias e coordenar o desenvolvimento.
No caso, estou dizendo como seria o sistema:
O cara fala !ride, um contador regressivo dele falando de 5 a 1 aparece.
Quando chegar a 0, ele transforma a outfit para a outfit de montaria e a velocidade aumenta.
Enquanto estiver "montado", se receber um ataque que tire vida ele sai da montaria e a velocidade volta ao normal.
É isso =]
info
Grupo: Herói
Registrado: 05/11/07
Posts: 544
Reputação: +70

Muito Bom , Se Foçe Scripter (Quero Ser) Eu Ajudaria ... Mais Como Sou Um Mizero Mapper
" , Não Tem Como Ajuda-lo , Mais Se Conseguir E Deixar Bem Massa Colocarei No Meu Otserver ^.- ![]()
Atenciosamente , Critical
info
Grupo: Herói
Registrado: 17/02/08
Posts: 2.5k
Reputação: +193

@Kaonic
Isso é demais para sua cabeça, não que você seja burro.
Mas é melhor você não entrar nessa parte ou você pode ficar MUITO confuso.
@Tópico
Estou vendo uns scripts aqui em outro fórum e acho que é possivel adaptalos.
Quando eu terminar de ver aqui vou ver se é realmente possivel.
Abraços.
@KaKiLo
Não iremos adaptar scripts de outros fórums, um sistema desses é tão fácil que não vale a pena a dor de cabeça sobre ripping / plágio que uma modificação inocente pode causar depois.
info
Grupo: Conde
Registrado: 18/12/05
Posts: 912
Reputação: +86
Gênero: Masculino
Char no Tibia: Kohzete

hm achei bom do jeito que você fez
Eu sei muito pouco de c++
+ não ficaria melhor em c++ do que em lua ?
A ultima vez que entendia uma source era na 7.92 e na epoca era + facil codificar lá do que em lua
(até porque o zorzin sabia + c++ do q eu sabia de lua)
Agora vou explicar pq em c++
Tipo antigamente quando se metia um while de grande tempo no caso dele apanhar
O ot travava e dava uns lag lgl...
Só prescisamos checar isso agora...
Essa quarta é a ultima prova do trimestre ai eu vejo se dou uma mão
Opa!
Realmente, loops infinitos engolem o processador do PC, maaaaas...
Não é possível fazer sem while?
Tipo, como funciona a função registerCreatureEvent(uid, eventName) ?
Poderíamos também usar a addEvent(callback, delay, ...), para evitar whiles.
E a onThink(), só pode ser usada em NPCs ou tem como usar em scripts para players também?
Não existe nenhuma forma de manipular todos os eventos que acontecem com um jogador (tipo, AO SER ATACADO)?
Eu quero evitar ao máximo ter que editar as sources do OTServ para que qualquer um possa usar o sistema de montarias sem dificuldades.
Editado Abril 14 por VaL
info
Grupo: Marquês
Registrado: 01/03/06
Posts: 1k
Reputação: +38
Gênero: Masculino

eu já fiz em lua há 1 ano atrás, nem sei onde tá mais meu script, já formatei 10 vezes o pc, mas é fácil o sistema :>
info
Grupo: Artesão
Registrado: 11/04/09
Posts: 118
Reputação: +4
Char no Tibia: Boneco Zoado

Cara, ta bem bom isso...
fiquei sabendo que o global tem como andar de cavalo! verdade ???????? O_O
mas to loquin pra esta outfit sair logo ![]()
info
Grupo: Conde
Registrado: 18/12/05
Posts: 912
Reputação: +86
Gênero: Masculino
Char no Tibia: Kohzete

eh da pra fazer sem...
Eu to muito por fora dessas novas creature scripts
No caso ai fariamos uma talk action
O problema é saber quando ele tomar dano =~
acho que creature events não tem esse comando e do mesmo jeito acho que teria que usar um loop o0
Uma coisa que pode funcionar é olhar as novas spells... pode ser q haja alguma função lá ![]()
Cara, ta bem bom isso...fiquei sabendo que o global tem como andar de cavalo! verdade ???????? O_O
mas to loquin pra esta outfit sair logo
Andar á Cavalo??
Onde ouviu isto??
Que locura!!
VAL
TalkAction para começar (!ride)
SE char tiver comprado montaria
Começar countdown (5... 4... 3... 2... 1...) visível para todos perto
SE char sofrer ataque no processo de countdown
SE não perder dano
Transformar outfit
Aumentar velocidade (25%)
CHAMAR PARTE 2
SENÃO
CANCELAR_MONTARIA()
FIMSE
FIMSE
SENÃO
Mensagem de que não comprou montaria
FIMSE
Gostei muito da construção do seu Algoritmo
... mais podemos tentar reduzir em apenas 1 script.
Dificil, mais n impossivel xD...
TalkAction Declare_Inicio (!ride)
SE char tiver comprado montaria
Começa a contagem ("5... 4... 3... 2... 1...") visível para todos perto
SE char sofrer ataque no processo de contagem
SE char perder vida
INICIO
CANCELAR_MONTARIA()
CASO_CONTRARIO(Senao/Else)
Transformar outfit
Aumentar velocidade (25%)
FIMSE
FIMSE
SENÃO
Mensagem de que não comprou montaria
FIMSE
Eu apenas revisei o script e criei um novo algoritmo com base nos scripts. O seu está muito melhor em relação a programação, pq eh como na criação de um programa, se vc fica declarando Várias VARIAVEIS vc acaba se perdendo (odeio falar de PORTUGOL) hauHAUHuah... C++ ja eh um poko mais complexo, depois que vc fica 1 ano aprendendo a linguagem PASCAL vc se perde qdo começa a usar C xD
abraços
info
Grupo: Conde
Registrado: 18/12/05
Posts: 912
Reputação: +86
Gênero: Masculino
Char no Tibia: Kohzete

@up
eh verdade um fica + facil...
usar um script só
pode usar funções diferentes
+ acho que terá que criar algo em c++ ainda
Agora que acabo as provas vou ver se consigo acelerar o que tenho de pendente aqui e dar uma mãozinha...
O dificil é que tenho que programar em 4 linguagens de uma vez e ainda fazer umas coisas em lua...
OYOY
Tá que o tópico tá beeeeeeeem antigo masss tem tempos que não entro aqui e vim me atualizar RERE
Existe algum tempo de uso da montaria ou o player sai da montaria qndo quizer?
E a montaria é permanente ou acaba quando o tempo acabar ou quando o player sair da montaria?
onThink() n tem jeito de ser usado com players mesmo não (a não ser que as coisas no otserv tenham mudado MUITO nos últimos 2 anos) ![]()
addCreatureEvent() até onde eu sei não tem o evento de hit (só onLogin, onLogout, onDie, onKill e onAdvance)
Então pensei, na hora de fazer o countdown vamos precisar de um addEvent né? Porquê não checar a life do player a cada número? Colocar um while ali é realmente desnecessário ![]()
Exemplo (bem escopo):
function countdown(tbl)
if tbl.counter == 0 then
MONTARIA AQUI!
RETURN
end
lifestats = getCreatureHealth(tbl.cid)
if lifestats >= tbl.life -- LEVANDO EM CONTA HEALS
tbl.life = lifestats -- EVITAR QUE O PLAYER LEVE HEAL DE SUPONHAMOS 100
-- E LEVE DANO DE 50 E CONTINUE O COUNTDOWN
doSendMagicEffect(getCreaturePosition(tbl.cid), TYPE)
doCreatureSay(tbl.cid, tbl.counter .. "!!", TYPE)
tbl.counter = tbl.counter - 1
addEvent(countdown,TEMPO,tbl)
end
end
function onSay(cid, words, param)
SE char tiver comprado montaria
countdown({counter=5, cid=cid, life=getCreatureHealth(cid)})
FIMSE
end
P.S.: fiz meio correndo, se tiver alguma coisa errada pm-me ![]()
e - err - desculpa, não consegui fazer sem misturar Algorítimo com AddEvent :s
Espero que dê pra intender
CyA!
P.S.: Val, parabéns pelo trabalho que vc tá fazendo aki no fórum, to pagando pal... Se precisar de alguma coisa grita ae que tamo aki qqqq
Editado Junho 26 por frerety






info
Grupo: Visconde
Registrado: 10/03/06
Posts: 366
Reputação: +29
Fala desenvolvedores do meu XTibia!
O negócio é o seguinte, enquanto os designers preguiçosos super legais do XTibia não cuidam da parte de outfit do sistema, que tal trabalharmos a parte do script?
Dêem idéias, desenvolvam... Enfim, façam qualquer coisa aqui. As melhores idéias / scripts serão escolhidas e adicionadas ao script oficial, sendo mantidos os devidos créditos, obviamente.
Para começar, o sistema é o seguinte:
Passando para a parte da programação:
Variáveis
Parte 1:
Parte 2:
CANCELAR_MONTARIA()
Foi nisso que pensei, alguém tem alguma sugestão de modificação?
Editado Abril 8 por VaL