14.12.2012, 20:29
Ok so I have a X-Mas Gift pickup on my server, the problem is is that ALL pickups come up with "Happy Holidays! You Have Received..." This is BAD, only the Gift pickups should give that. It's very annoying when a player steps on an information pickup and gets a gift! What should I do to fix this so that the "Happy Holdays..." only works on the X-Mas present pickups?
Thanks: jakejohnsonusa
Here is the code:
Thanks: jakejohnsonusa
Here is the code:
pawn Код:
/*
-------------------------------------------------------
-------------------------------------------------------
Gift System Update! Version 1.0
Credits to
MouseBreaker, SA-MP Team
RoamPT For Zone System
-------------------------------------------------------
-------------------------------------------------------
*/
// Include
#include <a_samp>
// Server Colours
#define COLOR_WHITE 0xD4D4D4C8
#define COLOR_GREEN 0x00E800FF
#define COLOR_RED 0xEC0000FF
// Definitions
#define MAX_GIFTS (500)
// Forward
forward GetPlayerGiftFounds(playerid);
forward GetPlayerGiftReceiveds(playerid);
// Server Variable
new giftCounter;
new Gift[MAX_GIFTS];
new Picked[MAX_PLAYERS];
new RandomModel[5][1] = {
{19054},
{19055},
{19056},
{19057},
{19058}
};
enum PlayerInfo
{
aGift,
gFound
};
new pInfo[MAX_PLAYERS][PlayerInfo];
#define MAX_ZONE_NAME 28
forward Zones_Update();
enum SAZONE_MAIN {
SAZONE_NAME[28],
Float:SAZONE_AREA[6]
};
static const gSAZones[][SAZONE_MAIN] = {
// -Removed for Post- (just the Place names)
}
public OnFilterScriptInit()
{
print("\n--------------------------------------------------");
print(" Holiday Update! Creator, MouseBreaker (v1.0)");
print("--------------------------------------------------\n");
giftCounter = 0;
return 1;
}
public OnFilterScriptExit()
{
print("\n--------------------------------------------------");
print(" Holiday Update! Creator, MouseBreaker (v1.0)");
print("--------------------------------------------------\n");
return 1;
}
public OnPlayerConnect(playerid)
{
Picked[playerid] = 0;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/agift", cmdtext, true, 10) == 0 || strcmp("/admingift", cmdtext, true, 10) == 0)
{
new string[128];
if(IsPlayerAdmin(playerid))
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
switch(random(5))
{
case 0: {
new rand = (100 + random(2400));
GivePlayerMoney(i, rand);
format(string, sizeof(string), "~r~Happy Holidays!~n~~w~Received ~g~$%d", rand);
GameTextForPlayer(i, string, 4000, 3);
}
case 1: {
SetPlayerHealth(i, 100);
format(string, sizeof(string), "~r~Happy Holidays!~n~~w~Received ~g~A Candy Cane");
GameTextForPlayer(i, string, 4000, 3);
}
case 2: {
SetPlayerArmour(i, 100);
format(string, sizeof(string), "~r~Happy Holidays!~n~~w~Received ~g~Full Body Armour");
GameTextForPlayer(i, string, 4000, 3);
}
case 3: {
new rand = (100 + random(2400));
GivePlayerMoney(i, rand);
format(string, sizeof(string), "~r~Happy Holidays!~n~~w~Received ~g~$%d", rand);
GameTextForPlayer(i, string, 4000, 3);
}
case 4: {
new rand = (100 + random(2400));
GivePlayerMoney(i, rand);
format(string, sizeof(string), "~r~Happy Holidays!~n~~w~Received ~g~$%d", rand);
GameTextForPlayer(i, string, 4000, 3);
}
}
pInfo[i][aGift]++;
}
}
format(string, sizeof(string), "Happy Holidays! You Have Received A Gift From The J:RP Admins.");
SendClientMessageToAll(COLOR_WHITE, string);
}
else
{
return 0;
}
return 1;
}
if (strcmp("/addgift", cmdtext, true, 10) == 0 || strcmp("/creategift", cmdtext, true, 10) == 0)
{
if(IsPlayerAdmin(playerid))
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
new rand = random(sizeof(RandomModel));
Gift[giftCounter] = CreatePickup(RandomModel[rand][0], 1, x + 3, y + 1, z, GetPlayerVirtualWorld(playerid));
giftCounter++;
new string[128 + MAX_ZONE_NAME], zone[MAX_ZONE_NAME];
GetPlayer2DZone(playerid, zone, sizeof(zone));
format(string, sizeof(string), "Santa Claus Has Put A Gift At %s! Go And Open It Fast!", zone);
SendClientMessageToAll(COLOR_RED, string);
}
else
{
return 0;
}
return 1;
}
return 0;
}
public OnPlayerDisconnect(playerid)
{
Picked[playerid] = 0;
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
new string[128];
for(new x = 0; x < MAX_GIFTS; x++)
{
if(pickupid == Gift[x] && Picked[playerid] == 0)
{
switch(random(x))
{
case 0:
{
new rand = (100 + random(2400));
GivePlayerMoney(playerid, rand);
format(string, sizeof(string), "~r~Happy Holidays!~n~~w~Received ~g~$%d", rand);
GameTextForPlayer(playerid, string, 4000, 3);
format(string, sizeof(string), "Happy Holidays! You Have Received $%d!", rand);
SendClientMessage(playerid, COLOR_GREEN, string);
}
case 1:
{
SetPlayerHealth(playerid, 100);
format(string, sizeof(string), "~r~Happy Holidays!~n~~w~Received ~g~A Candy Cane");
GameTextForPlayer(playerid, string, 4000, 3);
SendClientMessage(playerid, COLOR_GREEN, "You Have Received A Candy Cane! Your Health Has Been Refilled!");
}
case 2:
{
SetPlayerArmour(playerid, 100);
format(string, sizeof(string), "~r~Happy Holidays!~n~~w~Received ~g~Full Body Armour");
GameTextForPlayer(playerid, string, 4000, 3);
SendClientMessage(playerid, COLOR_GREEN, "You Have Received Body Armour! Your Armour Has Been Refilled!");
}
case 3:
{
new rand = (100 + random(2400));
GivePlayerMoney(playerid, rand);
format(string, sizeof(string), "~r~Happy Holidays!~n~~w~Received ~g~$%d", rand);
GameTextForPlayer(playerid, string, 4000, 3);
format(string, sizeof(string), "Happy Holidays! You Have Received $%d!", rand);
SendClientMessage(playerid, COLOR_GREEN, string);
}
case 4:
{
new rand = (100 + random(2400));
GivePlayerMoney(playerid, rand);
format(string, sizeof(string), "~r~Happy Holidays!~n~~w~Received ~g~$%d", rand);
GameTextForPlayer(playerid, string, 4000, 3);
format(string, sizeof(string), "Happy Holidays! You Have Received $%d!", rand);
SendClientMessage(playerid, COLOR_GREEN, string);
}
}
new zone[MAX_ZONE_NAME], pname[MAX_PLAYER_NAME];
GetPlayer2DZone(playerid, zone, sizeof(zone));
GetPlayerName(playerid, pname, sizeof(pname));
format(string, sizeof(string), "%s Has Opend Their Gift At %s!", pname, zone);
SendClientMessageToAll(COLOR_RED, string);
DestroyPickup(Gift[x]);
pInfo[playerid][gFound]++;
Picked[playerid] = 1;
}
}
Picked[playerid] = 0;
return 1;
}
public GetPlayerGiftFounds(playerid)
{
return pInfo[playerid][gFound];
}
public GetPlayerGiftReceiveds(playerid)
{
return pInfo[playerid][aGift];
}
stock IsPlayerInZone(playerid, zone[])
{
new TmpZone[MAX_ZONE_NAME];
GetPlayer3DZone(playerid, TmpZone, sizeof(TmpZone));
for(new i = 0; i != sizeof(gSAZones); i++)
{
if(strfind(TmpZone, zone, true) != -1)
return 1;
}
return 0;
}
stock GetPlayer2DZone(playerid, zone[], len)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i = 0; i != sizeof(gSAZones); i++ )
{
if(x >= gSAZones[i][SAZONE_AREA][0] && x <= gSAZones[i][SAZONE_AREA][3] && y >= gSAZones[i][SAZONE_AREA][1] && y <= gSAZones[i][SAZONE_AREA][4])
{
return format(zone, len, gSAZones[i][SAZONE_NAME], 0);
}
}
return 0;
}
stock GetPlayer3DZone(playerid, zone[], len)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i = 0; i != sizeof(gSAZones); i++ )
{
if(x >= gSAZones[i][SAZONE_AREA][0] && x <= gSAZones[i][SAZONE_AREA][3] && y >= gSAZones[i][SAZONE_AREA][1] && y <= gSAZones[i][SAZONE_AREA][4] && z >= gSAZones[i][SAZONE_AREA][2] && z <= gSAZones[i][SAZONE_AREA][5])
{
return format(zone, len, gSAZones[i][SAZONE_NAME], 0);
}
}
return 0;
}