Casas.
#1

Buenas, tengo el sistema de propiedades de Sandra modificado en mi sistema ladmin,el problema es que a comprar una propiedad le quita dinero a todos, y cuando se lo da en casa 5 minutos, les da a todos,osea que al comprar una casa se compra para todos los jugadores no lo eh podido areglar їAlguna soluciуn?..
Reply
#2

El problema estб en el cуdigo. Sin cуdigo, no hay soluciуn.
Reply
#3

Код:
stock LoadProperties()
{
if(fexist("PropertySystem/PropertyInfo.txt"))
{
CountProperties();
new Argument[9][70];
new entry[256], BoughtProps;
new File: propfile = fopen("PropertySystem/PropertyInfo.txt", io_read);
if (propfile)
{
for(new id; id<PropertiesAmount; id++)
{
fread(propfile, entry);
split(entry, Argument, ',');
format(PropInfo[id][PropName], 64, "%s", Argument[0]);
PropInfo[id][PropX] = floatstr(Argument[1]);
PropInfo[id][PropY] = floatstr(Argument[2]);
PropInfo[id][PropZ] = floatstr(Argument[3]);
PropInfo[id][PropValue] = strval(Argument[4]);
PropInfo[id][PropEarning] = strval(Argument[5]);
format(PropInfo[id][PropOwner], MAX_PLAYER_NAME, "%s", Argument[6]);
PropInfo[id][PropIsBought] = strval(Argument[7]);
PropInfo[id][PropUnbuyableTime] = strval(Argument[8]);
PropInfo[id][PickupNr] = CreatePickup(1273, 1, PropInfo[id][PropX], PropInfo[id][PropY], PropInfo[id][PropZ]);
if(PropInfo[id][PropIsBought] == 1)
{
BoughtProps++;
}
}
fclose(propfile);
printf("===================================");
printf("||  %d Propiedades A La Venta||", PropertiesAmount);
printf("||   %d propiedades compradas||", BoughtProps);
printf("===================================");
}
}
}

stock SaveProperties()
{
new entry[256];
new File: propfile = fopen("PropertySystem/PropertyInfo.txt", io_write);
for(new id; id<PropertiesAmount; id++)
{
format(entry, 128, "%s,%.2f,%.2f,%.2f,%d,%d,%s,%d,%d \r\n",PropInfo[id][PropName], PropInfo[id][PropX], PropInfo[id][PropY], PropInfo[id][PropZ], PropInfo[id][PropValue], PropInfo[id][PropEarning], PropInfo[id][PropOwner], PropInfo[id][PropIsBought], PropInfo[id][PropUnbuyableTime]);
fwrite(propfile, entry);
}
printf("Saved %d Properties!", PropertiesAmount);
fclose(propfile);
}

forward split(const strsrc[], strdest[][], delimiter);
public split(const strsrc[], strdest[][], delimiter)
{
new i, li;
new aNum;
new len;
while(i <= strlen(strsrc)){
if(strsrc[i]==delimiter || i==strlen(strsrc)){
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
li = i+1;
aNum++;
}
i++;
}
return 1;
}
Seguro ahi esta el problema :c
Reply
#4

Quote:
Originally Posted by MarioCremades
Посмотреть сообщение
El problema es que al comprar una propiedad le quita dinero a todos, y cuando se lo da en casa 5 minutos, les da a todos,osea que al comprar una casa se compra para todos los jugadores no lo eh podido areglar їAlguna soluciуn?..
eso que acabas de pasar lo que hace es cargar las propiedades, piensas que somos magos ps dйjame decirte que no lo somos.
Reply
#5

Aquн estб este ladmin lo tiene, http://www.solidfiles.com/d/1fd0dcd1ea/
Reply
#6

Pasa la parte de la compra de la casa, no todo.
Reply
#7

Код:
if(strcmp(cmd, "/comprar", true)==0 || strcmp(cmd, "/buyprop", true)==0)
{
new strbnm[128];
#if ENABLE_LOGIN_SYSTEM == 1
if(PlayerInfo[playerid][LoggedIn] == 0) {
format(strbnm, 128, "~r~~h~~h~no estas logueado  %s.", LOGIN_COMMAND);
GameTextForPlayer(playerid, strbnm,3000,3);
return 1;
}
#endif
new propid = IsPlayerNearProperty(playerid);

if(propid == -1)
{
GameTextForPlayer(playerid,"~r~~h~~h~no estas en el icono para comprarla",3000,3);
return 1;
}
if(PlayerProps[playerid] == MAX_PROPERTIES_PER_PLAYER)
{
GameTextForPlayer(playerid,"~r~~h~~h~llegaste al maximo de propiedades por jugador",3000,3);
return 1;
}
if(PropInfo[propid][PropIsBought] == 1)
{
new ownerid = GetPlayerID(PropInfo[propid][PropOwner]);
if(ownerid != playerid)
{
GameTextForPlayer(playerid,"~r~~h~~h~Esta propiedad ya esta vendida!",3000,3);
return 1;
}
}
if(PropInfo[propid][PropIsBought] == 1)
{
new ownerid = GetPlayerID(PropInfo[propid][PropOwner]);
if(ownerid == playerid)
{
GameTextForPlayer(playerid,"~r~~h~~h~esta propiedad ya es tuya",3000,3);
return 1;
}
else
{
if(PropInfo[propid][PropUnbuyableTime] > 0)
{
GameTextForPlayer(playerid,"~r~~h~~h~espera unos minutos para comprar esta propiedada",4000,3);
return 1;
}
}
}
if(GetPlayerMoney(playerid) < PropInfo[propid][PropValue])
{
GameTextForPlayer(playerid,"~r~~h~~h~no tienes suficiente dinero",6000,3);
return 1;
}
	
new pNamebnm[MAX_PLAYER_NAME];
GetPlayerName(playerid, pNamebnm, sizeof(pNamebnm));
if(PropInfo[propid][PropIsBought] && PropInfo[propid][PropUnbuyableTime] == 0)
{
new ownerid = GetPlayerID(PropInfo[propid][PropOwner]);
GivePlayerMoney(ownerid, (PropInfo[propid][PropValue]/2));
GameTextForPlayer(playerid,"~r~~h~~h~compraron tu propiedad, recibiras la mitad~n~~r~~h~~h~de su valor", 4000,3);
PlayerProps[ownerid]--;
}
PropInfo[propid][PropOwner] = pNamebnm;
PropInfo[propid][PropIsBought] = 1;
PropInfo[propid][PropUnbuyableTime] = UNBUYABLETIME;
EarningsForPlayer[playerid] += PropInfo[propid][PropEarning];
GivePlayerMoney(playerid, (0-PropInfo[propid][PropValue]));
format(strbnm, 128, "Compraste la propiedad \"%s\" Por  [ $%d ]", PropInfo[propid][PropName], PropInfo[propid][PropValue]);
SendClientMessage(playerid, 0xFFFF00AA, strbnm);
new ptName[MAX_PLAYER_NAME];
GetPlayerName(playerid, ptName, MAX_PLAYER_NAME);
format(str, 128, "{FFFF00}* %s ha comprado la propiedad \"%s\".", ptName, PropInfo[propid][PropName]);
SendClientMessageToAll(0x00FFFFAA, str);
PlayerProps[playerid]++;
return 1;
}
Reply
#8

El problema debe radicar cuando intentaste mezclar los scripts.
Reply
#9

Hace debug....

printf("(%d) %s ha comprado tal casa", id, name);

y empezб a ver quй onda.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)