Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   [Вопрос]Multisell (https://forum.zone-game.info/showthread.php?t=13506)

MsKira 09.04.2011 23:55

[Вопрос]Multisell
 
Доброго времени суток уважаемые читатели данного форума!
Я обращаюсь к вам с такой проблемой!
Я Использую сервер (L2J Server Freya) последняя ревизия!
У меня на сервере установлен GM Shop в Community Board
Всё работает шикарно, но есть 1 вопросик который меня немного пугает!
Собственно вопрос подскажите пожалуйста как сделать так чтобы GM Shop менял точеную броню и оружие , (а именно у меня на сервере так игрок покупает к примеру Dynasty Set и чтобы к примеру курточку от Dynasty Set(a) поменять на курточку Dynasty PvP Set нада заплатить немного денег и тд) так вот собственно вывод к примеру если у игрока курточка заточена к примеру на +25 а ему нужна PvP курточка , то как реализовать обмен чтобы игрок с курточкой Dynasty +25 мог поменять на курточку Dynasty PvP и чтобы сохранилась заточка на +25

Мои догадки:
Значит я пробовал сделать так добавить:
<list maintainEnchantment="true" xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance" ns0:noNamespaceSchemaLocation="multisell.xsd">

в начало Multisell листа ( но не помогло)

Хачу сказать что многие пишут поддержка ядра нужна но прошу не путать мне надо чтобы GM shop менял одежду точеную! а не чтобы продавал сразу с заточкой!

Дальше я подумал о том как происходит к примеру вставка СА в точеные пухи полазил по Multisell и нашёл ту мультиселлку и подставил данные но опять всё напрасно

Прошу вашей помощь. !!!
Помогите пожалуйста!
Если для этого нужен Патч в Ядро то скиньте ссылки ! очень вс прошу!

Ro_0TT 09.04.2011 23:57

Re: [Вопрос]Multisell
 
Посмотри как мамон вставляет SA... (_exc_multisell 111)

MsKira 10.04.2011 00:15

Re: [Вопрос]Multisell
 
Дальше я подумал о том как происходит к примеру вставка СА в точеные пухи полазил по Multisell и нашёл ту мультиселлку и подставил данные но опять всё напрасно
-----------------------------------------------------------------------------------
я Же писал что пробовал Так указать
Может я к исходному файлу не так указал путь!
Вот собственно!
Как у меня сейчас
GM Shop HTM
<table width=600>
<tr>
<td><center><img src="icon.armor_t97_u_i00" width=32 height=32><br1><button value="S80 PvP Grade" action="bypass -h _bbsmultisell;23;64010" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></center></td>
<td><center><img src="icon.armor_t91_uf_i00" width=32 height=32><br1><button value="S80 PL Grade" action="bypass -h _bbsmultisell;23;64011" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></center></td>
<td><center><img src="icon.armor_t91_uf_i00" width=32 height=32><br1><button value="S80 Grade" action="bypass -h _bbsmultisell;23;64009" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></center></td>
</table>


А вот что в самой мультиселке
<list maintainEnchantment="true" xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance" ns0:noNamespaceSchemaLocation="multisell.xsd">

Ro_0TT 10.04.2011 10:38

Re: [Вопрос]Multisell
 
В BBS ты не сделаешь, нужно дописывать ядро. Слей сюда ту часть кода, которая обрабатывает "_bbsmultisell" из твоей Комьюнити.

MsKira 10.04.2011 15:24

Re: [Вопрос]Multisell
 
Вот собственно код для Community Board
CommunityBoard.java:
Свернуть ↑Развернуть ↓

krisadr 10.04.2011 15:28

Re: [Вопрос]Multisell
 
это не все... тут ничего не поймешь. только проверка

MsKira 10.04.2011 15:31

Re: [Вопрос]Multisell
 
Вот добавил ещё и сам код Multisell
Multisell.java:
Свернуть ↑Развернуть ↓


Добавлено через 3 минуты
Давай я наверное кину см патч от моего Community Board
Community Board by MsKira

Добавлено через 4 часа 42 минуты
Что так не кто не может помочь????

Добавлено через 6 часов 45 минут
Код:

package com.l2jserver.gameserver.communitybbs;

import java.util.StringTokenizer;

import com.l2jserver.Config;
import com.l2jserver.gameserver.communitybbs.Manager.BuffBBSManager;
import com.l2jserver.gameserver.communitybbs.Manager.ClanBBSManager;
import com.l2jserver.gameserver.communitybbs.Manager.PostBBSManager;
import com.l2jserver.gameserver.communitybbs.Manager.RegionBBSManager;
import com.l2jserver.gameserver.communitybbs.Manager.TeleportBBSManager;
import com.l2jserver.gameserver.communitybbs.Manager.TopBBSManager;
import com.l2jserver.gameserver.communitybbs.Manager.TopicBBSManager;
import com.l2jserver.gameserver.datatables.MultiSell;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.entity.TvTEvent;
import com.l2jserver.gameserver.network.L2GameClient;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.ShowBoard;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;

public class CommunityBoard
{
        private CommunityBoard()
        {
        }
       
        public static CommunityBoard getInstance()
        {
                return SingletonHolder._instance;
        }
       
        public void handleCommands(L2GameClient client, String command)
        {
                L2PcInstance activeChar = client.getActiveChar();
                if (activeChar == null)
                        return;
               
                switch (Config.COMMUNITY_TYPE)
                {
                        default:
                        case 0: //disabled
                                activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.CB_OFFLINE));
                                break;
                        case 1: // old
                                RegionBBSManager.getInstance().parsecmd(command, activeChar);
                                break;
                        case 2: // new
                                if (command.startsWith("_bbsclan"))
                                {
                                        ClanBBSManager.getInstance().parsecmd(command, activeChar);
                                }
                                else if (command.startsWith("_bbsmemo"))
                                {
                                        TopicBBSManager.getInstance().parsecmd(command, activeChar);
                                }
                                else if (command.startsWith("_bbstopics"))
                                {
                                        TopicBBSManager.getInstance().parsecmd(command, activeChar);
                                }
                                else if (command.startsWith("_bbsposts"))
                                {
                                        PostBBSManager.getInstance().parsecmd(command, activeChar);
                                }
                                else if (command.startsWith("_bbstop"))
                                {
                                        TopBBSManager.getInstance().parsecmd(command, activeChar);
                                }
                                else if (command.startsWith("_bbshome"))
                                {
                                        TopBBSManager.getInstance().parsecmd(command, activeChar);
                                }
                                else if (command.startsWith("_bbs_buff"))
                                {
                                        BuffBBSManager.getInstance().parsecmd(command, activeChar);
                                }
                                else if (command.startsWith("_bbsteleport;"))
                                {
                                        TeleportBBSManager.getInstance().parsecmd(command, activeChar);
                                }
                                else if (command.startsWith("_bbsmultisell;"))
                                {
                                        if(activeChar.isDead() || activeChar.isAlikeDead() || TvTEvent.isStarted() || activeChar.isInSiege() || activeChar.isCastingNow() || activeChar.isInCombat() || activeChar.isAttackingNow() || activeChar.isInOlympiadMode() || activeChar.isInJail() || activeChar.isFlying() || activeChar.getKarma() > 0 || activeChar.isInDuel()){
                                activeChar.sendMessage("В данных условиях использовать Шоп запрещено");
                                                return;
                            }
                                        StringTokenizer st = new StringTokenizer(command, ";");
                            st.nextToken();
                            TopBBSManager.getInstance().parsecmd("_bbstop;" + st.nextToken(), activeChar);
                            int multisell = Integer.parseInt(st.nextToken());
                            MultiSell.getInstance().separateAndSend(multisell, activeChar, null, false);
                                }
                                else if (command.startsWith("_bbsloc"))
                                {
                                        RegionBBSManager.getInstance().parsecmd(command, activeChar);
                                }
                                else
                                {
                                        ShowBoard sb = new ShowBoard("<html><body><br><br><center>the command: " + command
                                                        + " is not implemented yet</center><br><br></body></html>", "101");
                                        activeChar.sendPacket(sb);
                                        activeChar.sendPacket(new ShowBoard(null, "102"));
                                        activeChar.sendPacket(new ShowBoard(null, "103"));
                                }
                                break;
                }
        }
       
        /**
        * @param client
        * @param url
        * @param arg1
        * @param arg2
        * @param arg3
        * @param arg4
        * @param arg5
        */
        public void handleWriteCommands(L2GameClient client, String url, String arg1, String arg2, String arg3, String arg4, String arg5)
        {
                L2PcInstance activeChar = client.getActiveChar();
                if (activeChar == null)
                        return;
               
                switch (Config.COMMUNITY_TYPE)
                {
                        case 2:
                                if (url.equals("Topic"))
                                {
                                        TopicBBSManager.getInstance().parsewrite(arg1, arg2, arg3, arg4, arg5, activeChar);
                                }
                                else if (url.equals("Post"))
                                {
                                        PostBBSManager.getInstance().parsewrite(arg1, arg2, arg3, arg4, arg5, activeChar);
                                }
                                else if (url.equals("Region"))
                                {
                                        RegionBBSManager.getInstance().parsewrite(arg1, arg2, arg3, arg4, arg5, activeChar);
                                }
                                else if (url.equals("Notice"))
                                {
                                        ClanBBSManager.getInstance().parsewrite(arg1, arg2, arg3, arg4, arg5, activeChar);
                                }
                                else
                                {
                                        ShowBoard sb = new ShowBoard("<html><body><br><br><center>the command: " + url
                                                        + " is not implemented yet</center><br><br></body></html>", "101");
                                        activeChar.sendPacket(sb);
                                        activeChar.sendPacket(new ShowBoard(null, "102"));
                                        activeChar.sendPacket(new ShowBoard(null, "103"));
                                }
                                break;
                        case 1:
                                RegionBBSManager.getInstance().parsewrite(arg1, arg2, arg3, arg4, arg5, activeChar);
                                break;
                        default:
                        case 0:
                                ShowBoard sb = new ShowBoard("<html><body><br><br><center>The Community board is currently disabled</center><br><br></body></html>", "101");
                                activeChar.sendPacket(sb);
                                activeChar.sendPacket(new ShowBoard(null, "102"));
                                activeChar.sendPacket(new ShowBoard(null, "103"));
                                break;
                }
        }
       
        @SuppressWarnings("synthetic-access")
        private static class SingletonHolder
        {
                protected static final CommunityBoard _instance = new CommunityBoard();
        }
}

Добавлено через 6 часов 52 минуты
Всё Спасибо уважаемому Ro0TT за предоставленную помощь в данной проблеме!
Тему можно закрывать!

Ro_0TT 10.04.2011 22:24

Re: [Вопрос]Multisell
 
Код HTML:

else if (command.startsWith("_exc_bbsmultisell;"))
{
if(activeChar.isDead() || activeChar.isAlikeDead() || TvTEvent.isStarted() || activeChar.isInSiege() || activeChar.isCastingNow() || activeChar.isInCombat() || activeChar.isAttackingNow() || activeChar.isInOlympiadMode() || activeChar.isInJail() || activeChar.isFlying() || activeChar.getKarma() > 0 || activeChar.isInDuel()){
activeChar.sendMessage("В данных условиях использовать Шоп запрещено");
return;
}
StringTokenizer st = new StringTokenizer(command, ";");
st.nextToken();
TopBBSManager.getInstance().parsecmd("_bbstop;" + st.nextToken(), activeChar);
int multisell = Integer.parseInt(st.nextToken());
MultiSell.getInstance().separateAndSend(multisell, activeChar, null, true);
}

Суть в этом:

MultiSell.getInstance().separateAndSend(multisell, activeChar, null, true);

Если true - то будет как у Мамона в при открытие мультиселла ничего не видно, кроме того, что вы можете обменять (если предмет обмена есть у вас в рюкзаке), в этом случае точка сохраняется.

false - обычный мультиселл.


Текущее время: 05:46. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot