#include <removebuilding> en 0.3x - Dudas..
#1

Hola a todos.

Necesito aclarar algunas dudas sobre RemoveBuildingForPlayer, y mas concretamente con el include "removebuilding" en la versiуn 0.3x y limpia, con un GM nuevo, vaciу y sin mas plugins o Fs.

Os pongo un ejemplo de como lo estoy utilizando en un FS:


#define MAX_REMOVED_OBJECTS 5
#include <removebuilding>


public OnPlayerConnect(playerid)
{
RemoveBuilding(8866, 2237.4844, 1471.3594, 10.0000625, 0.25, 0.0000, 0.0000000, 0.0000000);
RemoveBuilding(8930, 2217.7500, 1477.6641, 31.6797, 0.25, 0.0000, 0.0000000, 0.0000000);
RemoveBuilding(8931, 2162.4766, 1403.4375, 14.6563, 0.25, 0.0000, 0.0000000, 0.0000000);
RemoveBuilding(9070, 2111.3203, 1501.1172, 22.1484, 0.25, 0.0000, 0.0000000, 0.0000000);
RemoveBuilding(9071, 2158.4219, 1501.1172, 22.1484, 0.25, 0.0000, 0.0000000, 0.0000000);

return 1;
}

printf("%i", CountRemovedObjects()); // aсado el contador de objetos.

Resultado: El jugador se conecta, los objetos son eliminados y el contador me marca 5 objetos borrados. (Hasta aquн todo perfecto).

El problema viene cuando el jugador se desconecta o se reinicia el GM. Los objetos ya no se borran y el contador no comienza desde 0 si no desde 5, lo cual genera un error en el include que nos muestra que hemos superado el limite establecido con MAX_REMOVED_OBJECTS 5.

He probado en poner los RemoveBuilding() en OnFilterScriptInit(), pero nada. De hecho, de esta manera ni siquiera los elimina.

Necesito saber si alguien mas esta utilizando este include. їCual seria su uso correcto?

Por otro lado: Si el limite de RemoveBuildingForPlayer es de 1000 por jugador. їPor que me da crash con 500 al reiniciar el GM?


Muchas gracias todos y un saludo.
Reply
#2

si mal no estoy, es por que el contador se va sumando cuando se conectan pero nadamas, no disminuyen los objetos por lo que el include "ya los creo" aun que no sea asi, esto podria ser arreglado modificando y reseteando las variables en OnPlayerDisconnect o OnGameModeExit.

(pd: veo inutil el uso de ese include, deberias usar la funcion nativa ya que el include lo unico bueno que hace es recuperar los objetos borrados cosa que se puede hacer con un hook y algunas variables)
Reply
#3

Hola xSDx.

La nativa con muchos objetos...mas o menos unos 600 o 700 en un Gm Vaciу, sin Fs y sin plugins. El resultado es crash cuando reinicia el gm un par de veces.

Alguna idea


saludos y gracias
Reply
#4

Pensй que se habian dado cuenta que el include no funciona correctamete. Esta mal hecho, no hace lo que deberia y es obvio...
Reply
#5

Hola y gracias DesingMyCry, Descarto entonces este include. me lo temнa.
Sobre la nativa RemoveBuildingForPlayer,: Tampoco veo que funcione muy bien. con 600 o 500 se bloquea todo al reiniciar el GM. їEs correcto que su limite es de 1000 por jugador? en la Wiki no aparece nada al respecto.

Saludos y gracias.
Reply
#6

Que yo sepa no hay un limite exacto, aun que es funcion es un tanto peligrosa... a que me refiero? muchas veces al remover muchos objetos pueden causar crashers o se congela el cliente, me a pasado, intenta poner

pawn Код:
public OnGameModeExit()
{
    for(new x=0;x<MAX_PLAYERS;x++)
        if(IsPlayerConnected(x))
            OnPlayerDisconnect(x,0);
    return 1;
}
tal vez eso pueda ayudar
Reply
#7

Gracias xSDx, pero no funciona.

Todos los objetos que tengo para eliminar tienen este formato, siguiendo las instrucciones de la Wiki pero nada.
Cuando reinicias el GM con 600 Objetos eliminado. Se queda bloqueado.

RemoveBuildingForPlayer(playerid, 8501, 2160.2734, 1465.1094, 22.1484, 200.0);

Supongo que no hay soluciуn para esto de momento.
Alguna idea mas


Gracias y saludos.
Reply
#8

que es lo ke kieres hacer exactamente?
para ke utilizas ese include y no utilizas la funcion original?.
Reply
#9

Con ella estoy OTACON. Pero al usar RemoveBuildingForPlayer con muchos objetos. 600, 700, 1000. Funciona bien pero al reiniciar el GM recibe crash o freeze.

Ahora mismo haciendo una nueva prueba para determinar el numero de objetos que puedo eliminar sin problemas.
Sobre los 100 o 150, si se ponen mas.....Crash..
Reply
#10

No entiendo que quieres... segun creo, necesitas una funciуn que elimine objetos de manera global... y que se use en OnGameModeInit... eso es?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)