Ertos

28/02/2012 14:33:47

Lo estuve testeando el otro dia, y creia que tardaba en respawnear una hora pero a los 4 minutos o asi los cofres volvieron a dejar otros tesoros distintos, os dejo el script a ver si me podeis decir que esta mal, y que se puede modificar para ponerlo en unos 15-20 minutos

[quote:81b8952050]//Nombre: onopen_cofre_a
//Lugar: OnOpen del ubicado
//genera tesoro alto en cofre u objeto ubicado
//OnOpen del ubicado

#include "NW_O2_CONINCLUDE"

void main()

{
object oItem = OBJECT_INVALID;
int respawntime = 3600;

// Check object for the time it was last opened and see if it is time to respawn
int lastopened = GetLocalInt(OBJECT_SELF,"CS_Opened");
// CS_Openend = 0 on not found, GetLocalInt error return
int currenttime = GetTimeSecond()+60*GetTimeMinute()+3600*GetTimeHour();
if (currenttime > lastopened + respawntime)
{
// respawntime seconds passed?
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",0);
}
if (lastopened > currenttime)
{
// maybe a whole day passed? or it's midnight?
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",0);
}

// Respawn chest
if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") == 0)
{
oItem = GetFirstItemInInventory();
while ( oItem != OBJECT_INVALID )
{
DestroyObject( oItem, 0.0 );
oItem = GetNextItemInInventory();
}
object oLastOpener = GetLastOpener();
// See NW_O2_CONINCLUDE for more Treasure generating scripts,
// Thisone generates high treasure depending on the lastopener level
GenerateHighTreasure(oLastOpener, OBJECT_SELF);
SetLocalInt(OBJECT_SELF,"CS_Opened",GetTimeSecond()+60*GetTimeMinute()+3600*GetTimeHour());
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
}
DelayCommand(90.0, ActionCloseDoor(OBJECT_SELF));
}[/quote:81b8952050]

AlthorDeMalavir

29/02/2012 01:55:00

Para empezar ese script está mal planteado puesto que no toma un origen de tiempo, solo te calcula los segundos de la hora del juego actual, de tal modo que si abres el cofre a la misma hora de juego nunca generará nada y seguramente habrán otro tipo de incongruencias.

Hay que establecer el temporizador desde un origen fijo, que normalmente se toma el número de horas de juego desde el año 0 del mes 0 del dia 0 de la hora 0 del juego, o sea si tienes fecha 01/02/1430 a las 13 horas, pasar todo eso a horas y ya tomar a partir de hay si ha pasado el tiempo para generar el tesoro.

Partiendo de la base que no sabes de scripts te recomiendo que te busques un mejor sistema para generar tesoros, si quieres usar el que usa este servidor yo lo publiqué en el nwvault hace tiempo, tienes la ventaja que puedes consultarme a mi ante cualquier duda xD.

el sistema lo metes, lo compilas y a funcionar, es altamente configurable, incluidos tiempos y objetos dependiendo del nivel del cofre o bicho, solo es meter los objetos que quieres que salgan en unos cofres que hay en varias áreas inaccesibles para el jugador.

Te dejo la dirección

http://nwvault.ign.com/View.php?view=Scripts.Detail&id=3504

Ertos

01/03/2012 11:54:04

A ver, espero que sea uno de esos de "Respawns for dummyes" xD

Ertos

01/03/2012 12:02:11

le he echado un ojo rapido, y tiene buena pinta, pero tengo una duda. es que yo uso el respawn basico del neverwinter por que tengo un hak para que salgan pergaminos de los conjuros nuevos que he metido, y no se si con este saldrian tambien los mismos

AlthorDeMalavir

02/03/2012 00:30:06

No, los pergaminos que salen en los tesoros son los que hay en el contenedor de pergaminos, un cofre en una de las áreas que se llama pergaminos, en todo caso solo tienes que meter hay dentro tus pergaminos para que salgan.

Ertos

02/03/2012 11:13:50

y cada cuanto tiempo se reinician los cofres?

AlthorDeMalavir

02/03/2012 18:48:35

Son las variables del archivo sgt_config que puedes modificar a tu gusto,

[code:1:8c273578c4]
int TG_EPICO = 30; //Tiempo de regeneracion para contenedores ubicados epicos.
int TG_ALTO = 20; //Tiempo de regeneracion para contenedores ubicados altos.
int TG_MEDIO = 10; //Tiempo de regeneracion para contenedores ubicados medios.
int TG_PEKENO = 5; //Tiempo de regeneracion para contenedores ubicados bajos.
[/code:1:8c273578c4]

Ese tiempo está en horas del juego, depende de tu relación de tiempo en el servidor será una cosa u otra, por ejemplo para epicos son 30 horas de juego, en nuestro servidor 3 minutos reales son una hora del juego, por tanto serian 90 minutos reales en regenerar un cofre épico.

Puedes consultar la relación de tiempo de juego-real en editar->propiedades del módulo->pestaña avanzado->casilla de minutos/hora

por defecto creo que son 2 minutos reales por hora del juego.

Ertos

02/03/2012 23:45:18

Esta supercurrao, solo falta que amplies un poco la guia que viene en el rar y seria perfect

AlthorDeMalavir

03/03/2012 00:08:41

Cualquier duda que tengas, o algo que quieras hacer pregunta.

Ertos

03/03/2012 15:18:14

Entonces si yo quiero por ejemplo quitar los tipicos objetos con inmunidades puedo hacerlo libremente en los cofres que estan en areas a parte no?, y los puedo remplazar por otros objetos independientemente de sus etiquetas y resrefs no?

AlthorDeMalavir

03/03/2012 23:35:38

Correcto, o editar directamente los que hay, el sistema pilla los objetos de esos cofres y los copia para crear los tesoros.

Ertos

05/03/2012 19:38:10

No me habia fijado hasta hoy que los objetos tipicos de inmunidades tienen los usos de conjuro como en el server vamos xD

Ertos

06/03/2012 20:18:53

Si quitara los tesoros +6 y +7 que suelen salir en los cofres epicos que efecto tendria?, se repetirian los demas tesoros demasiado?

AlthorDeMalavir

07/03/2012 01:23:14

La probabilidad no varía, pero evidentemente cuantos menos objetos hayan en un cofre pues mas se repiten, cuantos mas objetos pues mas variedad.

Si quitas todos los objetos o anulas algún cofre no afecta al resto.

Ertos

07/03/2012 15:17:40

algun guion recomendado para la memoria caché del modulo?

_Kaworu_

07/03/2012 18:11:23

Los scripts de IA sin duda.

AlthorDeMalavir

08/03/2012 01:49:02

Ten cuidado porque puede ser peor si metes mucho.

Caso de meter alguno el sgt_inc

Ertos

08/03/2012 16:06:14

aun me queda un poco de memoria antes de llegar a los 3 mb que dice el aurora, metere ese entonces