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

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Офф торг на l2teon. Как реализовать и возможно ли это? (https://forum.zone-game.info/showthread.php?t=7609)

MelkiyGnom 17.04.2010 18:05

Офф торг на l2teon. Как реализовать и возможно ли это?
 
Доброе время суток уважаемые админы/гм и прочие представители класса правящего...

Вот возникла такая проблема очень нужен офф торг. Но с великим удивлением мы узнали что сборка l2teon Interlude данной фишки не предусматривает.

Вот и очень хотелось бы узнать реально ли реализовать это, и если да то как? =) За инструкцию для нубов отдельное большое человеческое СПАСИБО =)

:)

Devilop 17.04.2010 19:26

Re: Офф торг на l2teon. Как реализовать и возможно ли это?
 
если есть исходники то делаешь новую команду которая после введения выкидывает игрока из игры а чара оставляет

MelkiyGnom 17.04.2010 20:20

Re: Офф торг на l2teon. Как реализовать и возможно ли это?
 
Это то мы понимаем. Как именно сделать эту команду =) Обьснение требуется для нубов =)

Ozzy 17.04.2010 21:00

Re: Офф торг на l2teon. Как реализовать и возможно ли это?
 
Тебе нужно создать воисхендлер ну и саму систему офф трейда:) Причем лучше не создавать с нуля а посмотреть как это реализовано в других сборках. Если что скажи в какой сборке (с сорцами) есть офф трейд - постараюсь помочь :)

bizi 17.04.2010 22:52

Re: Офф торг на l2teon. Как реализовать и возможно ли это?
 
Ребят а подскажите в зборке L2JFree 1.1.5A stable (Hellbaund) офф трейд реализован ???

Devilop 17.04.2010 23:20

Re: Офф торг на l2teon. Как реализовать и возможно ли это?
 
странно
начался разговор про ИТ зборку а закончился вопросом про Hellbaund

Ozzy 17.04.2010 23:33

Re: Офф торг на l2teon. Как реализовать и возможно ли это?
 
bizi, а что тебе мешает посмотреть?

bizi 18.04.2010 02:30

Re: Офф торг на l2teon. Как реализовать и возможно ли это?
 
Я проверил он не реализован (.
Кто может помочь с исходниками к этой зборке, да и в настройке офф торга.
ICQ и Skype смотрите в профиле.

Joker 27.04.2010 10:33

Re: Офф торг на l2teon. Как реализовать и возможно ли это?
 
Ozzy,
вот оффлайн торг из сорцев Ighap,как его мона засунуть в l2jteon?
PHP код:

/*
 * 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.l2emu.gameserver.datatables;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.l2emu.Config;
import com.l2emu.L2DatabaseFactory;
import com.l2emu.gameserver.idfactory.IdFactory;
import com.l2emu.gameserver.model.L2ManufactureItem;
import com.l2emu.gameserver.model.L2ManufactureList;
import com.l2emu.gameserver.model.L2World;
import com.l2emu.gameserver.model.TradeList.TradeItem;
import com.l2emu.gameserver.model.actor.instance.L2PcInstance;

public class 
OfflineTradersTable
{
    private final static 
Log _log LogFactory.getLog(OfflineTradersTable.class);

    public static 
void storeTradeItems()
    {
        
System.out.println("Store offline traders...");
        
Connection con null;
        try
        {
            
con L2DatabaseFactory.getInstance().getConnection();
            
PreparedStatement stm1 con.prepareStatement("insert into `offline_characters` values(?,?,?,?,?)");
            
PreparedStatement stm2 con.prepareStatement("insert into `offline_shops` values(?,?,?,?)");
            for(
L2PcInstance pc L2World.getInstance().getAllPlayers().values())
            {
                if(
pc.isOfflineTrade()) 
                
synchronized(pc)
                {
                    
int shopId IdFactory.getInstance().getNextId();
                    
stm1.setInt(1pc.getObjectId());
                    
stm1.setInt(2shopId);
                    
stm1.setInt(3pc.getPrivateStoreType());
                    
String title "";
                    
int isPackage  0;
                    if(
pc.getPrivateStoreType()==L2PcInstance.STORE_PRIVATE_BUY
                    {
                        
title pc.getBuyList().getTitle();
                        
isPackage pc.getBuyList().isPackaged()?1:0;
                    }
                    else if(
pc.getPrivateStoreType()==L2PcInstance.STORE_PRIVATE_SELL ||
                            
pc.getPrivateStoreType()== L2PcInstance.STORE_PRIVATE_PACKAGE_SELL)
                    {
                        
title pc.getSellList().getTitle();
                        
isPackage pc.getSellList().isPackaged()||pc.getPrivateStoreType()== L2PcInstance.STORE_PRIVATE_PACKAGE_SELL ?1:0;
                    }
                    else 
                        
title pc.getCreateList().getStoreName();
                    
stm1.setInt(4isPackage);
                    
stm1.setString(5title);
                    
stm1.execute();

                    
stm2.setInt(1shopId);
                    switch(
pc.getPrivateStoreType()) 
                    {
                        case 
L2PcInstance.STORE_PRIVATE_BUY:
                            for(
TradeItem itpc.getBuyList().getItems() ) 
                            {
                                
stm2.setInt(2it.getItem().getItemId());
                                
stm2.setLong(3it.getCount());
                                
stm2.setLong(4it.getPrice());
                                
stm2.execute();
                            }
                            break;
                        case 
L2PcInstance.STORE_PRIVATE_PACKAGE_SELL:
                        case 
L2PcInstance.STORE_PRIVATE_SELL
                            for(
TradeItem itpc.getSellList().getItems())
                            {
                                
stm2.setInt(2it.getObjectId());
                                
stm2.setLong(3it.getCount());
                                
stm2.setLong(4it.getPrice());
                                
stm2.execute();
                            }
                            break;
                        case 
L2PcInstance.STORE_PRIVATE_MANUFACTURE:
                            for(
L2ManufactureItem itpc.getCreateList().getList())
                            {
                                
stm2.setInt(2it.getRecipeId() );
                                
stm2.setInt(30);
                                
stm2.setLong(4it.getCost());
                                
stm2.execute();
                            }
                            break;
                    }
                }
            }
            
stm1.close();
            
stm2.close();
        }
        catch (
Exception e)
        {
            
System.out.println("OfflineTradersTable[storeTradeItems()]: Error while saving offline traders: " e);
            
e.printStackTrace();
        }
        
finally
        
{
            
L2DatabaseFactory.close(con);
        }
    }

    public static 
void loadOffliners()
    {
        
System.out.print("Load offline traders...");
        
Connection con null;
        
int nTraders=0;
        try
        {
            
con L2DatabaseFactory.getInstance().getConnection();
            
PreparedStatement stm con.prepareStatement("Select charId, shopid, mode, packaged, title from offline_characters");
            
PreparedStatement stm2 con.prepareStatement("select itemid, count, price from offline_shops where shopid=?");
            
ResultSet rs stm.executeQuery();
            while(
rs.next())
            {
                
L2PcInstance offliner L2PcInstance.load(rs.getInt(1));
                if(
offliner!=null) try
                {
                    
stm2.setInt(1rs.getInt(2));
                    
ResultSet rs2 stm2.executeQuery();
                    while (
rs2.next())
                    {
                        switch(
rs.getInt(3))
                        {
                            case 
L2PcInstance.STORE_PRIVATE_BUY:
                                
offliner.getBuyList().addItemByItemId(rs2.getInt(1), rs2.getInt(2), rs2.getInt(3));
                                break;
                            case 
L2PcInstance.STORE_PRIVATE_SELL:
                                
offliner.getSellList().addItem(rs2.getInt(1), rs2.getInt(2), rs2.getInt(3));
                                break;
                            case 
L2PcInstance.STORE_PRIVATE_MANUFACTURE:
                                
offliner.getCreateList().add(new L2ManufactureItem(rs2.getInt(1),rs2.getInt(3)));
                                break;
                        }
                    }
                    
rs2.close();
                    
                    
offliner.spawnMe();
                    
                    
offliner.sitDown();
                    if (
Config.OFFLINE_SET_NAME_COLOR)
                        
offliner.getAppearance().setNameColor(Config.OFFLINE_NAME_COLOR);
                    
offliner.setPrivateStoreType(rs.getInt(3));
                    switch(
rs.getInt(3))
                    {
                        case 
L2PcInstance.STORE_PRIVATE_BUY:
                            
offliner.getBuyList().setTitle(rs.getString(5));
                            
offliner.getBuyList().setPackaged(rs.getInt(4)!=0);
                            break;
                        case 
L2PcInstance.STORE_PRIVATE_SELL:
                            
offliner.getSellList().setTitle(rs.getString(5));
                            
offliner.getSellList().setPackaged(rs.getInt(4)!=0);
                            break;
                        case 
L2PcInstance.STORE_PRIVATE_MANUFACTURE:
                            
offliner.getCreateList().setStoreName(rs.getString(5));
                            break;
                    }
                    
offliner.setOfflineTrade(true);
                    
offliner.broadcastUserInfo();
                    
nTraders++;
                }
                catch(
Exception e)
                {
                    
e.printStackTrace();
                    
offliner.decayMe();
                    
offliner null;
                }
            }
            
stm2.close();
            
rs.close();
            
stm.close();
            
stm con.prepareStatement("delete from offline_characters");
            
stm.execute();
            
stm.close();
            
stm con.prepareStatement("delete from offline_shops");
            
stm.execute();
            
stm.close();
            
            
_log.info(nTraders+" trader(s) loaded");
        }
        catch (
Exception e)
        {
            
_log.error("OfflineTradersTable[loadOffliners()]: Error while loading offline traders: " e);
        }
        
finally
        
{
            
L2DatabaseFactory.close(con);
        }
    }



Lomeista 27.04.2010 16:40

Re: Офф торг на l2teon. Как реализовать и возможно ли это?
 
реализовал офф трейд за основу был взят офф трейд с EmuRT


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

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