Pulse Control+D para no olvidar este enlace. |
|
| Script para solucionar bugs | |
| | Autor | Mensaje |
---|
Jastro Aprendiz
Edad : 38 Localización : Islas Canarias ¿Que me Gusta? : Todo y Nada Puntos de Actividad : 6374
Cantidad de envíos : 40 Fecha de inscripción : 11/08/2008
Nº. de Miembro : 11 Respeto por el Foro :
| Tema: Script para solucionar bugs Sáb 18 Abr 2009, 12:21 pm | |
| Buenas gente, hay algunas cosillas que me preocupan, del nwn y son 3 1º Cuando alguien usa conjuros, sale y entra y el servidor, le regenera los hechizos. Este lo tengo Solucionado. Luego lo pondre en el baul. 2º Duplicacion de objetos, un jugador, cambia la forma de su armadura, al hacerlo, se desconecta con el control alt supr y vuelve a conectar y voilá, tenemos una armadura duplicada. Solucion: Se me ha ocurrido poner que al ponerte a crear un armadura te creara un objeto y que al finalizar de hacerlo lo borrara. Entonces que si desconecta antes de de finalizar, el server lo detecta, bien, habia pensado que en caso de que detectara el objeto, mirase el objeto duplicado y lo eliminase. 3º Doparse antes de reinicio: Cuando un jugador se dopa el arma antes de reiniciar, los efectos se le quedan de forma permanente, la idea era crear algo en el onload del modulo, que "eliminase" esos efectos, podria ser eliminando el arma y dandole una nueva con la misma apariencia, pero ni puta idea. Bueno, esto lo pongo para si alguno os quereis animar y echar una mano a solucionar los grandes problemas del nwn, yo estoy intentando hacer el 1 y el 2, bueno el 1 ya lo tengo, el 2 a medias xD, si quereis echar una mano o algo, estos scripts seran muy utiles para cualquier jugador del nwn. Un saludo
Última edición por Jastro el Sáb 18 Abr 2009, 3:20 pm, editado 1 vez | |
| | | Marina Patos@
Edad : 41 Puntos de Actividad : 5931
Cantidad de envíos : 24 Fecha de inscripción : 01/04/2009
Nº. de Miembro : 65 Respeto por el Foro :
| Tema: Re: Script para solucionar bugs Sáb 18 Abr 2009, 2:52 pm | |
| Buenas ideas, y se me ocurre tambien una; en los mercaderes hay determinados objetos que son propios del mercader y otros que va vendiendole la gente.
El problema viene en que si el objeto lo vende el mercader, seguira tal cual en su inventario de venta, pero si el objeto no lo tiene, lo guardará una y mil veces.
Me explico; el mercader vende el anillo de proteccion +1, vale, pues si le vendes un anillo de protección +1, solo conservará uno en su inventario, pero por lo contrario, si le vendes un anillo de protección +2 lo guardará tantas veces como le vayan vendiendo, es decir, que si le vendes 100 anillos de protección +2, los conservara todos en el inventario, y no 1 como deberia ser.
El problema que trae esto es que puede llegar a crear un lag considerable. | |
| | | Jastro Aprendiz
Edad : 38 Localización : Islas Canarias ¿Que me Gusta? : Todo y Nada Puntos de Actividad : 6374
Cantidad de envíos : 40 Fecha de inscripción : 11/08/2008
Nº. de Miembro : 11 Respeto por el Foro :
| Tema: Re: Script para solucionar bugs Sáb 18 Abr 2009, 3:04 pm | |
| Pues si, bastante y sobre todo si un server extenso, otra cosilla mas para arreglar, me pregunto si se podra hacer algun script que dentro de la tienda, solo permitiese como maximo 1 objeto, que los demas los vendiera pero los borrara...pero no se si se podra hacer algo asi. | |
| | | Xiulito Administrador/a
Edad : 44 Localización : Vivo aqui Puntos de Actividad : 6817
Cantidad de envíos : 101 Fecha de inscripción : 22/03/2008
Nº. de Miembro : 1 Respeto por el Foro :
| Tema: Re: Script para solucionar bugs Dom 19 Abr 2009, 1:30 am | |
| - Jastro escribió:
- Pues si, bastante y sobre todo si un server extenso, otra cosilla mas para arreglar, me pregunto si se podra hacer algun script que dentro de la tienda, solo permitiese como maximo 1 objeto, que los demas los vendiera pero los borrara...pero no se si se podra hacer algo asi.
A que te refieres exáctamente... ¿? | |
| | | Jastro Aprendiz
Edad : 38 Localización : Islas Canarias ¿Que me Gusta? : Todo y Nada Puntos de Actividad : 6374
Cantidad de envíos : 40 Fecha de inscripción : 11/08/2008
Nº. de Miembro : 11 Respeto por el Foro :
| Tema: Re: Script para solucionar bugs Dom 19 Abr 2009, 2:07 am | |
| Pues, como dice marina, si un jugador vende un objeto, el vendedor se le quedan miles, me preguntaba si habia alguna forma, de que se vendiera el objeto pero en la tienda solo hubiera 1, si hubiera + de 1 se le da el objeto pero el vendedor no lo almacena. No se si me explico, igualmente ese lo dejo para luego toy mas preocupado por los de arriba ^^ | |
| | | Xiulito Administrador/a
Edad : 44 Localización : Vivo aqui Puntos de Actividad : 6817
Cantidad de envíos : 101 Fecha de inscripción : 22/03/2008
Nº. de Miembro : 1 Respeto por el Foro :
| Tema: Re: Script para solucionar bugs Dom 19 Abr 2009, 1:45 pm | |
| Bueno, en cada tienda existen los eventos de OnOpenStore y OnClosedStored así que supongo que se podría poner algún script allí para controlar el tráfico de objetos y no se apilaran, no se, todo es posible... | |
| | | Jastro Aprendiz
Edad : 38 Localización : Islas Canarias ¿Que me Gusta? : Todo y Nada Puntos de Actividad : 6374
Cantidad de envíos : 40 Fecha de inscripción : 11/08/2008
Nº. de Miembro : 11 Respeto por el Foro :
| Tema: Re: Script para solucionar bugs Dom 19 Abr 2009, 2:00 pm | |
| cierto, habia olvidado la existencia de esos scripts, ¿te animas a hacer algun de los scripts nombrados arriba? estoy un poco hasta las narices del 3º | |
| | | Marina Patos@
Edad : 41 Puntos de Actividad : 5931
Cantidad de envíos : 24 Fecha de inscripción : 01/04/2009
Nº. de Miembro : 65 Respeto por el Foro :
| Tema: Re: Script para solucionar bugs Dom 19 Abr 2009, 2:53 pm | |
| Este script es para el Onopenstore del mercader, pero aun no lo he probado, no se si funciona bien: - Citación :
- void main()
{ object oCurrentItem = GetFirstItemInInventory(); string sItemTag; int iItemCount = 0; int iPCItem;
//this while does the trimming while(oCurrentItem != OBJECT_INVALID){
sItemTag = GetTag(oCurrentItem); iPCItem = GetLocalInt(oCurrentItem, "PCItem"); //Objeto obtenido por jugador iItemCount = GetLocalInt(OBJECT_SELF, "count_" + sItemTag);
//if(iPCItem == 1){ if(iItemCount >= 1 && iPCItem == 1){ //Numero maximo de objetos duplicados DestroyObject(oCurrentItem); //los destruye }else{ ++iItemCount; //incrementando numeros en el inventario SetLocalInt(OBJECT_SELF, "count_" + sItemTag ,iItemCount ); } oCurrentItem = GetNextItemInInventory(); //hacer siguiente objeto }//end while
oCurrentItem = GetFirstItemInInventory(); //this while resets for next onOpen while(oCurrentItem != OBJECT_INVALID){ SetLocalInt(OBJECT_SELF, "count_" + GetTag(oCurrentItem) , 0); oCurrentItem = GetNextItemInInventory(); }//end while }//end main()
| |
| | | Xiulito Administrador/a
Edad : 44 Localización : Vivo aqui Puntos de Actividad : 6817
Cantidad de envíos : 101 Fecha de inscripción : 22/03/2008
Nº. de Miembro : 1 Respeto por el Foro :
| Tema: Re: Script para solucionar bugs Dom 19 Abr 2009, 5:56 pm | |
| No me funciona, lo he retocado y ya parece que funciona. - Código:
-
void main() { object oFirstItem = GetFirstItemInInventory(); while(oFirstItem != OBJECT_INVALID) { string sItemTag = GetTag(oFirstItem); int iCount = GetLocalInt(OBJECT_SELF, "count_" + sItemTag);
if (iCount != TRUE) {SetLocalInt(OBJECT_SELF, "count_" + sItemTag, TRUE);} else {DestroyObject(oFirstItem);}
oFirstItem = GetNextItemInInventory(); }
oFirstItem = GetFirstItemInInventory(); while(oFirstItem != OBJECT_INVALID) { SetLocalInt(OBJECT_SELF, "count_" + GetTag(oFirstItem) , FALSE); oFirstItem = GetNextItemInInventory(); } }
Lo de el 3º paso me parece que tiene un poco de trabajo, se me ocurre que se podría colocar en el OnClientEnter un script que cogiera el Resref de los objetos y los valla creando en el inventario del PJ y destruyendo los antiguos, pero claro también tendríamos que coger la apariencia del objeto por si el Jugador la cambio y ponérsela y si tenemos que hacer esto con todos los objetos del inventario de un PJ pues es difícil teniendo en cuenta por supuesto un bugs que se nos plantearía el cual es que si un Jugador tiene el inventario lleno pues se le empezarían a caer los objetos conforme se crearan ya que el orden del script es crear el objeto y luego destruirlo y no al contrario (destruir y crear) porque si se destruye primero luego no tenemos ninguna referencia del objeto que queremos crear... En definitiva, la solución nos traerá mas problemas que el problema en si porque sinceramente yo no conocía este bug y supongo que sera una pequeña minoría de jugadores del NWN los que se aprovechen de él. Por otro lado, si se consigue marcar un objeto en el mismo momento en el que se dopa pues quizás nos ahorre el tener que reconstruir todos los objetos del inventario de un jugador, ya que en la entrada del modulo solo tendríamos que chekear los objetos marcados y seria mas fácil, investigare haber si encuentro algo, saludos. | |
| | | Jastro Aprendiz
Edad : 38 Localización : Islas Canarias ¿Que me Gusta? : Todo y Nada Puntos de Actividad : 6374
Cantidad de envíos : 40 Fecha de inscripción : 11/08/2008
Nº. de Miembro : 11 Respeto por el Foro :
| Tema: Re: Script para solucionar bugs Dom 19 Abr 2009, 6:40 pm | |
| yo es que me conozco la gran mayoria de los bugs debido a que solo he jugado con jugadores bugueros xD | |
| | | Contenido patrocinado
| Tema: Re: Script para solucionar bugs | |
| |
| | | | Script para solucionar bugs | |
|
Temas similares | |
|
| Permisos de este foro: | No puedes responder a temas en este foro.
| |
| |
| |
|