

Darkraus
Campones-
Total de itens
41 -
Registro em
-
Última visita
Tudo que Darkraus postou
-
também sou iniciante e me pergunto muito sobre as linhas... fui fazer um script semelhante a este de invocar monstros com determinada chance ( a unica diferença é que eu fiz para variar por ml). HAHAHA deu mais de 200 linhas, mas, funcionando é o que conta. ( pelo menos por agora ). Parabéns pelo script, se for mesmo o primeiro deve ter dado um trabalho maligno. reputado.
-
[Arquivado]Quem é você, player? Ganhe 05 REP + Conquista!
tópico respondeu ao Administrador de Darkraus em Noticias - Arquivo
Opa, meu olho bugado não viu o campo do nick, se só com o e-mail não for possivel, avisa que eu faço outro haha. (tavaescondidonumlugarbranco)- 60 respostas
-
- quem é você?
- player
-
(e 2 mais)
Tags:
-
embora essa versão se mostre mais complexa, esteticamente eu achei a v1.0 mais bonita, alguem tem ela salva? haha adoraria usa-la e estuda-la.
-
Equipe XTibia, sei que não nas regras consta uma limiar muito clara sobre nomes mas, não custa tentar. quando registrei essa conta no XTibia não havia nenhuma pretensão de participar da comunidade de forma efetiva como iniciei recentemente. Meu único objetivo era entrar e parasitar o conteúdo (eu sei, triste) mas, recentemente iniciei estudos em scripting e estenderei esses estudos para outras áreas posteriormente. Logo este nick foi o primeiro que me foi a cabeça, sendo ridiculo e sem nenhum sentido, gostaria de muda-lo para um nome que me identifique mais, um nick que seja mais minha cara. se for possivel essa troca, mediante a um motivo um tanto quanto significativo pra mim, gostaria que meu nick fosse Rufferius ou Wartrox. obrigado pela atenção. no aguardo.
-
Que maravilha, comecei meus estudos recentemente e preciso de um conteúdo intermediário e quem sabe um avançado. é bem tenso você pegar scripts de scripters experientes e ter algumas declarações que desconheço ( geralmente as que são oriundas do próprio Lua, por exemplo, quando aparecem "i", "n" no script já fico totalmente confuso haha. sendo você quem é, dá para esperar grandiosas aulas. no aguardo haha.
-
Os 2 erros são relacionados a end. o primeiro não tenho certeza. o segundo está faltando um end para fechar uma função. tome cuidado também com os IDS duplicados, pode causar conflito. boa sorte.
-
Para poder usar efeitos a mais que o normal, vc precisa liberar nas sources. caso você tenha as sources do seu distro, os lugares para edição se não me engano são: Tools.cpp e Const.h posso estar errado. boa sorte.
-
Acho que só seria possivel usando OTCliente (opcodes). pois até onde sei, não existe função nos distros que conheço que verifica esse tipo de coisa. mas a area de OTC do server não está muito ativa ainda, é uma area muito mais complexa de trabalhar. é uma otima ideia, e um metodo provavelmente funcional mas... muito complicada. se tiver paciencia e interesse em programação, pode correr atras destas palavras chaves e tentar aprender algo. quem sabe daqui um tempo, você mesmo não traz esse brilhante conteudo para o Xtibia. uma segunda opção é esperar, quem sabe alguem com conhecimento nessa area apareça. no mais... boa sorte.
-
fazer em moveevents parece mais facil... famosa gambiarra haha. vc coloca um piso pra verificar se o player tem vocação (getPlayerVocation). caso o valor retornado seja igual ou maior que 0, manda colocar vocation 0. OU faz um math.random. acho que deve funcionar (doPlayerSetVocation(cid, math.random(1, 4)). mas sempre que mexo com vocations, conquisto uns bugs nunca vistos... tipo quando o player desloga a vocation fica sem nada. enfim, espero que algum player experiente te ajude nessa.
-
vou tentar ser mais claro no que eu disse pois não entendi nd do que vc escreveu também haha. seguinte, existem servidores que os primeiros items do personagem são dados por um script "Firstitems" e servidores que os personagens nascem com os itens semelhantes aos do account manager. CASO seu servidor seja o que opta pelo script FIRSTITEMS, é possivel RETIRAR o Coins Case de la, deixando assim esse slot vazio. (para que vc use seus revives, potions, poke bolas e etc). SOBRE A BIKE o slot que vc deseja colocar ela está associado ao SLOT 9 (CONST_SLOT_RING) em servidores normais. A ideia é a mesma porem no seu servidor derivado deve ter outro nome. siga o raciocinio: Este é o Anel do Casamento : </item> <item id="2121" article="a" name="wedding ring"> <attribute key="weight" value="40" /> <attribute key="slotType" value="ring" /> a tag que torna possivel equipa-lo em aneis(SLOT 9) é <attribute key="slotType" value="ring" /> você só precisa tornar sua bike apta a ser equipada no slot 9. se não houve nenhuma edição relativa a isso nas sourcers do seu servidor, essa edição basta. porém, não entendo nada de servidores derivados, o pouco conhecimento que possuo para compartilhar com você finda aqui. Boa Sorte.
-
hm, se eu entendi bem... isso funcionaria : if isCreature(attacker) then doSendMagicEffect(getCreaturePosition(attacker), 9) doAddCondition(attacker, venom) end certo? verificar se o "atacante" é criatura, verificar a posição do atacante e até mesmo adicionar uma condição ao atacante. desde claro que a função onStatsChange seja declarada antes, correto?
-
pera, li tudo completamente errado... vou ler dnv e ver aqui... hahaha este item que precisa deve estar equipado (um shield, um armor) ou deve estar na mochila do jogador? local soulcost = xxxx function onCastSpell(cid, var) if getPlayerItemCount(cid, soulcost) >= 1 then doPlayerAddSoul(cid, 1) doPlayerRemoveItem(cid, soulcost) doCreatureSay(cid, Souls, 180) else return false end end se a função getPlayerItemCount funcionar como eu penso que funciona... o script deve funcionar. ou não '-' mas já é uma base haha.
- 3 respostas
-
- spell conjura alma
- soul
-
(e 1 mais)
Tags:
-
já testou modificar o first items? se vc tirar o coins de la. o player não terá outra forma de conseguir ele... deixando esse slot "vazio" não entendo muito de servidores derivados, mas esse local onde deseja colocar a bike é um slot referente aos rings (CONST_SLOT_RING)... provavelmente deve ter sido alterado o nome por ser um servidor derivado para pokemon, porém a ideia deve ter permanecido. procure em suas libs qual é o slot 9. E useo em sua bike no items.xml assim será possivel colocar ela nesse slot... após isso basta adiciona-la também no first item. se eu entendi certo, essa solução pode funcionar
-
Wolf, sem querer abusar da sua pessoa, se ainda estiver acompanhando este topico, poderia me esclarecer uma duvida? seguinte : quando uso a função onStatsChange (cid, attacker, type, combat, value) a função possui o parametro "attacker", este parametro pode ser usado posteriormente em algums funções no lugar do cid? ou possui outra forma de vc declarar quem ataca o player?
-
mande o script do firstitem.lua. e a versão do seu distro. Especifique também se o personagem novo é criado a partir do account manager ou não... em muitos servidores os personagens criados pelo account manager "herdam" os items do account manager.
-
hm, achei q ela se adequaria a essa função somente nesse scrit e semelhantes. mas se é a função dela, é um otimo elemento no arsenal haha. já dei rep em todos as respostas aqui, muito obrigado pela atenção e suporte -edit uma duvida rapida: qual distro você prefere programar? notei que a maioria dos scripters usam a 0.3.6 do tfs porém, ela parece bem limitada em relação ao 1.2... fico em duvida em relação a isso.
-
Se as sourcers que você usou anteriormente já eram editadas e as que usou em seguida eram "virgens". o "erro" é muito simples, a source virgem não vem com o limite de efeitos estendido até 254. se eu tivesse a source que vc usou poderia confirmar isso para você. mas é o mais provavel.
-
Poderia me explicar brevemente o que variantToNumber(var) faz exatamente? porque eu fiz aquela tentativa porque se o player TROCAR o target no tempo do addevents ele poderia usar o target novo para remover o storage fazendo com que o player anterior que recebeu o storage ficasse com ele pra sempre... configurando um bug. mas eu não conheço nem de nome essa variantToNumber(var). ficaria grato se pudesse me explicar. de qualquer forma, essas poucas palavras já valeram o topico. algo que eu não sabia e provavelmente nunca ia desconfiar.
-
não entendi bem o paramentro do isPlayer... já a parte do #inimigo, eu procurei alguma forma de armazenar um dado no script pra usar no addevents, pq se eu usasse getCreatureTarget(cid) no addevents se o player mudasse o target poderia gerar algum bug... na verdade pode ter sido uma interpretação completamente errônea de um script q eu vi na seção de pedidos que inclusive é seu. mas nele vc usava table.insert para que o script memorizasse uma posição... se essa forma não funciona, qual outra forma eu poderia usar para que o player que recebeu a spell fosse memorizado no script podendo ser usado novamente?
-
Bom dia/tarde/noite. pra ser direto ao ponto... Eu tive uma ideia de um sistema muito interessante para meu servidor. após algum tempo estudando formas de faze-lo eu descobri uma forma (bem feia) de fazer. Após algum tempo trabalhando no script cheguei a um resultado... porém não funcional vejamos: Primeiro a ideia: esse script ,era pra ser bem simples, seria uma skill target que quando atingisse o inimigo deixaria nele um storage value por determinado tempo. sairia um texto animado por puro capricho. passado o tempo esse storage value seria removido e sairia outro texto animado. Esse sistema que pretendo fazer funcionaria somente se o player tivesse equipado com um item, mas tornou-se muito mais problematico do que eu imaginava. vou postar os 2 pois acredito que o erro seja o mesmo então... não muda muito haha. Verifica se X item está equipado: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -2, -1, -3, -2) local inimigo = {} local escudo = 2520 local slot1 = getPlayerSlotItem(getCreatureTarget(cid), 5) local slot2 = getPlayerSlotItem(getCreatureTarget(cid), 6) local storage = 199901 function onCastSpell(cid, var) table.insert(inimigo, getCreatureTarget(cid)) if isPlayer then if slot1 or slot2 == 2520 then setPlayerStorageValue(#inimigo, storage, 1) doSendAnimatedText(getCreaturePosition(cid), 'Charged', 180) else return doCombat(cid, combar, var) end addEvent(function() if isCreature(cid) then setPlayerStorageValue(#inimigo, storage, 0) doSendAnimatedText(getCreaturePosition(cid), 'Charge lost', 180) end end,4000) return doCombat(cid, combat, var) end end Não verifica se item está equipado: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -2, -1, -3, -2) local inimigo = {} local storage = 199901 function onCastSpell(cid, var) table.insert(inimigo, getCreatureTarget(cid)) if isPlayer then setPlayerStorageValue(#inimigo, storage, 1) doSendAnimatedText(getCreaturePosition(cid), 'Charged', 180) else return doCombat(cid, combat, var) end addEvent(function() if isCreature(cid) then setPlayerStorageValue(#inimigo, storage, 0) doSendAnimatedText(getCreaturePosition(cid), 'Charge lost', 180) end end,4000) return doCombat(cid, combat, var) end O que me intriga muito nos 2 scripts é o fato de não ter nenhum erro no debugger (OtScriptLive) e nem no distro do servidor. o unico erro aparente é quano o player usa que aparece o erro avisando que o player está sem mana... porém baixei o custo de mana da magia pra 0 e testei em 2 personagens com mais de 5k de mana... eu sou um scripter iniciante (MUITO iniciante... NOVATO... NEWBA) portanto deve ser um erro ridiculo... alguem tem alguma solução? haha
-
Sim, estava errado, use a versão do Wolf que está um pouco abaixo da minha. funciona perfeitamente haha.
-
Basta fazer uma talkaction com a mesma função da action do item da bike. porém você adicionaria um comando verificaria se o player possui o item (bike). Se todos os players iniciarem com bike fica mais facil ainda, pois não é nem mesmo preciso verificar se ele possui.
-
Sim, eu havia consultado a lib antes de escolher o numero 180 haha. o impressionante é que eu li um tutorial recentemente sobre Variavel e String e nem cogitei a possibilidade de ser isso ( até porque nem lembrei desses detalhes). fico impressionado como grandes scripters como você conseguem associar tanta informação ao mesmo tempo. incrivel.
-
Genial, obrigado por esclarecer essas duvidas... quando o autor do topico voltar acredito q ele confirmará a funcionalidade do script. eu fiz um teste rapido, removi a linha que verifica o storage e o adicionei como creaturescripts em um monstro para teste. o script cumpre o que foi proposto, ele bloquea um dano. simples, tentei deixa-lo mais bonito usando doSendAnimatedText(getCreaturePosition(cid), Blocked, 180). mas por algum motivo não reconhece, enfim. Obrigado pela ajuda. Wolf Rep +
-
if getPlayerStorageValue(cid, storage) >= 1 and math.random(1,100) <= 10 then nossa, a função é completamente diferente do que eu pensei que fosse... acreditava que a função deveria retornar o valor. mas aparentemente ela retorna se é verdadeiro ou não a igualdade... mas fiquei com uma duvida: se ">= 1" indica que "o player possui aquele storage. "<=0" indicaria que o player não possui aquele storage? por exemplo, supondo que eu precise fazer um script que a condição é justamente o contrario. somente o jogador que tivesse o storage não pudesse participar. eu usaria: if getPlayerStorageValue(cid, storage) == 0? ou if getPlayerStorageValue(cid, storage) <= 0? não fui eu quem pedi o script porém, me serviu de aula haha. obrigado Wolf. ( não testei o script, não posso dizer se funciona ou não )
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.