public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
#define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
if(PRESSED(KEY_SECONDARY_ATTACK))
{
for(new i = 0; i < MAX_CASAS; ++i)
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, CasaInfo[i][cPosX], CasaInfo[i][cPosY], CasaInfo[i][cPosZ]))
{
if(CasaInfo[i][cPuerta]) return SendClientMessage(playerid, COLOR_BLANCO, "No se puede entrar en una casa cerrada con llave.");
SetPlayerInterior(playerid, CasaInfo[i][cInterior]);
SetPlayerVirtualWorld(playerid, CasaInfo[i][cID] + 1;
SetPlayerPos(playerid, CasaInfo[i][cIntX], CasaInfo[i][cIntY], CasaInfo[i][cIntZ]);
SetPlayerFacingAngle(playerid, CasaInfo[i][cIntA]);
}
else if(IsPlayerInRangeOfPoint(playerid, 2.0, CasaInfo[i][cIntX], CasaInfo[i][cIntY], CasaInfo[i][cIntZ]))
{
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, CasaInfo[i][cPosX], CasaInfo[i][cPosY], CasaInfo[i][cPosZ]);
}
}
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
//#define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
if(newkeys & KEY_SECONDARY_ATTACK)
{
for(new i = 0; i < MAX_CASAS; i++) // Tenнas un error en el bucle (tal vez)
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, CasaInfo[i][cPosX], CasaInfo[i][cPosY], CasaInfo[i][cPosZ]))
{
if(CasaInfo[i][cPuerta]) return SendClientMessage(playerid, COLOR_BLANCO, "No se puede entrar en una casa cerrada con llave.");
SetPlayerInterior(playerid, CasaInfo[i][cInterior]);
SetPlayerVirtualWorld(playerid, CasaInfo[i][cID] + 1;
SetPlayerPos(playerid, CasaInfo[i][cIntX], CasaInfo[i][cIntY], CasaInfo[i][cIntZ]);
SetPlayerFacingAngle(playerid, CasaInfo[i][cIntA]);
break; // Detener la bъsqueda de casas.
}
else if(IsPlayerInRangeOfPoint(playerid, 2.0, CasaInfo[i][cIntX], CasaInfo[i][cIntY], CasaInfo[i][cIntZ]))
{
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, CasaInfo[i][cPosX], CasaInfo[i][cPosY], CasaInfo[i][cPosZ]);
}
}
}
return 1;
}
|
CasaInfo[houseid][cInteriorVW] = CasaInfo[houseid][cID] + 25; |
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_SECONDARY_ATTACK)
{
for(new i=0; i < MAX_CASAS; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, CasaInfo[i][cPosX], CasaInfo[i][cPosY], CasaInfo[i][cPosZ]))
{
if(CasaInfo[i][cPuerta])
return SendClientMessage(playerid, COLOR_BLANCO, "No se puede entrar en una casa cerrada con llave.");
SetPlayerInterior(playerid, CasaInfo[i][cInterior]);
SetPlayerVirtualWorld(playerid, CasaInfo[i][cInteriorVW]);
SetPlayerPos(playerid, CasaInfo[i][cIntX], CasaInfo[i][cIntY], CasaInfo[i][cIntZ]);
SetPlayerFacingAngle(playerid, CasaInfo[i][cIntA]);
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid, 2.0, CasaInfo[i][cIntX], CasaInfo[i][cIntY], CasaInfo[i][cIntZ]))
{
if(GetPlayerVirtualWorld(playerid) == CasaInfo[i][cInteriorVW])
{
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, CasaInfo[i][cPosX], CasaInfo[i][cPosY], CasaInfo[i][cPosZ]);
return 1;
}
}
}
}
}