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

A fast rework,

 

/*
* 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.StringTokenizer;

import com.l2jfrozen.gameserver.ai.CtrlIntention;
import com.l2jfrozen.gameserver.model.L2World;
import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed;
import com.l2jfrozen.gameserver.network.serverpackets.MyTargetSelected;
import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jfrozen.gameserver.network.serverpackets.ValidateLocation;
import com.l2jfrozen.gameserver.templates.L2NpcTemplate;

import javolution.text.TextBuilder;

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);
	      }
	      
	      else if(command.startsWith("donate"))
	      {
	    	  StringTokenizer st = new StringTokenizer(command);
	    	  st.nextToken();
	    	  String amount = null;
	    	  int pin1 = 0;
	    	  int pin2 = 0;
	    	  int pin3 = 0;
	    	  int pin4 = 0;
	    	  String message = "";
	    	  
	    	  try
	    	  {
	    		 amount = st.nextToken();
	    		 pin1 = Integer.parseInt(st.nextToken());
	    		 pin2 = Integer.parseInt(st.nextToken());
	    		 pin3 = Integer.parseInt(st.nextToken());
	    		 pin4 = Integer.parseInt(st.nextToken());
	    		 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 "+ amount +" "+ message + " "+ pin1+ " "+ pin2+ " "+ pin3+ " "+ pin4);
	    		 out.close();
	    		 player.sendMessage("Donation sent. GMs will check it soon. Thanks...");
	    		 
	    		 for (L2PcInstance allgms: L2World.getInstance().getAllGMs())
	    		 {
	    			 allgms.sendMessage(player.getName() +" sent a donation.");
	    		 }
	    	  }
	    	  catch(Exception e)
	    	  {
	    		  e.printStackTrace();
	    	  }
	      }
	      
  }

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

		if(this != player.getTarget())
		{
			player.setTarget(this);
			MyTargetSelected my = new MyTargetSelected(getObjectId(), 0);
			player.sendPacket(my);
			my = null;
			player.sendPacket(new ValidateLocation(this));
		}
		else
		{
			if(!canInteract(player))
			{
				player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
			}
			else
			{
				showHtmlWindow(player);
			}
		}
		player.sendPacket(ActionFailed.STATIC_PACKET);
	}

  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 Amount:</font></td><td><combobox width=80 height=17 var=amount 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 $amount $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);
  }
}

Guest
This topic is now closed to further replies.


×
×
  • Create New...