Jump to content
  • 0

I Stuck after targeting this npc,and after untargeting i can move again.


Question

Posted

[share]Paysafe Donation Manager Npc

 

 

/*
* 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
*/
package com.l2jfrozen.gameserver.model.actor.instance;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.Collection;
import java.util.NoSuchElementException;
import java.util.StringTokenizer;

import com.l2jfrozen.gameserver.model.L2World;
import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jfrozen.gameserver.templates.L2NpcTemplate;

import javolution.text.TextBuilder;

/**
* @author Autos! 1-0
*
*/
public class L2PscDonateInstance extends L2FolkInstance
{


public L2PscDonateInstance(int objectId, L2NpcTemplate template)
{
	super(objectId, template);

}

@Override
public void onBypassFeedback(final L2PcInstance player, String command)
  {
	      if(player == null)
	      {
	         return;
	      }
	      
	      if(command.startsWith("dlist"))
	      {
	    	  info(player);
	      }
	      
	      if(command.startsWith("donate"))
	      {
	    	  StringTokenizer st = new StringTokenizer(command);
	    	  st.nextToken();
	    	  String quantity = null;
	    	  int pin1 = 0;
	    	  int pin2 = 0;
	    	  int pin3 = 0;
	    	  int pin4 = 0;
	    	  String message = "";
	    	  
	    	  quantity = st.nextToken();
	    	  try
	    	  {
	    		  pin1 = Integer.parseInt(st.nextToken());
	    		  pin2 = Integer.parseInt(st.nextToken());
	    		  pin3 = Integer.parseInt(st.nextToken());
	    		  pin4 = Integer.parseInt(st.nextToken());
	    	  }
	    	  catch(NumberFormatException enf)
	    	  {
	    		  player.sendMessage("Enter a valid pin.");
return;
	    	  }

	    	  catch(NoSuchElementException enf)
	    	  {
	    		  player.sendMessage("Enter a valid pin.");
return;
	    	  }
	    	  
	    	  try
	    	  { 
	    		 while(st.hasMoreTokens())
	    			 message = message + st.nextToken() + " ";
	    		 
	    		 String fname = "data/donates/"+player.getName()+".txt";
	    		 File file = new File(fname);
	    		 boolean exist = file.createNewFile();
	    		 if(!exist)
	    		 {
	    		     player.sendMessage("You have already sent a donation , GMs must check it first");
	    		     return;
	    		 }
	    		 FileWriter fstream = new FileWriter(fname);
	    		 BufferedWriter out = new BufferedWriter(fstream);
	    		 out.write("Character Info: [Character: "+ player.getName() +"["+ player.getObjectId()+"] - Account: "+ player.getAccountName()+" - IP: "+player.getClient().getConnection().getInetAddress().getHostAddress()+"]\nMessage : donate "+ quantity +" "+ message + " "+ pin1+ " "+ pin2+ " "+ pin3+ " "+ pin4);
	    		 out.close();
	    		 player.sendMessage("Donation sent. GMs will check it soon. Thanks...");
	    		 
	    		 Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
	    			 for (L2PcInstance gms : pls)
	    				{
	    				 	if(gms.isGM())
	    				 	gms.sendMessage(player.getName() +" sent a donation.");
	    				}
	    	  }
	    	  catch(Exception e)
	    	  {
	    		  e.printStackTrace();
	    	  }

	      }
	      
  }

  @Override
  public void onAction(L2PcInstance player)
  {
    if (!canTarget(player)) 
    {
      return;
    }
      showHtmlWindow(player);
  }

  private void showHtmlWindow(L2PcInstance activeChar)
  {
		TextBuilder tb = new TextBuilder();
		NpcHtmlMessage html = new NpcHtmlMessage(1);
		        
		tb.append("<html><head><title>Donation Manager</title></head><body><center><table width=\"250\" bgcolor=\"000000\"><tr><td align=center><font color=\"6fd3d1\">Easy Donation With Paysafe Card</font></td></tr></table>_______________________________________<br><br><table width=\"250\"><tr><td><font color=\"ddc16d\">Select Donation quantity:</font></td><td><combobox width=80 height=17 var=quantity list=10-Euro;25-Euro;50-Euro;100-Euro;></td></tr></table><br><br><font color=\"ddc16d\">Paysafe Card Pin:</font><table width=\"250\"><tr><td><edit var=\"pin1\" width=50 height=12 type=number></td><td><edit var=\"pin2\" width=50 height=12 type=number></td><td><edit var=\"pin3\" width=50 height=12 type=number></td><td><edit var=\"pin4\" width=50 height=12 type=number></td></table><br><br><multiedit var=\"message\" width=240 height=40><br><br><button value=\"Donate!\" action=\"bypass -h npc_"+getObjectId()+"_donate $quantity $pin1 $pin2 $pin3 $pin4 $message\" width=95 height=21 back=\"bigbutton_over\" fore=\"bigbutton\"><br><button value=\"Donation List\" action=\"bypass -h npc_"+getObjectId()+"_dlist\" width=95 height=21 back=\"bigbutton_over\" fore=\"bigbutton\"><br><font color=\"a1df64\">Created by KnipeX (if he says so, huh)</font></center></body></html>");
		        
		html.setHtml(tb.toString());
		activeChar.sendPacket(html);
  }
  
  private void info(L2PcInstance activeChar)
  {
		TextBuilder tb = new TextBuilder();
		NpcHtmlMessage html = new NpcHtmlMessage(1);
		        
		tb.append("<html><head><title>Donation Manager</title></head><body><center>Info goes here</center></body></html>");
		html.setHtml(tb.toString());
		activeChar.sendPacket(html);
  }
} 


  •  
    • I added the java code as it say's in the description
    • I Compiled and everything else
    • I put a npc with that type it ask's
    • I spawned it

But when i target it the player stuck's and i must remove the target to move,can anyone tell me why,and when i put paysafecard etc and press Donate,nothing happend's!

 

Can anyone tell me why?

Recommended Posts

  • 0
Posted

- onAction being overidden, it misses an ActionFailed packet.

- you should use getHtmPath and organize HTMs inside it rather than hardcoding HTMs with TextBuilder (which is, by the way, slower than StringBuilder).

- commands on onBypass... should be if / else if / else if (or switched, as Frozen uses JDK7 and you can switch over strings)

  • 0
Posted

- onAction being overidden, it misses an ActionFailed packet.

- you should use getHtmPath and organize HTMs inside it rather than hardcoding HTMs with TextBuilder (which is, by the way, slower than StringBuilder).

- commands on onBypass... should be if / else if / else if (or switched, as Frozen uses JDK7 and you can switch over strings)

As i told you my english knowledge is limited,so i didn't understand anything about what did you just said :P

Can you help me via teamviewer about it? Also my java knowledge's are also limited too,so i don't know nothing more from adding a code.

  • 0
Posted

I don't help people via TV, that's not helping ppl to make what they should do by themselves.

 

You know the story about hungry man, fishpole and fishes, right ? I prefer to give fishpole rather than fishes to an hungry man, because I'm not a bird mom assisting his babies giving food everyday.

 


 

I gave you an answer, so now seek infos about ActionFailed packet. The miss of that packet on onAction make you stuck. You can also compare existing onAction, as probably all other are correctly working and see by yourself about what I'm talking about.

 

And use Google translate if your english sucks so bad, and continue to read english forums. I'm not english aswell, and I learnt playing video games.

  • 0
Posted

Dude.. Tryskell allready told you what do to.. omg..

Just do do this

 

  @Override
  public void onAction(L2PcInstance player)
  {
    if (!canTarget(player)) 
    {
      return;
    }
      showHtmlWindow(player);
              player.sendPacket(ActionFailed.STATIC_PACKET);
  }

  • 0
Posted

Junk code has:

    Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();

    for (L2PcInstance gms : pls)

    {

    if(gms.isGM())

    gms.sendMessage(player.getName() +" sent a donation.");

    }

 

instead of:

 

for (L2PcInstance gm:AdminTable.getInstance().getAllGms(true))

{

if (gm.isOnline())

gm.sendMessage(player.getName()+" sent a donation");

}

 

with a quick glance spotted this, now imagine with an intensive look

 

Ontopic: Did you imported the actionfailed packet?

Guest
This topic is now closed to further replies.


  • Posts

    • Interlude x15 –  No soy el administrador de este servidor, pero es un nuevo proyecto que está muy bien configurado — ¡solo necesita una comunidad! Si estás buscando una experiencia nueva, equilibrada y emocionante en Interlude, este es el lugar. ¡Participa! Únete al servidor Trae tu clan o equipo ¡Ayuda a que el servidor crezca!   Fecha de Apertura 16 de Mayo de 2025 Horario de Apertura 19:00 GMT-3 Versión del Juego Interlude Versión de la Interfaz Classic (protocolo 166) Rates de EXP y SP Dinámicos Niveles 1 al 19: EXP 15, SP 10 Niveles 20 al 39: EXP 13, SP 7 Niveles 40 al 51: EXP 11, SP 3 Niveles 52 al 60: EXP 9, SP 3 Niveles 61 al 75: EXP 7, SP 1.5 Niveles 76+: EXP 2, SP 1 Otros Rates Adena: x1 Chance de Drop: x1 Chance de Spoil: x1 Cantidad de SealStone: x2 RB XP/SP: x3 RB Drop: x2 Configuraciones Únicas Hasta 3 cuentas por PC (2 gratis + 1 paga) Sistema de Enchant skill desactivado Sistema de Augment weapon desactivado Mana potion: efecto de 2000, reutilización de 15 segundos Sin auto-learn skill SP y Book para aprender skills Quests 1ª y 2ª Transferencia de Clase por Adena 3ª Transferencia de Clase por 700 Halisha Marks Subclase custom: solo hablar con las cajas de los 4 jefes Nobles Retail Recompensa de Transferencia de Profesión Recibe un ticket de 1ª profesión (artículos del starter pack) Recibe un ticket de 2ª profesión (Montura de Clase) Mejoras en el Auto-farm Hemos reestructurado la IA del auto-farm Corregida la zona de caza Configuraciones de alcance de la caza automática Clanes y Alianzas Máximo de miembros por clan: 25 miembros Máximo de clanes por alianza: 1 clan El clan ya inicia nivel 8, sin reputación y sin skills Comandos Dentro del Juego .cfg - Para ajustar configuraciones del juego .instancezone - Verificar el tiempo de instancias .sellbuff - Para comenzar a vender buffs .topclan - Para verificar el top clan .acp - Para usar el sistema de auto potion Bono de EXP Extra en la Party 6 miembros: 20% 7 miembros: 30% 8 miembros: 40% 9 miembros: 50% NPC Buff Duración: 1 hora Total de buffs: 24 + 4 (Divine Inspiration) Buffs básicos sin protección y sin profecías   Join  >> DISCORD <<    
    • 🚀 MoMoProxy Static Residential Proxies For Sale!     🔹 Stable, secure & high-anonymity 🔹 >10Mbps speed, <10ms latency 🔹 99.99% uptime & static IPs 🔹 Unlimited traffic & connections 🌍 30M+ clean residential IPs ✅ Whitelist & user/pass auth 💳 Flexible plans (7/30/90 days) 💰 From $3/IP (Pay-per-IP) 🔥 Perfect for: ✔️ Ad verification ✔️ E-commerce/social media ✔️ Data scraping ✔️ Anti-detect browsers 🆓 Start free trial today! 🔗 [Insert Link] #Proxy #ResidentialProxies #WebScraping #DigitalMarketing   1/ Why Choose MoMoProxy? ✅ Global ISP network (30M+ IPs) ✅ Dedicated dashboard for easy management ✅ 24/7 stable operation ✅ HTTP(S)/SOCKS5 support 2/ Use Cases: 📊 Ad fraud detection 🛒 Sneaker copping & e-com 📱 Social media automation 🌐 Travel aggregation & more! 3/ Get Started in 4 Steps: A. Pick MoMoProxy B. Grab your IP credentials C. Configure your tool D. Enjoy unlimited sessions!   https://momoproxy.com/static-residential-proxies https://momoproxy.com/static-residential-proxies https://momoproxy.com/static-residential-proxies    
    • ➡ Discount for your purchase: MAY2025 (10% discount) ➡ Our Online Shop: https://socnet.store  ➡ Our SMM-Boosting Panel: https://socnet.pro  ➡ Telegram Shop Bot: https://socnet.shop  ➡ Telegram Support: https://t.me/solomon_bog  ➡ Telegram Channel: https://t.me/accsforyou_shop  ➡ Discord Support: @AllSocialNetworksShop  ➡ Discord Server: https://discord.gg/y9AStFFsrh  ➡ WhatsApp Support: https://wa.me/79051904467 ➡ WhatsApp Channel: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n  ➡ Email Support: solomonbog@socnet.store 
    • ➡ Discount for your purchase: MAY2025 (10% discount) ➡ Our Online Shop: https://socnet.store  ➡ Our SMM-Boosting Panel: https://socnet.pro  ➡ Telegram Shop Bot: https://socnet.shop  ➡ Telegram Support: https://t.me/solomon_bog  ➡ Telegram Channel: https://t.me/accsforyou_shop  ➡ Discord Support: @AllSocialNetworksShop  ➡ Discord Server: https://discord.gg/y9AStFFsrh  ➡ WhatsApp Support: https://wa.me/79051904467 ➡ WhatsApp Channel: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n  ➡ Email Support: solomonbog@socnet.store 
    • Special offer until end of the month, don't lose it. 250  include datapack and patch latest.
  • Topics

×
×
  • Create New...