Am incercat sa modific locatia unde sa se execute OnPlayerUseVendinMachine, insa nu merge, ca sa folosesc dozatorul trebuie sa fiu in el practic, nu in fata lui. Am incercat sa sterg si IsPlayerInDynamicArea insa tot nu merge. trebuie sa fiu practic in locul unde el pozitionat X,Y,Z, nu in fata lui.
Folosesc include-ul vending.inc
Cum pot rezolva?
Folosesc include-ul vending.inc
Cum pot rezolva?
Code:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if((newkeys & KEY_SECONDARY_ATTACK) && (GetPlayerAnimationIndex(playerid) != 1660))
{
for(new i; i < MAX_MACHINES; i++)
{
if(!IsValidVendingMachine(i))
continue;
#if defined Streamer_IncludeFileVersion
if(!IsPlayerInDynamicArea(playerid, g_eVendingData[i][E_VENDING_AREA]))
continue;
#else
new Float:x, Float:y;
GetXYInFrontOfVending(i, x, y, 0.5);
if(!IsPlayerInRangeOfPoint(playerid, 1, 1552.5898, -1683.4698, 13.5504))
continue;
#endif
SetPlayerFacingAngle(playerid, g_eVendingData[i][E_VENDING_RZ]);
if(OnPlayerUseVendingMachine(playerid, i) != 0)
{
if(g_eVendingData[i][E_VENDING_TYPE] == MACHINE_SNACK) {
ApplyAnimation(playerid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0, 1);
PlayerPlaySound(playerid, 42601, 0.0, 0.0, 0.0);
}
else {
ApplyAnimation(playerid, "VENDING", "VEND_USE", 3.0, 0, 0, 0, 0, 0, 1);
PlayerPlaySound(playerid, 42600, 0.0, 0.0, 0.0);
SetTimerEx("OnAnimationDrink", 1800, false, "i", playerid);
}
#if !defined NO_SPRUNK_ACTION
if(g_eVendingData[i][E_VENDING_TYPE] == MACHINE_SPRUNK) SetTimerEx("ven_SetPlayerAnimation", 2500, false, "i", playerid);
#endif
}
else ClearAnimations(playerid);
}
}
#if !defined NO_SPRUNK_ACTION
else if((newkeys & KEY_FIRE) && g_eLastDrink[playerid] < GetTickCount() && (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_SPRUNK))
{
OnPlayerDrinkSprunk(playerid);
g_eLastDrink[playerid] = GetTickCount() + 2350;
}
#endif
#if defined inc_Ven_OnPlayerKeyStateChange
return inc_Ven_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
#else
return 0;
#endif
}