Ir para conteúdo

Nother

Membro
  • Registro em

  • Última visita

Tudo que Nother postou

  1. OLÁ, GOSTARIA DE UMA SPELL QUE O PLAYER TELEPORTASSE EM TODOS OS PLAYERS/MONSTROS QUE ESTIVESSEM EM UMA AREA AO REDOR DELE, DESSE DANO NELES E SAISSE UM EFFECT DE ONDE O PLAYER TELEPORTOU E OUTRO EFFECT NO MOMENTO QUE HITAR OS ALVOS. DEPOIS QUE TODOS OS ALVOS FOSSEM ATINGIDOS ELE VOLTARIA PARA A POSIÇÃO INICIAL, NÃO CASTANDO A SPELL CASO NÃO TIVESSE MONSTROS OU PLAYERS AO REDOR. SE POSSIVEL UM TEMPO ENTRE CADA TELEPORTE PARA MIM AJUSTAR. DESDE JÁ AGRADEÇO QUEM TENTAR AJUDAR.
  2. Então amigo, mals a demora. Eu utilizo ja estas features na pasta game_things pois a game_feature não tem no meu client. E os effects saem normal extendidos mas ocorre esse erro.
  3. Recentemente adicionei o Opcodes Extendido no meu Server mas sempre que utilizo uma habilidade com distance effect me aparece esse erro no terminal do otclient: ProtocolGame parse message exception (58 bytes unread, last opcode is 0, prev opcode is 133): unhandled opcode 0 Caso eu utilize a skill varias vezes com esse erro buga todo o meu mapa. Alguem sabe como resolver?
  4. Da uma conferida em globalevents.xml ou em creaturescripts.xml e ve se possui alguma coisa relacionada a essas mensagens. Qualquer coisa posta aqui.
  5. Tentei aqui de diversas formas mas não consegui, como o meu caso e um caso especifico você não teria um discord para ficar mais facil não? Dai quando eu conseguir a solução eu posto aqui novamente para quem quiser fazer o mesmo.
  6. @Aksz onde eu adiciono os Styles? primeira vez que eu edito um site.
  7. Essa é de criação de conta {{ hook('HOOK_ACCOUNT_CREATE_BEFORE_FORM') }} <form action="{{ getLink('account/create') }}" method="post" id="createaccount"> <div class="TableContainer" > <table class="Table5" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Create {{ config.lua.serverName }} Account</div> <span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" > {{ hook('HOOK_ACCOUNT_CREATE_BEFORE_BOXES') }} <tr> <td> <div class="TableShadowContainerRightTop"> <div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rt.gif);"></div></div> <div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rm.gif);"> <div class="TableContentContainer"> <table class="TableContent" width="100%" style="border:1px solid #faf0d7;"> <tbody> {{ hook('HOOK_ACCOUNT_CREATE_BEFORE_ACCOUNT') }} <tr> <td class="LabelV" style="width: 150px"> <span{% if errors.account is defined %} class="red"{% endif %}>Account {% if constant('USE_ACCOUNT_NAME') %}Name{% else %}Number{% endif %}:</span> </td> <td> <input type="text" name="account" id="account_input" size="30" maxlength="{% if constant('USE_ACCOUNT_NAME') %}30{% else %}10{% endif %}" value="{{ account }}" autofocus/> <img id="account_indicator" src="images/global/general/{% if not save or errors.account is defined %}n{% endif %}ok.gif" style="display: none;" /> </td> </tr> <tr><td></td><td><span id="account_error" class="FormFieldError">{% if errors.account is defined %}{{ errors.account }}{% endif %}</span></td></tr> {{ hook('HOOK_ACCOUNT_CREATE_AFTER_ACCOUNT') }} <tr> <td class="LabelV" style="width: 150px"> <span{% if errors.email is defined %} class="red"{% endif %}>Email Address:</span> </td> <td> <input type="text" name="email" id="email" size="30" maxlength="50" value="{{ email }}" /> <img id="email_indicator" src="images/global/general/{% if not save or errors.email is defined %}n{% endif %}ok.gif" style="display: none;" /> </td> </tr> <tr> <td></td><td><span id="email_error" class="FormFieldError">{% if errors.email is defined %}{{ errors.email }}{% endif %}</span></td> </tr> {% if config.mail_enabled and config.account_mail_verify %} <tr><td></td><td><span><strong>Please use real address!<br/>We will send a link to validate your Email.</strong></span></td></tr> {% endif %} {{ hook('HOOK_ACCOUNT_CREATE_AFTER_EMAIL') }} {% if config.account_country %} <tr> <td class="LabelV" style="width: 150px"> <span{% if errors.country[0] is defined %} class="red"{% endif %}>Country:</span> </td> <td> <select name="country" id="account_country"> {% for code, country_ in countries %} <option value="{{ code }}"{% if(country is defined and country == code) or (country is null and country_recognized == code) %}selected{% endif %}>{{ country_ }}</option> {% endfor %} </select> <img src="" id="account_country_img"/> </td> </tr> {% if errors.country is defined %} <tr><td></td><td><span class="FormFieldError">{{ errors.country }}</span></td></tr> {% endif %} {% endif %} {{ hook('HOOK_ACCOUNT_CREATE_AFTER_COUNTRY') }} <tr> <td class="LabelV" style="width: 150px"> <span{% if errors.password is defined %} class="red"{% endif %}>Password:</span> </td> <td> <input type="password" name="password" id="password" value="" size="30" maxlength="29" /> <img id="password_indicator" src="images/global/general/{% if not save or errors.password is defined %}n{% endif %}ok.gif" style="display: none;" /> </td> </tr> <tr><td></td><td><span id="password_error" class="FormFieldError">{% if errors.password is defined %}{{ errors.password }}{% endif %}</span></td></tr> <tr> <td class="LabelV" style="width: 150px"> <span{% if errors.password is defined %} class="red"{% endif %}>Repeat password:</span> </td> <td> <input type="password" name="password2" id="password2" value="" size="30" maxlength="29" /> <img id="password2_indicator" src="images/global/general/{% if not save or errors.password is defined %}n{% endif %}ok.gif" style="display: none;" /> </td> </tr> <tr><td></td><td><span id="password2_error" class="FormFieldError">{% if errors.password is defined %}{{ errors.password }}{% endif %}</span></td></tr> {{ hook('HOOK_ACCOUNT_CREATE_AFTER_PASSWORDS') }} {% if config.recaptcha_enabled %} <tr> <td class="LabelV" style="width: 150px"> <span{% if errors.verification[0] is defined %} class="red"{% endif %}>Verification:</span> </td> <td> <div class="g-recaptcha" data-sitekey="{{ config.recaptcha_site_key }}" data-theme="{{ config.recaptcha_theme }}"></div> </td> </tr> {% if errors.verification is defined %} <tr><td></td><td><span class="FormFieldError">{{ errors.verification }}</span></td></tr> {% endif %} {% endif %} {{ hook('HOOK_ACCOUNT_CREATE_AFTER_RECAPTCHA') }} </tbody> </table> </div> </div> <div class="TableShadowContainer"> <div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bm.gif);"> <div class="TableBottomLeftShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bl.gif);"></div> <div class="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-br.gif);"></div> </div></div> </td> </tr> {{ hook('HOOK_ACCOUNT_CREATE_BETWEEN_BOXES_1') }} {% if (not config.mail_enabled or not config.account_mail_verify) and config.account_create_character_create %} <tr> <td> <div class="TableShadowContainerRightTop"> <div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rt.gif);"></div> </div> <div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rm.gif);"> <div class="TableContentContainer"> <table class="TableContent" width="100%" style="border:1px solid #faf0d7;"> <tbody> {{ hook('HOOK_ACCOUNT_CREATE_BEFORE_CHARACTER_NAME') }} <tr> <td class="LabelV" style="width: 150px"> <span{% if errors.name is defined %} class="red"{% endif %}>Character Name:</span> </td> <td> <input id="character_name" name="name" size="{{ config.character_name_max_length }}" maxlength="{{ config.character_name_max_length }}" value="{{ name }}"/> <img id="character_indicator" src="images/global/general/{% if not save or errors.name is defined %}n{% endif %}ok.gif" style="display: none;" /> <br> </td> </tr> <tr> <td></td> <td> <span id="character_error" class="FormFieldError">{% if errors.name is defined %}{{ errors.name }}{% endif %}</span> </td> </tr> {{ hook('HOOK_ACCOUNT_CREATE_AFTER_CHARACTER_NAME') }} <tr> <td class="LabelV" style="width: 150px"> <span{% if errors.sex is defined %} class="red"{% endif %}>Sex:</span> </td> <td> <table width="100%"> <tbody> <tr> <td> {% set i = 0 %} {% for id, gender in config.genders|reverse(true) %} {% set i = i + 1 %} <span style="margin-right:15px;" class="OptionContainer"> <input type="radio" name="sex" id="sex{{ i }}" value="{{ id }}"{% if sex is not null and sex == id %} checked="checked"{% endif %}> <label for="sex{{ i }}">{{ gender|lower }}</label> </span> {% endfor %} </td> <td> </td> </tr> </tbody> </table> </td> </tr> <tr> <td></td> <td> <span id="sex_error" class="FormFieldError">{% if errors.sex is defined %}{{ errors.sex }}{% endif %}</span> </td> </tr> {{ hook('HOOK_ACCOUNT_CREATE_AFTER_SEX') }} {% if config.character_samples|length > 1 %} <tr> <td class="LabelV" style="width: 150px"> <span{% if errors.vocation is defined %} class="red"{% endif %}>Vocation:</span> </td> <td> <table width="100%" > <tbody> <tr> <td> {% for key, sample_char in config.character_samples %} <span style="margin-right:15px;" class="OptionContainer"> <input type="radio" name="vocation" id="vocation{{ key }}" value="{{ key }}" {% if vocation is not null and vocation == key %} checked="checked"{% endif %}> <label for="vocation{{ key }}">{{ config['vocations'][key] }}</label> </span> {% endfor %} </td> </tr> </tbody> </table> </td> </tr> <tr> <td></td> <td> <span id="vocation_error" class="FormFieldError">{% if errors.vocation is defined %}{{ errors.vocation }}{% endif %}</span> </td> </tr> {% endif %} {{ hook('HOOK_ACCOUNT_CREATE_AFTER_VOCATION') }} {% if config.character_towns|length > 1 %} <tr> <td class="LabelV" style="width: 150px"> <span{% if errors.town is defined %} class="red"{% endif %}>Select your city:</span> </td> <td> <table width="100%" > <tbody> <tr> <td> {% for town_id in config.character_towns %} <span style="margin-right:15px;" class="OptionContainer"> <input type="radio" name="town" id="town{{ town_id }}" value="{{ town_id }}" {% if town is not null and town == town_id %} checked="checked"{% endif %}> <label for="town{{ town_id }}">{{ config.towns[town_id] }}</label> </span> {% endfor %} </td> </tr> </tbody> </table> </td> </tr> {% endif %} {{ hook('HOOK_ACCOUNT_CREATE_AFTER_TOWNS') }} </tbody> </table> </div> </div> <div class="TableShadowContainer"> <div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bm.gif);"> <div class="TableBottomLeftShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bl.gif);"></div> <div class="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-br.gif);"></div> </div> </div> </td> </tr> {% endif %} {{ hook('HOOK_ACCOUNT_CREATE_BETWEEN_BOXES_2') }} <tr> <td> <div class="TableShadowContainerRightTop"> <div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rt.gif);"></div> </div> <div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-rm.gif);"> <div class="TableContentContainer"> <table class="TableContent" width="100%" style="border:1px solid #faf0d7;"> <tbody> <tr> <td colspan="2" ><b>Please select the following check box:</b></td> </tr> <tr> <td colspan="2" > <span><input type="checkbox" id="accept_rules" name="accept_rules" value="true"{% if accept_rules %}checked{% endif %}/> <label for="accept_rules">I agree to the <a href="?subtopic=rules" target="_blank">{{ config.lua.serverName }} Rules</a>.</label></span> </td> </tr> {% if errors.accept_rules is defined %} <tr> <td colspan="2"> <span class="FormFieldError">{{ errors.accept_rules }}</span> </td> </tr> {% endif %} </tbody> </table> </div> </div> <div class="TableShadowContainer"> <div class="TableBottomShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bm.gif);"> <div class="TableBottomLeftShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-bl.gif);"></div> <div class="TableBottomRightShadow" style="background-image:url({{ template_path }}/images/global/content/table-shadow-br.gif);"></div> </div> </div> </td> </tr> {{ hook('HOOK_ACCOUNT_CREATE_AFTER_BOXES') }} </table> </div> </td> </tr> </table> </div> <br/> {{ hook('HOOK_ACCOUNT_CREATE_BEFORE_SUBMIT_BUTTON') }} <table width="100%"> <tr align="center"> <td> <table border="0" cellspacing="0" cellpadding="0" > <tr> <td style="border:0px;" > <input type="hidden" name="save" value="1" > {{ include('buttons.submit.html.twig') }} </td> </tr> </table> </td> </tr> </table> </form> {{ hook('HOOK_ACCOUNT_CREATE_AFTER_FORM') }} <script type="text/javascript" src="tools/check_name.js"></script> E essa é de criar personagem Please choose a name{% if config.character_samples|length > 1 %}, vocation{% endif %} {% if config.character_towns|length > 1 %}, town{% endif %} and sex for your character. <br/> In any case the name must not violate the naming conventions stated in the <a href="?subtopic=rules" target="_blank" >{{ config.lua.serverName }} Rules</a>, or your character might get deleted or name locked. {% if account_logged.getPlayersList()|length >= config.characters_per_account %} <b><span style="color: red"> You have maximum number of characters per account on your account. Delete one before you make new.</span></b> {% endif %} <br/><br/> <form action="{{ getLink('account/character/create') }}" method="post"> <input type="hidden" name="save" value="1"> <div class="TableContainer"> <table class="Table3" cellpadding="0" cellspacing="0"> <div class="CaptionContainer"> <div class="CaptionInnerContainer"> <span class="CaptionEdgeLeftTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <span class="CaptionEdgeRightTop" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <span class="CaptionBorderTop" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <span class="CaptionVerticalLeft" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <div class="Text" >Create Character</div> <span class="CaptionVerticalRight" style="background-image:url({{ template_path }}/images/content/box-frame-vertical.gif);"></span> <span class="CaptionBorderBottom" style="background-image:url({{ template_path }}/images/content/table-headline-border.gif);"></span> <span class="CaptionEdgeLeftBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> <span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span> </div> </div> <tr> <td> <div class="InnerTableContainer"> <table style="width:100%;"> <tr> <td> <div class="TableShadowContainerRightTop"> <div class="TableShadowRightTop" style="background-image:url({{ template_path }}/images/content/table-shadow-rt.gif);"></div> </div> <div class="TableContentAndRightShadow" style="background-image:url({{ template_path }}/images/content/table-shadow-rm.gif);"> <div class="TableContentContainer"> <table class="TableContent" width="100%"> <tr class="LabelH"> <td style="width:50%;"> <span>Name</span> </td> <td> <span>Sex</span> </td> </tr> <tr class="Odd"> <td> <input name="name" id="character_name" value="{{ name }}" size="{{ config.character_name_max_length }}" maxlength="{{ config.character_name_max_length }}" > <img id="character_indicator" src="images/global/general/{% if not save or errors.name is defined %}n{% endif %}ok.gif" /> <br/> <span style="font-size: 10px"> <div id="character_error">{% if not save or errors.name is defined %}Please enter your character name.{% endif %}</div> </span> </td> <td> {% set i = 0 %} {% for id, gender in config.genders|reverse(true) %} {% set i = i + 1 %} <input type="radio" name="sex" id="sex{{ i }}" value="{{ id }}"{% if sex is not null and sex == id %} checked="checked"{% endif %} ><label for="sex{{ i }}">{{ gender|lower }}</label><br/> {% endfor %} </td> </tr> </table> </div> </div> </table> </div> <div class="InnerTableContainer"> <table style="width: 100%;"> <tr> {% if config.character_samples|length > 1 %} <td> <table class="TableContent" width="100%"> <tr class="Odd" valign="top"> <td width="160"><br/><b>Select your vocation:</b></td> <td> <table class="TableContent" width="100%" > {% for key, sample_char in config.character_samples %} <tr> <td> <input type="radio" name="vocation" id="vocation{{ key }}" value="{{ key }}" {% if vocation is not null and vocation == key %} checked="checked"{% endif %}> <label for="vocation{{ key }}">{{ config['vocations'][key] }}</label> </td> </tr> {% endfor %} </table> </td> </tr> </table> {% endif %} {% if config.character_towns|length > 1 %} <td> <table class="TableContent" width="100%"> <tr class="Odd" valign="top"> <td width="160"><br/><b>Select your city:</b></td> <td> <table class="TableContent" width="100%"> {% for town_id in config.character_towns %} <tr> <td> <input type="radio" name="town" id="town{{ town_id }}" value="{{ town_id }}" {% if town is not null and town == town_id %} checked="checked"{% endif %}> <label for="town{{ town_id }}">{{ config.towns[town_id] }}</label> </td> </tr> {% endfor %} </table> </td> </tr> </table> </td> {% endif %} </tr> </table> </div> </td> </tr> </table> </div> <br/> <table style="width:100%;"> <tr align="center"> <td> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td style="border:0px;"> {{ include('buttons.submit.html.twig') }} </td> </tr> </form> </table> </td> <td> <table border="0" cellspacing="0" cellpadding="0"> <form action="{{ getLink('account/manage') }}" method="post"> <tr> <td style="border:0px;"> {{ include('buttons.back.html.twig') }} </td> </tr> </form> </table> </td> </tr> </table> <script type="text/javascript" src="tools/check_name.js"></script>
  8. Não bem dessa forma mas ela ja serve, o meu e parecido com Gesior, ele ao invez de clicar na seta para mostra a lista de vocation, ele ja mostra todas as vocations disponiveis com uma bolinha na esqueda para escolher. No caso eu queria adicionar a foto em baixo do nome e mudar a posição da bolinha de seleção Aqui é quando cria personagem com a conta logada, a foto de cima e quando cria o personagem direto na conta
  9. Olá, estou editando o meu site de NTO mas me surgiu uma duvida que não encontrei em lugar nenhum. Eu queria deixar a criação de personagem parecido com isso, por acaso alguém sabe como faz? OBS: ja tenho as imagens dos personagens. Estou usando o Myaac 0.8.6.
  10. mandei mensagem la kkk, quando tiver ok eu posto aqui para o pessoal Ai galera, consegui editar o effect e o cooldown tbm, a spell ta muito boa, @Vodkart muito obrigado mesmo. Deixei o CD em 5 minutos. local from, to = {x=947, y=955, z=15}, {x=1055, y=1041, z=15} -- area total do kamui local from, arena = {x=900, y=895, z=7}, {x=921, y=915, z=7} -- area total da arena local teleport = {x=1000, y=1000, z=15} -- para onde vai local blocks = {"tronco"} -- defina o nome dos monstro em minusculo local storage = 753159 function isInKamuiArea(cid) return isInRange(getCreaturePosition(cid), from, to) and true or false end function isInKamuiArea(cid) return isInRange(getCreaturePosition(cid), from, arena) and true or false end function TeleportToKamui(alvo, pos) if not isCreature(alvo) then return LUA_ERROR end doTeleportThing(alvo, pos) local positionpk = {x=getThingPos(alvo).x+1, y=getThingPos(alvo).y+1, z=getThingPos(alvo).z} doSendMagicEffect(positionpk, 315) -- cid end function onCastSpell(cid, var) local tempo = 300 -- Tempo de exhaustion em segundos local sto = 545550 -- Storage de Spell, nunca usar a mesma em outra spell, a menos que não queira usar duas spell juntas! if exhaustion.check(cid, sto) then doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, sto) .. " segundos para usar o kamui novamente.") return false end local target = getCreatureTarget(cid) if target > 0 and isCreature(target) then -- se tiver target if isMonster(target) then if isInArray(blocks, getCreatureName(target):lower()) then doPlayerSendCancel(cid, "voce nao pode usar o kamui neste alvo") return true end local positionp = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y+1, z=getCreaturePosition(cid).z} doSendMagicEffect(positionp, 315) -- effect que sai em voce local positiont = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y+1, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(positiont, 315) -- effect ao usar kamui em um player local min = ((30) * (getPlayerMagLevel(cid) + getPlayerLevel(cid))) local max = ((35) * (getPlayerMagLevel(cid) + getPlayerLevel(cid))) doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_BLOCKHIT) -- defina combat e effect COMBAT_PHYSICALDAMAGE / CONST_ME_BLOCKHIT addEvent(TeleportToKamui, 700, target,teleport) elseif isPlayer(target) then if isInKamuiArea(target) then doPlayerSendCancel(cid, "voce nao pode usar o kamui em alguem nesta area") return true end setPlayerStorageValue(target, storage, ":".. getCreaturePosition(target).x ..",:".. getCreaturePosition(target).y ..",:".. getCreaturePosition(target).z) local positionp1 = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y+1, z=getCreaturePosition(cid).z} doSendMagicEffect(positionp1, 315) -- effect que sai em voce local positiont1 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y+1, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(positiont1, 315) -- effect ao usar kamui em um monstro local min = ((30) * (getPlayerMagLevel(cid) + getPlayerLevel(cid))) local max = ((35) * (getPlayerMagLevel(cid) + getPlayerLevel(cid))) doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_BLOCKHIT) -- defina combat e effect COMBAT_PHYSICALDAMAGE / CONST_ME_BLOCKHIT addEvent(TeleportToKamui, 700, target, teleport) end else if isInKamuiArea(cid) then doPlayerSendCancel(cid, "voce nao pode usar o kamui nesta area") return true end setPlayerStorageValue(cid, storage, ":".. getCreaturePosition(cid).x ..",:".. getCreaturePosition(cid).y ..",:".. getCreaturePosition(cid).z) local positionp2 = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y+1, z=getCreaturePosition(cid).z} doSendMagicEffect(positionp2, 315) -- effect ao usar o kamui em voce mesmo addEvent(TeleportToKamui, 700, cid, teleport) doCreatureAddHealth(cid, -100) end exhaustion.set(cid, sto, tempo) return true end O XML <instant name="Kamui" words="kamui in" lvl="300" mana="10000" prem="0" needtarget="0" range="4" exhaustion="0" blockwalls="1" needlearn="0" script="kakashi/kamui in.lua"> <vocation id="0"/> </instant> O movements do portal é aquele mesmo que ele passou no inicio da spell.
  11. Show! funcionou certinho, agora so falta os effects no target e no player. Não querendo incomodar mas já incomodando, teria como adicionar o cooldown de 5 min na spell?
  12. Perfeito, dessa vez deu direitinho, agora só falta os detalhezinhos do effect pois ele fica na cabeça a esquerda dos personagens, e o dano no alvo, mas já esta ótimo, não precisa fazer com pressa se estiver ocupado.
  13. Que isso, so oque vc ja fez aqui e mais doque eu faria em um ano kkk, seguinte, agora a spell com needtarget 0 pega no alvo mas não pega em mim, o effect agora esta funcionando nos 2.
  14. Funcionou tudo que você adicionou ai, realmente muito bom. Bom falta apenas 3 coisinhas caso não dê a terceira de boa falta agora o effect ser ajustável a posição, e sair no alvo (está saindo só em mim), só consigo usar no target se eu colocar no xml needtarget 1, se eu quiser usar em mim o kamui preciso colocar needtarget 0. e o ultimo e menos importante, dar dano no alvo.
  15. Então, nesse caso é só matando mesmo o monstro, por isso seria bom uma parte que eu coloque a exeção dos bixos, para não levarem boses, trainers entre outros. E com um CD alto as pessoas não vão ficar o tempo todo puxando os monstros. Além de só 2 personagens terem essa spell. No caso dos players e normal estar cheio mesmo
  16. Olá novamente, estou atrás de uma spell a 2 dias e não encontrei nenhuma igual oque eu quero e nem consegui editar as existentes. Se trata de um Kamui, para os não jogadores de derivado é uma spell que teleporta você ou o alvo para outro local do mapa. Já existe diversos spells de Kamui mas nem todas completas, sempre falta alguma coisa que me impede de editar por não ter conhecimento em script. Como quero que seja: Primeiro o player vai ter duas possibilidades, primeiro ele usa com target, e segundo ele usa sem target. De preferencia na mesma spell. (Caso seja complicado fazer dessa forma pode fazer duas spells diferentes cada uma fazendo uma coisa). Com target, o player ou monstro selecionado (se possível adicionar uma parte com exceções para mim adicionar o nome de alguns monstros), o target será enviado para o Kamui (x1000y1000z15) que eu editei no mapa. Sem target quem será enviado para o Kamui será o próprio player que conjurou a spell. Mesma coordenada (x1000y1000z15). Segundo, essa spell terá um cooldown de 5 min e também SE POSSIVEL, ela de um dano caso usada no target Ela terá 2 effects, um no player e um no target e se possível também o teleport não ser instantâneo, ele levar uns 3 milissegundos para teleportar após o uso da spell. Não vai voltar automático. E terceiro, dentro desse mundo terá um portal que será responsável por fazer a pessoa voltar para o local de onde ela foi teleportada.(Até encontrei o script para esse portal mas é necessário que a spell grave 3 storages da posição do player e do target com os valores de x,y,z para que o portal possa teleportar essa pessoa de volta). Ou seja, resumindo: Uma spell de teleport no mapa que leva você ou caso esteja no target leve o target com exceção de alguns monstros, com cd ajustável, delay no teleport, 2 effects, causar dano, e dentro dessa área que leva o teleport ter um portal que leva de volta. Bom, não faço a menor ideia se é difícil ou fácil criar essa spell, pois tudo que eu citei eu já vi em outras spells então possível eu sei que é, mas não tenho noção do grau de dificuldade, por isso coloquei alguns "se possível" para facilitar caso esteja muito complexo. Muito obrigado a quem tentar ajudar, é uma spell bem dahora que vai ajudar muitos servidores de NTO caso seja feita. Qualquer dúvida só perguntar ai que eu respondo. TFS 0.4 8.60
  17. Olá, será que alguem pode editar essa spell para mim e colocar um delay no teleport? Tipo, eu adcionei 2 effect nessa spell, cada um com seu time. O primeiro leva coisa de 4 milisegundos para acabar, e o segundo completa e da o dano. O primeiro é o effect que sai no player, o problema e que o teleport esta saindo instantaneamente e não consigo fazer ele sair depois que acaba o primeiro effect. Olha como está a spell local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_HITCOLOR, COLOR_TEAL) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 32) function onGetFormulaValues(cid, level, maglevel) min = -((30) * (maglevel + level)) max = -((33) * (maglevel + level)) return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local function onCastSpell1(parameters) return isCreature(parameters.cid) and doCombat(parameters.cid, combat, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} local waittime = 1 -- Tempo de exhaustion local storage = 445000 if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "Podera usar novamente dentro de 1 segundos.") doSendMagicEffect(getCreaturePosition(cid), 32) return false end exhaustion.set(cid, storage, waittime) local positionp = getPlayerPosition(cid) local target = getCreatureTarget(cid) local enemypos = getCreaturePosition(target) addEvent(onCastSpell1, 550, parameters) if target == isMonster or isCreature then doTeleportThing(cid, enemypos) addEvent(doSendMagicEffect, 500, {x = enemypos.x, y = enemypos.y+1, z = enemypos.z}, 311) addEvent(doSendMagicEffect, 10, {x = positionp.x, y = positionp.y+1, z = positionp.z}, 312) end return true end
  18. Tbm não deu certo para sair o effect mas eu fiz uma gambiarra aqui que deu certo, de qualquer forma o script ta funcional, mt obrigado, acabo de te colocar na minha lista de pessoas que eu chamaria para um churrasco kkk vlw A gambiarra V function onCastSpell(cid, var) local target = getCreatureTarget(cid) local tPos = {x = getThingPos(target).x, y = getThingPos(target).y, z = getThingPos(target).z} if(target > 0) then if (isMonster(target)) then doTeleportThing(cid, tPos) end doTeleportThing(target, getThingPos(cid)) doTeleportThing(cid, tPos) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Selecione um alvo") end local enemy = getCreaturePosition(getCreatureTarget(cid)) local pos1 = {x=enemy.x, y=enemy.y, z=enemy.z} local positionp = {x=getPlayerPosition(cid).x, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z} doSendMagicEffect(pos1, 14) doSendMagicEffect(positionp, 243) return true end
  19. Dessa vez deu certinho e não deu nenhum erro na distro, o unico problema é que não está saindo o effect que eu adcionei.
  20. Coloquei aqui mas não funcionou no player, no monstro ele deu certo mas o player ele só puxou o target mas não trocou de lugar com ele e deu esse erro na distro [18:20:13.727] [Error - Spell Interface] [18:20:13.729] data/spells/scripts/sasuke/rinnegan shunshin.lua:onCastSpell [18:20:13.729] Description: [18:20:13.730] attempt to index a nil value [18:20:13.730] stack traceback: [18:20:13.731] [C]: in function 'doSendMagicEffect' [18:20:13.731] data/spells/scripts/sasuke/rinnegan shunshin.lua:19: in function <data/spells/scripts/sasuke/rinnegan shunshin.lua:1>
  21. Alguém poderia me ajudar a colocar nessa spell duas coisas? É uma spell que troca de lugar com o alvo. A primeira seria: Ao usar a spell sairia um effect tanto em mim quanto no alvo. A segunda seria: Quando eu dou target em algum monstro ao invez de trocar de lugar com ele eu me teleporto para cima dele, ou se ficar muito dificil deixa como apenas não funcionar nos monstros e somente em player. function onCastSpell(cid, var) local target = getCreatureTarget(cid) local tPos = {x = getThingPos(target).x, y = getThingPos(target).y, z = getThingPos(target).z} if(target > 0) then doTeleportThing(target, getThingPos(cid)) doTeleportThing(cid, tPos) end return true end
  22. Então, se tivesse upando as duas skills ficava mais facil, mas mesmo eu colocando club no seu script tbm não upa. Só upa club quando eu deixo sem spell no item apenas com club na base dele, so que não sai o effect.
  23. Tbm não deu certo, dessa vez saiu o missile mas continuou upando distance ao invez de club, mesmo com a alteração para club. sera que não tem nada nas sources ou no proprio server impedindo essa mudança?
  24. Também não deu certo, ele ainda continua batendo sem effect.
  25. Então amigo, eu fiz as alterações como informou e o Shootype deu certo, ele já está no servidor, mas ainda estou com o mesmo problema, pois o effect só sai quando está com weaponType distance, quando colco club ele continua batendo sem effect.

Informação Importante

Confirmação de Termo