Ayuda con FS de propiedades
#1

Hola, hago este nuevo tema para solicitar su ayuda con un FS de propiedades. Tambien incluye clanes, banco, etc, pero el hecho es este:
cuando alguien (diremos ID 1) compra una propiedad todo va bien pero si el dueсo sale del juego y otro jugador entra y toma su ID, o sea la ID 1 muestra como si el nuevo jugador que tomo la ID 1 fuera el dueсo, ganando asi el dinero de la propiedad cuando nunca la compro. Entonces parece ser que la ID del comprador queda guardada aun asi si sale del juego, entonces deduzco que hay que realizar algo en "OnPlayerDisconnect" pero no se que!

Aqui pegue el FS:
http://pastebin.com/c2eL0VL8

Cualquier ayuda estare muy agradecido!
Reply
#2

busca la forma en la cual se indica que X id es dueсa de un negocio, una vez que encontraste la variable/array en la cual se almacena que Id es el dueсo de un negocio, solo debes setearla a 0 dentro de OnPlayerDisconnect.

espero que te sirva.

Edit: no habia visto que habias subido el fs, si no me equivoco, el array es propertyOwner y debes setearlo a -1.

no estoy seguro de que funcione pero podes probar:
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
  for(new i=0; i<MAX_PROPERTIES; i++){
    if(propertyOwner[i] = playerid){
      propertyOwner[i] = -1;
    }
  }
  return 1;
}
Reply
#3

Muchas gracias. En cuanto lo pruebe edito este mensaje y aclaro si anduvo o no.

EDIT:
Tira esta advertencia:
Код:
warning 211: possibly unintended assignment
en esta linea:
Код:
    if(propertyOwner[i] = playerid){
EDIT2:
Lo modifique a esto:
Код:
    if(propertyOwner[i]==playerid){
y ahora no tira ninguna advertencia, lo voy a probar.

EDIT3:
Anda lo mas bien!! GRACIAS!! El unico tema es que si pongo para ver la lista de propiedades no aparece nada en "dueсo", donde en realidad deberia aparecer Sin dueсo, pero es un detallecito. GRACIAS!
Reply
#4

Код:
	if(strcmp(cmd, "/propiedades", true) == 0) {
		SendClientMessage(playerid, COLOR_GREEN, "Lista de las propiedades 1:");
		for(new i = 0; i < 8; i++) {
			if(propertyOwner[i] < 999)
			{
				GetPlayerName(propertyOwner[i], giveplayer, sizeof(giveplayer));
				format(string, sizeof(string), "%d. %s - DUEСO: %s", i, propertyNames[i], giveplayer);
				SendClientMessage(playerid, COLOR_YELLOW, string);
			}
			else
			{
				format(string, sizeof(string), "%d. %s - Sin dueсo.", i, propertyNames[i]);
				SendClientMessage(playerid, COLOR_YELLOW, string);
			}

		}

		return 1;
	}

	if(strcmp(cmd, "/propiedades2", true) == 0) {
		SendClientMessage(playerid, COLOR_GREEN, "Lista de las propiedades 2:");
		for(new i = 9; i < 18; i++) {
			if(propertyOwner[i] < 999) {
				GetPlayerName(propertyOwner[i], giveplayer, sizeof(giveplayer));
				format(string, sizeof(string), "%d. %s - DUEСO: %s", i, propertyNames[i], giveplayer);
			} else
				format(string, sizeof(string), "%d. %s - Sin dueсo.", i, propertyNames[i]);

			SendClientMessage(playerid, COLOR_YELLOW, string);
		}

		return 1;
	}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)