14.09.2016, 17:53
Take this code fully corrected and as you said
PHP код:
//At top of script
new Timer[MAX_PLAYERS];
new FoodTimer[MAX_PLAYERS];
//OnPlayerConnect and Disconnect
FoodTimer[playerid] = 0;
KillTimer(Timer[playerid);
forward SearchTimer(playerid);
public SearchTimer(playerid)
{
GameTextForPlayer(playerid, "Searching for \nfood...", 3000, 1);
ApplyAnimation(playerid,"BOMBER","BOM_Plant",4.0,0 ,0,0,0,0,1);
if(FoodTimer[playerid] != 0)
{
FoodTimer[playerid]--;
if(FoodTimer[playerid] == 0)
{
new rand = randomEx(1,3);
if(rand == 1)
{
new string[128];
format(string, sizeof(string), "%s scavenges through the store, searching for food.", GetName(playerid));
//I want the timer to run here, and wait before sending the text below.. Same with finding no food etc.
new string2[128];
format(string, sizeof(string), "%s finds some food and eats it.", GetName(playerid));
ProxDetector(20.0, playerid, string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
ProxDetector(20.0, playerid, string2,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SendClientMessage(playerid, COLOR_WHITE, "You are no longer hungry!");
ApplyAnimation(playerid,"FOOD","EAT_Burger",4.1,0,1,1,1,1);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
Hungry[playerid] = 0;
}
else
{
new string3[128];
format(string3, sizeof(string3), "%s scavenges through the store, searching for food.", GetName(playerid));
new string4[128];
format(string4, sizeof(string4), "%s reveals a confused expression, whilst shaking his head. (( /foodsearch failed ))", GetName(playerid));
ProxDetector(20.0, playerid, string3,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
ProxDetector(20.0, playerid, string4,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SendClientMessage(playerid, COLOR_WHITE, "You did not find any food inside this store! Try again in 5 minutes!");
LastSFood[playerid] = gettime()+60+60+60+60+60;
}
KillTimer(Timer[playerid]);
}
}
return 1;
}
CMD:foodsearch(playerid,params[])
{
if(LastSFood[playerid]>gettime()) return SendClientMessage(playerid, -1, "You have recently searched for food. Wait 5 minutes!");
if(IsPlayerInRangeOfPoint(playerid, 50, 375.962463,-65.816848,1001.507812) || IsPlayerInRangeOfPoint(playerid, 50, 369.579528,-4.487294,1001.858886) || IsPlayerInRangeOfPoint(playerid, 50, 373.825653,-117.270904,1001.499511))
{
if(Hungry[playerid] > 5)
{
Timer[playerid] = SetTimerEx("SearchTimer",1000,1,"i",playerid);
FoodTimer[playerid] = 15; // You can increase the timer
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "You are not hungry. You do not need to eat!");
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "You can only search for food inside a Clucking Bell, Pizza Stack or Burger Shot!");
}
return 1;
}