El_Vara

01/05/2014 18:16:45

¡Althor esta pregunta es para ti! xD

Estuve mirando tu sistema de tesoros, y veo que hay muuchos cofres, pero yo querría hacer un solo cofre para... cada dificultad, osea:

1 cofre para tesoro bajo.
1 cofre para tesoro medio.
1 cofre para tesoro alto.
1 cofre para tesoro épico.

Y ahí meter todo junto, ya sea desde misceláneos hasta armas. Mi idea es, que siempre salieran el tesoro en su sección. Por ejemplo que en los bajos nunca salga algo medio, pero en el medio que nunca salga algo bajo. La idea es que cualquier nivel pueda crear cada tipo de objeto osea un nivel 1 que va con un nivel 20 por ejemplo, pueda crear un tesoro épico en el cofre épico.

Para las criaturas haría otros cofres, ya que... ahí si me gustaría que tuviera niveles, lo que no se es, ¿si un nivel 20 mata a un tejón y ese tejón suelta tesoro al ser nivel 20 el jugador el tejón soltará algo épico?

¿Se podría hacer? ¿Algún consejo? Y sí, me he leído los manuales pero no me explico el porqué, no me va.

He probado a crear mi propios cofres así, y anular todos los demás, pero por algo no me sale...

AlthorDeMalavir

03/05/2014 13:37:46

El problema de solo usar un cofre para todos los objetos, es que el cofre tiene un límite de número de objetos que puede contener, creo que son 15 páginas de objetos que puede tener un cofre, si superas eso el cofre deja de ir y no se generarían tesoros de ese cofre, por eso están divididos en categorías de nivel y tipo de objetos, para que hayan menos objetos por cofre. Lo que propones solo es viable si tubieses muy pocos objetos de tesoro, y eso es un mierdol xD

Por otro lado, se puede hacer que los cofres de tu servidor solo generen objetos de su nivel de cofre pero eso tiene el problema que un cofre nivel alto no generaría una ioun por ejemplo y al personaje puede serle útil, pero vamos, para hacer eso hay que modificar los scripts porque ahora mismo generan de su nivel de cofre hacia abajo, son scripts bastante complicados y no creo que puedas hacerlo.

La pregunta del tejón, pues no, un tejón no puede dar objetos épicos en mi sistema porque el objeto que suelte depende del nivel del monstruo y no del nivel del pnj, para cambiar eso habría que modificar los scripts ya que el script de configuración del sistema no contempla esa posibilidad.

El_Vara

04/05/2014 15:17:11

He modificado los cofres de manera que sueltan más o menos cosas medio aceptables con la economía pensada para mi servidor, un +10 al sistema, gracias Althor por la explicación :)

El_Vara

07/05/2014 03:05:19

Althor tengo una dudilla, si a los cofres que pongo por el mundillo le quito la etiqueta para ponerles otra para el sistema de limpieza pasa algo? O se puede modificar la etiqueta a gusto?

AlthorDeMalavir

07/05/2014 06:51:48

Si les cambias las etiquetas a los cofres dejaran de funcionar, el sistema se basa en sus etiquetas por defecto para identificar el nivel de cofre que son.

AlthorDeMalavir

07/05/2014 06:52:36

Lo que no entiendo es lo del sistema de limpieza, para que quieres cambiarles la etiqueta?

El_Vara

07/05/2014 14:58:27

El sistema de limpieza, hace que el jugador cuando sale de x área, a los x segundos elimine todo objeto. (Tesoros e inventarios, criaturas) Ya que cuando sales del área las bolsitas que dejan las criaturas se van.

El sistema de tesoros tiene una etiqueta especial que hace que no se elimine lo que tiene ese ubicado, pero solo es una, quiero añadir más etiquetas para todos los cofres que hay, ya veré como.

El script en cuestión es éste. http://www.clandlan.net/foros/topic/47483-limpieza-de-area-inteligente/

Si se puede hacer mejor sistema para eliminar las bolsitas/cadaveres/tesoro de las criaturas cuando las matas es bienrecibido ^^

EDITO:
He modificado el sistema a mi manera, las criaturas no se eliminan, ni los encuentros se resetean. Solo se borran los objetos e inventarios de los ubicados y criaturas muertas.

Lo que quiero conseguir es, que solo elimine los inventarios de las criaturas muertas o los tesoros que dejan.

[quote:28a00b71f4]int SiPC()
{
object oPC = GetFirstObjectInArea();
while(GetIsObjectValid(oPC))
{
if(GetIsPC(oPC))
{
return TRUE;
break;
}
oPC = GetNextObjectInArea();
}
return FALSE;
}
void main()
{
float fD = 0.1;

if (SiPC()==TRUE)return;

object oBicho = GetFirstObjectInArea();
object oEncuentro = GetFirstObjectInArea();


//============================================================================\\
//------------------------ # Limpia los Objetos # ----------------------------\\
//============================================================================\\

object oItem = GetFirstObjectInArea();
while (GetIsObjectValid(oItem) == TRUE)
{
if(GetObjectType(oItem)==OBJECT_TYPE_ITEM)
{
DelayCommand(fD, DestroyObject(oItem));
fD=fD+0.1;
}
oItem = GetNextObjectInArea();
}

//============================================================================\\
//------------------------ # Limpia los Efectos # ----------------------------\\
//============================================================================\\

object oEfecto = GetFirstObjectInArea();
while (GetIsObjectValid(oEfecto) == TRUE)
{
if(GetObjectType(oEfecto)==OBJECT_TYPE_AREA_OF_EFFECT)
{
DelayCommand(fD, DestroyObject(oEfecto));
fD=fD+0.1;
}
oEfecto = GetNextObjectInArea();
}

//============================================================================\\
//--------------------- # Limpia Bolsa de Cadaveres # ------------------------\\
//============================================================================\\

object oBolsita = GetFirstObjectInArea();
while (GetIsObjectValid(oBolsita) == TRUE)
{
if((GetObjectType (oBicho)==OBJECT_TYPE_CREATURE) && !GetIsDead (oBicho)) break;
{
if(GetIsPC(oBolsita) || GetIsDM(oBolsita))break;


// Utilizar para objetos que no queremos que sean eliminados, como cofres y demas.
// if(GetTag(oBolsita)=="No_se_elimina")
// break;

object oDesecho = GetFirstItemInInventory(oBolsita);
while(GetIsObjectValid(oDesecho) == TRUE)
{
DelayCommand(fD, DestroyObject(oDesecho));
fD=fD+0.1;

oDesecho = GetNextItemInInventory(oBolsita);
}
oBolsita = GetNextObjectInArea();
}
}
}[/quote:28a00b71f4]

El_Vara

07/05/2014 17:45:05

Encontré la manera de poner toodas las etiquetas de tooodos los cofres estandar ^^

AlthorDeMalavir

07/05/2014 22:24:41

Realmente no es necesario que limpie los cofres, eso no sobrecarga el servidor, lo que lo sobrecarga es las criaturas muertas y bolsas de restos que dejan en las muertes, por los cofres no te preocupes.

Otra cosa que sobrecarga es que hayan criaturas en las áreas, ya se hayan generado por un encuentro y se queden, o que las hayas puesto tu en el área, como mercaderes y demás pnjs, eso es lo que más sobrecarga el servidor.