Ir para conteúdo
  • Cadastre-se

[Guia]Agregar item a un pj mediante SQL


Posts recomendados

Esta guiá es casi un copy paste de una respuesta que di hace un momento a un usuario, la cual coloco aquí para que ya quede.

Creo que hay programas para esto aunque nunca use ninguno de los que puede andar por ahí pero no esta de mas saber como es que dicho programa agregaria el item. Y ya sea utilizando un programa, el mismo server o manualmente, los items se insertan mediante sql a la base de datos.

 

Todos los items están en la tabla "items", a este es a la que le insertan los items. Cuando insertes un item en esta table este tiene que tener un id unico, el cual va en la columna object_id.

Para hacer tu propio sql puedes ir la tabla "items" y exportar cualquier item, luego teniendo el sql que seria como el siguiente(puede llegar a variar según el serverpack):

 

 

INSERT INTO `items` (`owner_id`, `object_id`, `item_id`, `count`, `enchant_level`, `loc`,

 

`loc_data`, `time_of_use`, `custom_type1`, `custom_type2`, `mana_left`, `time`) VALUES

(CHAR_ID, ID_UNICO_DEL_ITEM, 57, 100, 0, 'INVENTORY', 0, NULL, 0, 0, '-1', '0');

 

 

 

En CHAR_ID tiene que ir el id del pj al que pertenecera el item.

El ID_UNICO_DEL_ITEM es el identificador del item, este es único(por ende no puede estar

 

repetido), para colocar este tienes que buscar el id maximo de items(object_id) e

 

Muchas Gracias Espero que Les Sirva De Buena Ayuda

 

incrementarlo(si lo haces con el server online, cosa que no es conveniente, te recomiendo

 

que lo incrementes una cantidad suficiente para evitar que hayan id duplicados). Para saber

 

el maximo puedes usar:

 

SELECT MAX(object_id) FROM items;

 

 

 

Ahora te paso a explicar algunas columnas:

item_id => es muy obvio, este es el id del item(ya sea weapon, armor o etcitems).

count => la cantidad del item, con este campo ten cuidado, depende del item que bajas a dar

 

si permite o no que sea mas de 1. O sea los items que no se juntan como la adena tienen que

 

tener siempre 1.

enchant_level => Para items enchantables(weapon, armor) es la cantidad de enchant que tiene

 

el item, para pets es el level del pet(guarda, para los pets se usa este campo pero también

 

tienes que usar la tabla pets, sino vas a tener problemas con el pet).

loc => En donde esta el item, hay varios, te dejo una lista:

CLANWH: Ware de clan

FREIGHT: El freight(lo que se usa para pasar items de un pj a otro en la misma cuenta)

INVENTORY: El inventario del pj

PAPERDOLL: El item esta equipado

WAREHOUSE: El ware privado del pj

 

loc_data => Este no recuerdo bien, pero creo que era la ubicación del item, esta se indica

 

mediante un numero el que depende de en donde esta. En el que esto es mas importante es en

 

el caso que lo coloques en el PAPERDOLL(Equipado) ya que indicas en donde esta equipado.

Hay mas columnas pero no las he usado nunca, estas tienen valores por default por lo que no

 

incluirlas no te dará problemas(a menos que insertes un item especial que los requiera),

 

estas columnas son:

time_of_use, custom_type1, custom_type2, mana_left y time.

De estas la columna "mana_left" se usa para items shadows(los que duran un tiempo) en la

 

cual indican el tiempo que le queda de uso.

 

A todo esto se me olvido aclarar que para colocar un item el pj destinatario(del que

 

colocamos el CHAR_ID) tiene que estar offline ya que sino el server no le reconocerá el

 

item(Esto puede llegar a variar según el server pero en la mayoría funcionara así).

 

Les dejo un script que arme recién, este tiene la estructura de la tabla items de L2jServer

 

Epilogue(Que es un pre-configurado que estoy armando pronto lo posteare en l2jbrasil):

 

 

-- Colocar en 1 para agregar con el server offline sino 100 u otro numero elevado

 

(dependiendo la cantidad de pjs online) si el server esta online

SET @INC_OBJECT_ID = 1;

-- END - CONFIG --

-- BEGIN - EXTRA CONFIG --

-- Valor para el campo "loc_data"

SET @LOC_DATA = 0;

-- Valor para el campo "time_of_use"

SET @TIME_OF_USE = NULL;

-- Valor para el campo "custom_type1"

SET @CUSTOM_TYPE1 = 0;

-- Valor para el campo "custom_type2"

SET @CUSTOM_TYPE2 = 0;

-- Valor para el campo "mana_left"

SET @MANA_LEFT = '-1';

-- Valor para el campo "time"

SET @ITEM_TIME = '0';

-- END - EXTRA CONFIG --

 

SET @ID_UNICO_DEL_ITEM = (SELECT MAX(object_id) FROM items) + @INC_OBJECT_ID;

 

INSERT INTO `items` (`owner_id`, `object_id`, `item_id`, `count`, `enchant_level`, `loc`,

 

`loc_data`, `time_of_use`, `custom_type1`, `custom_type2`, `mana_left`, `time`) VALUES

(@CHAR_ID, @ID_UNICO_DEL_ITEM, @ITEM_ID, @ITEM_COUNT, @ENCHANT, @LOC, @LOC_DATA,

 

@TIME_OF_USE, @CUSTOM_TYPE1, @CUSTOM_TYPE2, @MANA_LEFT, @ITEM_TIME);

 

 

Para el que se quiera bajar directamente el archivo .sql para luego editarlo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

Link para o comentário
Compartilhar em outros sites


  • 2 years later...
Postado · Desaprovada por Marlon, Abril 2, 2016 - Nenhuma razão informada.
Desaprovada por Marlon, Abril 2, 2016 - Nenhuma razão informada.

Galera que tiver esse mesmo problema... consegui resolver aqui seguinte...
ele da o problema no navicat na tabela item
voce vai nela clica em File>Design Table> onde tem mana_left o Type dela voce muda de decimal para int.
pronto resolvido o problema ^_^

Link para o comentário

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...




×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.