Ir para conteúdo
  • Cadastre-se

Desenvolvimento JAVA mods


Bluur

Posts recomendados

 

Pronto: color zone, obrigado por participar!

 

@ALL

 

Não vai demorar muito para liberar os outros mods pessoa, estou realizando alguns testes...

 

 

Me lembrei de algo que eu vi por ai nos servidores pvps da vida. Essa função de mudar a cor nick funcionar junto com a "ChaoticZone" (PvpZone), ao invés do rosa de flag fica outras cores kkk

O que acham?

Link para o comentário
Compartilhar em outros sites


 

Me lembrei de algo que eu vi por ai nos servidores pvps da vida. Essa função de mudar a cor nick funcionar junto com a "ChaoticZone" (PvpZone), ao invés do rosa de flag fica outras cores kkk

O que acham?

pois foi essa ideia msm que falei com ele, eu tentei aki mais deu certo n =/ tentei fazer uma opção no colorzone para modo flag mais nao obtive sucesso

Editado por kamael

New Projeto em Breve Base aCis

Link para o comentário
Compartilhar em outros sites

Mais uma pequena ideia, parece ser até simples...

Criar um comando os o admin digite //ollyfeed Nick Pontos ...

No caso um comando para que o admin no jogo digite o nome do jogador e a quantia de pontos que deseja remover, junto com isto enviaria uma mensagem dizendo: Você fez uso de Feed, 30 pontos removidos...

Algo assim...

Acabei de ter essa ideia... pode ser útil para servidores que tem penalidades para quem fica passando pontos em olly ;)

"Seja feliz do jeito que você é, não mude sua rotina pelo o que os outros exigem de você, simplesmente viva de acordo com o seu modo de viver."

(Yato - Noragami)

 

 

Link para o comentário
Compartilhar em outros sites

Mais uma pequena ideia, parece ser até simples...

Criar um comando os o admin digite //ollyfeed Nick Pontos ...

No caso um comando para que o admin no jogo digite o nome do jogador e a quantia de pontos que deseja remover, junto com isto enviaria uma mensagem dizendo: Você fez uso de Feed, 30 pontos removidos...

Algo assim...

Acabei de ter essa ideia... pode ser útil para servidores que tem penalidades para quem fica passando pontos em olly ;)

 

Já tem aqui -> admin olympiad points

Full Stack Developer


Link para o comentário
Compartilhar em outros sites

Bluur, tem como você dar uma força para adaptar o pc bang point?

Tentei usando esse código aqui

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Só tive erro nessa parte, mas não sei o que fazer quando aparece esse erro '-'

 

5kDH41T.jpg

 

Link para o comentário
Compartilhar em outros sites

Bluur, tem como você dar uma força para adaptar o pc bang point?

Tentei usando esse código aqui

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Só tive erro nessa parte, mas não sei o que fazer quando aparece esse erro '-'

 

5kDH41T.jpg

 

Simples muda isso L2World.getInstance().getAllPlayers() pra L2World.getInstance().getAllPlayers().values()

 

:D

Link para o comentário
Compartilhar em outros sites

 

Me lembrei de algo que eu vi por ai nos servidores pvps da vida. Essa função de mudar a cor nick funcionar junto com a "ChaoticZone" (PvpZone), ao invés do rosa de flag fica outras cores kkk

O que acham?

Justamente !

Cheguei a ver essa opção em servidores que usavam o pack " Vanganth ".

QdeQ9Kp.png

Link para o comentário
Compartilhar em outros sites

Poderia adaptar para Acis este npc buffer?

O conteúdo está oculto, favor efetuar login ou se cadastrar!

é um ótimo npc feito por Dazel.

 

 

http://www.l2jbrasil.com/index.php?/topic/110768-npc-buffer-em-java-p-acis/

Atitudes Que Fazem A Diferença! 

Não vou dar suporte via mp e nem skype obrigado 

Eu não tenho mais arquivos antigos não tem como ajudar em questões antigas abrigado

Galera todos meus conteúdo estão no fórum..video do meu canal no youtube com revisão npc´s e etc.. estão aqui se não achar e pq não tem mais ...obrigado e espero que de tudo certo a vcs.....

 

Link para o comentário
Compartilhar em outros sites

Justamente !

Cheguei a ver essa opção em servidores que usavam o pack " Vanganth ".

É vdd! E um detalhe interessante é que essa pack é OFF

E até então exclusividade de quem possui bastante adena pra comprar

Link para o comentário
Compartilhar em outros sites

É vdd! E um detalhe interessante é que essa pack é OFF

E até então exclusividade de quem possui bastante adena pra comprar

Gostei da parte de quem possui bastante " adena ".

Porém em um fórum gringo bastante conhecido tem uma versão que deram " leech ", se presta, eu não sei, baixei, mas não cheguei a usar.

QdeQ9Kp.png

Link para o comentário
Compartilhar em outros sites

Bluur ou Leonardo por favor eu nao encontrei nada sobre os buffs de hotsprings...

 

sera que alguem poderia arrumar pra gente.

 

Projeto L2j aCis

Oque precisa pros buffs de hot Spring? da uma explicada melhor que se tiver ao meu alcance posos te ajudar.

Link para o comentário
Compartilhar em outros sites

Bluur tem como fazer um mod. quando player ataca um raidboss ou grandboss ficar flag, sem terminar o flag.

Tipo, enquanto o player estiver batendo, ele permanece em modo pvp, se ele parar o flag sai após o tempo da config.

Vlw!

QdeQ9Kp.png

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

 

 

3pl1xcA.png

 

QPkybhq.png

 

 

 

Adaptei pra aCis 344.

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

ou

 

 

 

Index: trunk/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/instance/L2ChangePasswordInstance.java
===================================================================
--- trunk/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/instance/L2ChangePasswordInstance.java
+++ trunk/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/instance/L2ChangePasswordInstance.java
/* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
*
O conteúdo está oculto, favor efetuar login ou se cadastrar!
*/
package net.sf.l2j.gameserver.model.actor.instance;
import java.security.MessageDigest;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Base64;
import java.util.StringTokenizer;
import net.sf.l2j.Config;
import net.sf.l2j.L2DatabaseFactory;
import net.sf.l2j.gameserver.ai.CtrlIntention;
import net.sf.l2j.gameserver.model.actor.L2Npc;
import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
import net.sf.l2j.gameserver.network.serverpackets.LeaveWorld;
import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected;
import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation;
public class L2ChangePasswordInstance extends L2Npc
{
public L2ChangePasswordInstance(int objectId, NpcTemplate template)
{
super(objectId, template);
}
@Override
public void onAction(L2PcInstance player)
{
if (!canTarget(player))
{
return;
}
player.setCurrentFolkNPC(this);
// Check if the L2PcInstance already target the L2NpcInstance
if (this != player.getTarget())
{
// Set the target of the L2PcInstance player
player.setTarget(this);
// Send a Server->Client packet MyTargetSelected to the L2PcInstance player
MyTargetSelected my = new MyTargetSelected(getObjectId(), 0);
player.sendPacket(my);
my = null;
// Send a Server->Client packet ValidateLocation to correct the L2NpcInstance position and heading on the client
player.sendPacket(new ValidateLocation(this));
}
else
{
// Calculate the distance between the L2PcInstance and the L2NpcInstance
if (!canInteract(player))
{
// Notify the L2PcInstance AI with AI_INTENTION_INTERACT
player.getAI().setIntention(CtrlIntention.INTERACT, this);
}
else
{
showHtmlWindow(player);
}
}
player.sendPacket(new ActionFailed());
}
private void showHtmlWindow(L2PcInstance player)
{
String filename = "data/html/mods/change_password.htm";
NpcHtmlMessage html = new NpcHtmlMessage(1);
html.setFile(filename);
html.replace("%objectId%", String.valueOf(getObjectId()));
player.sendPacket(html);
filename = null;
html = null;
}
@Override
public void onBypassFeedback(L2PcInstance player, String command)
{
if (command.startsWith("change_password"))
{
StringTokenizer st = new StringTokenizer(command);
st.nextToken();
String curPass = null;
String newPass = null;
String repPass = null;
try
{
if (st.hasMoreTokens())
{
curPass = st.nextToken();
newPass = st.nextToken();
repPass = st.nextToken();
}
else
{
player.sendMessage("Please fill in all the blanks before requesting for a password change.");
return;
}
changePassword(curPass, newPass, repPass, player);
}
catch (StringIndexOutOfBoundsException e)
{
if (Config.ENABLE_ALL_EXCEPTIONS)
{
e.printStackTrace();
}
}
}
}
public static boolean changePassword(String currPass, String newPass, String repeatNewPass, L2PcInstance activeChar)
{
if (newPass.length() < 3)
{
activeChar.sendMessage("The new password is too short!");
return false;
}
if (newPass.length() > 16)
{
activeChar.sendMessage("The new password is too long!");
return false;
}
if (!newPass.equals(repeatNewPass))
{
activeChar.sendMessage("Repeated password doesn't match the new password.");
return false;
}
Connection con = null;
String password = null;
try
{
MessageDigest md = MessageDigest.getInstance("SHA");
byte[] raw = currPass.getBytes("UTF-8");
raw = md.digest(raw);
String currPassEncoded = Base64.getEncoder().encodeToString(raw);
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = con.prepareStatement("SELECT password FROM accounts WHERE login=?");
statement.setString(1, activeChar.getAccountName());
ResultSet rset = statement.executeQuery();
while (rset.next())
{
password = rset.getString("password");
}
rset.close();
statement.close();
byte[] password2 = null;
if (currPassEncoded.equals(password))
{
password2 = newPass.getBytes("UTF-8");
password2 = md.digest(password2);
PreparedStatement statement2 = con.prepareStatement("UPDATE accounts SET password=? WHERE login=?");
statement2.setString(1, Base64.getEncoder().encodeToString(password2));
statement2.setString(2, activeChar.getAccountName());
statement2.executeUpdate();
statement2.close();
activeChar.sendMessage("Your password has been changed successfully! For security reasons, You will be disconnected. Please login again!");
try
{
Thread.sleep(3000L);
}
catch (Exception e)
{
if (Config.ENABLE_ALL_EXCEPTIONS)
{
e.printStackTrace();
}
}
activeChar.deleteMe();
activeChar.sendPacket(new LeaveWorld());
}
else
{
activeChar.sendMessage("The current password you've inserted is incorrect! Please try again!");
return password2 != null;
}
}
catch (Exception e)
{
if (Config.ENABLE_ALL_EXCEPTIONS)
{
e.printStackTrace();
}
_log.warning("could not update the password of account: " + activeChar.getAccountName());
}
finally
{
if (con != null)
try
{
con.close();
con = null;
}
catch (final Throwable e){}
}
return true;
}
}
Index: trunk/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ActionFailed.java
===================================================================
--- trunk/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ActionFailed.java
+++ trunk/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ActionFailed.java
public static final ActionFailed STATIC_PACKET = new ActionFailed();
- private ActionFailed()
+ public ActionFailed()
{
Index: trunk/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/L2Npc.java
===================================================================
--- trunk/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/L2Npc.java
+++ trunk/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/L2Npc.java
public boolean isWarehouse()
{
return false;
}
+
+ /**
+ * Can target.
+ * @param player the player
+ * @return true, if successful
+ */
+ protected boolean canTarget(final L2PcInstance player)
+ {
+ if (player.isOutOfControl())
+ {
+ player.sendPacket(ActionFailed.STATIC_PACKET);
+ return false;
+ }
+ return true;
+ }
+
/**
* Manage actions when a player click on the L2Npc.<BR>
* <BR>
* <B><U> Actions on first click on the L2Npc (Select it)</U> :</B><BR>
Index: trunk/aCis_datapack/data/html/mods/change_password.htm
===================================================================
--- trunk/aCis_datapack/data/html/mods/change_password.htm
+++ trunk/aCis_datapack/data/html/mods/change_password.htm
<html>
<body>
<center><img src=L2UI_CH3.herotower_deco width=256 height=32></center><br>
<center><font color="008080">Change Password</font></center>
<center>
<table cellspacing=-1>
<tr><td><img src="L2UI.SquareBlank" width=40 height=20></td></tr>
</table>
<center><img src=L2UI.SquareGray width=250 height=1></center>
<img src="L2UI.SquareBlank" width=40 height=2>
<center><img src="L2UI.SquareGray" width=300 height=1></center>
<table bgcolor=000000 width=300 height=47>
<tr><td><center>First fill in your <font color=LEVEL>current password</font> and then your new!</center></td></tr>
</table>
<center><img src="L2UI.SquareGray" width=300 height=1></center>
<img src="L2UI.SquareBlank" width=40 height=2>
<center><img src=L2UI.SquareGray width=250 height=1></center>
<table cellspacing=-1>
<tr><td><img src="L2UI.SquareBlank" width=40 height=20></td></tr>
</table>
</center>
<table width=256>
<tr><td align=right><font color="3366FF">Current Password:</font></td><td><edit var="curPass" type="password" width=125 height=15></td></tr>
<tr><td align=right><font color="3366FF">New Password:</font></td><td><edit var="newPass" type="password" width=125 height=15></td></tr>
<tr><td align=right><font color="3366FF">Repeat Password:</font></td><td><edit var="repPass" type="password" width=125 height=15></td></tr>
</table>
<br><br>
<center>
<button value="Change" action="bypass -h npc_%objectId%_change_password $curPass $newPass $repPass" width=75 height=21 back="L2UI_CH3.Btn1_normal_over" fore="L2UI_CH3.Btn1_normal">
<br><br>
<font color="LEVEL">Copyright 2013 i9 Games TM.</font><br1>
<font color="0066FF">www.i9games.com</font>
</center>
</body>
</html>
Index: trunk/aCis_datapack/data/xml/npcs/50000-50999.xml
===================================================================
--- trunk/aCis_datapack/data/xml/npcs/50000-50999.xml
+++ trunk/aCis_datapack/data/xml/npcs/50000-50999.xml
<npc id="50010" idTemplate="30519" name="aCis" title="Password Changer">
<set name="level" val="80"/>
<set name="radius" val="7"/>
<set name="height" val="18"/>
<set name="rHand" val="0"/>
<set name="lHand" val="0"/>
<set name="type" val="L2ChangePassword"/>
<set name="exp" val="0"/>
<set name="sp" val="0"/>
<set name="hp" val="2444.46819"/>
<set name="mp" val="1345.8"/>
<set name="hpRegen" val="7.5"/>
<set name="mpRegen" val="2.7"/>
<set name="pAtk" val="688.86373"/>
<set name="pDef" val="295.91597"/>
<set name="mAtk" val="470.40463"/>
<set name="mDef" val="216.53847"/>
<set name="crit" val="4"/>
<set name="atkSpd" val="253"/>
<set name="str" val="40"/>
<set name="int" val="21"/>
<set name="dex" val="30"/>
<set name="wit" val="20"/>
<set name="con" val="43"/>
<set name="men" val="20"/>
<set name="corpseTime" val="7"/>
<set name="walkSpd" val="50"/>
<set name="runSpd" val="120"/>
<set name="dropHerbGroup" val="0"/>
<set name="attackRange" val="40"/>
<ai type="default" ssCount="0" ssRate="0" spsCount="0" spsRate="0" aggro="0" canMove="true" seedable="false"/>
<skills>
<skill id="4045" level="1"/>
<skill id="4416" level="18"/>
</skills>
</npc>

Editado por PeNaChO

QdeQ9Kp.png

Link para o comentário
Compartilhar em outros sites

essa proteção aqui modificada seria uma boa :) http://www.l2jbrasil.com/index.php?/topic/91883-personal-character-password-protection/page-3

 

tipo, uma segunda senha antes de logar. exemplo: quando selecionar o char e dar ( start ) aparece esse ''personal password protection''personal.png

 

 

isso é muito difícil de fazer? :culto:

Editado por PaulinhoLP
Link para o comentário
Compartilhar em outros sites

Olha eu aqui outra vez né :)

Então lá vai a idéia de evento que tive a um bom tempo e acho que a galera vai aprovar porque é interessante...

 

Vamos a concepção:

Determinada hora do jogo (gametime) os mobs todos ficam mais fortes e tem mais drop quando derrotados.

O nome desse mod. seria "Nightmare Time" ou traduzindo "hora do pesadelo".

E o horário bacana para condizer com o nome seria das 23hrs as 3hrs todos os dias.

 

Alguma dicas que podem ajudar na construção:

Partindo do sistema dos mobs Champion que tem configuração dos multiplicadores de status e drop na maioria das revisões...

O mod. praticamente só acrescenta um horário fixo (hora do pesadelo) onde os mobs ficam com esses status durante o período de tempo determinado.

Pensei em fazer baseado na spawnlist que tem mobs noturnos, mas não deu certo "neste caso porque tem período diferenciado precisa ser feito um .mod"

Até porque seria bacana também aparecer o anuncio global "Nightmare Time, if it can survive. \\\\&//// Nightmare Time it's over, you survived."

 

Bom... é uma ideia relativamente simples que segura o player no servidor esperando dar o horário para aproveitar o multiplicador nos drops;

E que também irá incentivar os players montar grupos para farmar nesses horários.

Se aprovada esta ideia o mod. de certo será ótimo para qualquer tipo de rate e server. :onda:

 

Abraço! e obrigado pelo bom andamento de seus desenvolvimentos !estou gostando de ver! :boxing:

 

Pergunta:

Alguma noticia do aproveitamento dessa ideia de evento?

Comentário:

Cara no inicio não acreditei que vocês pegariam firme, parabéns e continuem no ritmo de produção :)

prja.png
Current Chronic: The Shadowy Nightmare (SDE-V7 Currently Under Construction)☜═㋡

Link para o comentário
Compartilhar em outros sites

essa proteção aqui modificada seria uma boa :) http://www.l2jbrasil.com/index.php?/topic/91883-personal-character-password-protection/page-3

 

tipo, uma segunda senha antes de logar. exemplo: quando selecionar o char e dar ( start ) aparece esse ''personal password protection''personal.png

 

 

isso é muito difícil de fazer? :culto:

Fica legal desse geito que tu disse, vi isso em um server russo, mas também ficaria legal se tivesse como o player ativar ou desativar esse sistema, para ele não precisar fica digitando toda vez que logar, pq nem todos acha útil esse sistema, sera que da Bluur ?

Simples muda isso L2World.getInstance().getAllPlayers() pra L2World.getInstance().getAllPlayers().values()

 

 

Leoonardo/Bluur, pensei em algo baseado no PC Bang Points, mas que funcionará da seguinte maneira: Simples, contar o total de RAID Points que o Player tem, Ex: cada vez que o Player mata algum boss aumenta os Números, no mesmo estilo do PcBang, porém são pontos de kill de boss

Link para o comentário
Compartilhar em outros sites

Fica legal desse geito que tu disse, vi isso em um server russo, mas também ficaria legal se tivesse como o player ativar ou desativar esse sistema, para ele não precisar fica digitando toda vez que logar, pq nem todos acha útil esse sistema, sera que da Bluur ?

 

Leoonardo/Bluur, pensei em algo baseado no PC Bang Points, mas que funcionará da seguinte maneira: Simples, contar o total de RAID Points que o Player tem, Ex: cada vez que o Player mata algum boss aumenta os Números, no mesmo estilo do PcBang, porém são pontos de kill de boss

 

Truta boa sugestão, só que no meu caso eu ando meio ausente esse jogo meio que morreu pra mim aí então a disposição morreu também, eu to participando do fórum com bem menas frequência de uns dias pra cá. Mas se caso eu voltar e pra mesma área eu posso estar tentando por sua ideia em prática, valeu.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.





×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.