Перейти к содержанию
Авторизация  
romax

Vk бонус

Рекомендуемые сообщения

Скрипт проверяет последнюю запись на страничке. бонус получать те у кого упомянуто о сервере (ссылка текст...)

if (inputLine.contains("ссылка ..."))
     player.addItem("Vk", 57, 1000, null, true);
package net.sf.l2j.gameserver.arf;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import net.sf.l2j.commons.concurrent.ThreadPool;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
public class VkBonus implements Runnable
{
private static  Map<L2PcInstance, String> vkBonusArr = new HashMap<>();
private static VkBonus jInstance;
/**
  * @return the jVkList
  */
public static  Map<L2PcInstance, String> getjVkList()
{
  return vkBonusArr;
}
public VkBonus()
{
  ThreadPool.schedule(this, 10_000);
}

public static VkBonus getInstance()
{
  if (jInstance == null)
   jInstance = new VkBonus();
  return jInstance;
}

/**
  * @param command
  * @param player
  */
public void setjVkList(L2PcInstance player, String command )
{
  if (vkBonusArr.containsKey(player) || vkBonusArr.containsValue(command.substring(4)))
  {
   player.sendMessage("ID уже зарегистрировано!");
   return;
  }
 
  vkBonusArr.put(player, command.substring(4));
}

public void addBonus(L2PcInstance player, String id)
{
  String inputLine;
  try
  {
   URL jUrl = new URL("https://api.vk.com/api.php?oauth=1&method=wall.get&owner_id=" + id + "&count=1");
   BufferedReader in = new BufferedReader(new InputStreamReader(jUrl.openStream()));
  
   while ((inputLine = in.readLine()) != null)
   {
    if (inputLine.contains("id=0"))
     player.addItem("Vk", 57, 1000, null, true);
    else
     vkBonusArr.remove(player);
   }
  
  }
  catch (Exception e)
  {
   e.printStackTrace();
  }
}
@[member='override']
public void run()
{
  for (;
  {
   jTime(10);
   for (Entry<L2PcInstance, String> entry : vkBonusArr.entrySet())
   {
    addBonus(entry.getKey(), entry.getValue());
   }
  }
 
}
private static void jTime(int sec)
{
  while (sec > 1)
  {
   sec = sec - 2;
   long oneSec = System.currentTimeMillis();
   while (oneSec + 2000L > System.currentTimeMillis())
   {
    try
    {
     Thread.sleep(2000);
    }
    catch (InterruptedException ie)
    {
     /* NOP */}
   }
  }
}

}

 

 

 

 

package net.sf.l2j.gameserver.model.actor.instance;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import net.sf.l2j.gameserver.arf.VkBonus;
import net.sf.l2j.gameserver.cache.HtmCache;
import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;

public class JVkNpcInstance extends L2NpcInstance {
private Map vkFirstLastName = new HashMap<>();

public JVkNpcInstance(int objectId, NpcTemplate template) {
super(objectId, template);
}

@[member='override']
public void onBypassFeedback(L2PcInstance player, String command) {
if (command.startsWith("jvk"))
VkBonus.getInstance().setjVkList(player, command);
}

@[member='override']
public void showChatWindow(L2PcInstance playerInstance, int val) {
if (playerInstance == null)
return;
String htmFile = "data/html/mods/JVkNpc/";

if (VkBonus.getjVkList().containsKey(playerInstance)) {
htmFile += "is.htm";
String htmContent = HtmCache.getInstance().getHtm(htmFile);
if (htmContent != null) {
NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(getObjectId());
npcHtmlMessage.setHtml(htmContent);
npcHtmlMessage.replace("%jvkName%", String.valueOf(getLastFirstName(playerInstance)));
playerInstance.sendPacket(npcHtmlMessage);
}
} else {
if (vkFirstLastName.containsKey(playerInstance))
vkFirstLastName.remove(playerInstance);

htmFile += "add.htm";
String htmContent = HtmCache.getInstance().getHtm(htmFile);
if (htmContent != null) {
NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(getObjectId());
npcHtmlMessage.setHtml(htmContent);
npcHtmlMessage.replace("%objectId%", String.valueOf(getObjectId()));
playerInstance.sendPacket(npcHtmlMessage);
}
}

}

/**
*
* @param playerInstance
* @return Фамилия Имя в vk
*/
private String getLastFirstName(L2PcInstance playerInstance) {
if (vkFirstLastName.containsKey(playerInstance))
return vkFirstLastName.get(playerInstance);
try {
URL jUrl = new URL(
"https://api.vk.com/method/users.get?user_ids=" + VkBonus.getjVkList().get(playerInstance));
String reader = new BufferedReader(new InputStreamReader(jUrl.openStream())).readLine();
Matcher last = Pattern.compile("\"last_name\":\"(.[^\"]*)\"").matcher(reader);
Matcher first = Pattern.compile("\"first_name\":\"(.[^\"]*)\"").matcher(reader);
if (last.find() && first.find())
vkFirstLastName.put(playerInstance, last.group(1) + " " + first.group(1));
} catch (Exception e) {
e.printStackTrace();
}
return vkFirstLastName.get(playerInstance);
}

}

 

,>

 


<npc id="4" idTemplate="31615" name="Pashka" title="Vk Bonus">
  <set name="usingServerSideName" val="true"/>
  <set name="usingServerSideTitle" val="true"/>
  <set name="level" val="70"/>
  <set name="radius" val="8.5"/>
  <set name="height" val="23.5"/>
  <set name="rHand" val="0"/>
  <set name="lHand" val="0"/>
  <set name="type" val="JVkNpc"/>
  <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"/>
  <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>

 

 

 

post-22971-0-75039300-1486417464_thumb.png

post-22971-0-16184600-1486417468_thumb.png

JVkNpcInstance.java.txt

VkBonus.java.txt

  • Upvote 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

проверку надо реализовть по ип через базу, и желательно еще по аккаунту

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

проверку надо реализовть по ип через базу, и желательно еще по аккаунту

как это и зачем? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как это и зачем? будут делать левые страницы и получать бонус

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

как это и зачем? будут делать левые страницы и получать бонус

 

Ну и как ты определишь айпи адрес странички вк? Допустим попросили друга.

Изменено пользователем Corrective

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну и как ты определишь айпи адрес странички вк? Допустим попросили друга.

причем тут ИП адрес странички? награду 1 раз на 1 ип что б можно было получить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

как это и зачем? будут делать левые страницы и получать бонус

 

Клепать левые страницы вк это такое...) я лично создавая одну обплевался

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У нас есть раздел файлов, залейте в него

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну и как ты определишь айпи адрес странички вк? Допустим попросили друга.

в скрипте ID Указан а не айпи страничек )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...