Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*==============================
- Deer Hunt
- Created by Leonard Barosan
- ==============================*/
- #include <YSI\y_timers>
- #include <YSI\y_hooks>
- #define E_STATE_WAITING 0
- #define E_STATE_SPAWNED 1
- new Float: deerPosition[][] =
- {
- {1039.5654, -56.6318, 88.8042},
- {2318.6270, -812.4302, 126.3353},
- {-1456.4644, -2541.0186, 61.3894},
- {-2489.5391, -2647.9526, 70.5215}
- };
- enum deerInfo
- {
- deerID,
- Float: deerPosX,
- Float: deerPosY,
- Float: deerPosZ,
- deerState,
- deerTime
- }
- new deerVariables[deerInfo];
- new deerZone[32];
- new Iterator: playerKillDeer<MAX_PLAYERS>;
- task spawnDeer[5000]()
- {
- switch(deerVariables[deerState])
- {
- case E_STATE_WAITING:
- {
- if(deerVariables[deerTime] && deerVariables[deerTime] <= gettime() && !deerVariables[deerID])
- {
- deerVariables[deerState] = E_STATE_SPAWNED;
- deerVariables[deerTime] = gettime() + 1600;
- new rand = random(sizeof(deerPosition));
- deerVariables[deerPosX] = deerPosition[rand][0];
- deerVariables[deerPosY] = deerPosition[rand][1];
- deerVariables[deerPosZ] = deerPosition[rand][2];
- deerVariables[deerID] = CreateDynamicObject(19315, deerVariables[deerPosX], deerVariables[deerPosY], deerVariables[deerPosZ], 0.0, 0.0, 0.0);
- GetPlayer3DZone2(deerVariables[deerPosX], deerVariables[deerPosY], deerVariables[deerPosZ], deerZone, sizeof deerZone);
- foreach(new x : Player)
- {
- SCMEx(x, COLOR_GREEN, "(Deer Hunter): {FFFFFF}O caprioara tocmai a fost zarita in zone %s. Primul care o ucide va castiga un premiu special.", deerZone);
- SCM(x, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Daca aceasta nu va fi gasita in 30 minute, server-ul va spawna alta caprioara.");
- }
- return 1;
- }
- }
- case E_STATE_SPAWNED:
- {
- if(deerVariables[deerTime] && deerVariables[deerTime] <= gettime())
- {
- deerVariables[deerTime] = gettime() + 600;
- deerVariables[deerState] = E_STATE_WAITING;
- deerVariables[deerID] = 0;
- DestroyDynamicObject(deerVariables[deerID]);
- foreach(new x : Player)
- {
- SCM(x, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Nimeni nu a reusit sa ucida caprioara, server-ul va spawna alta in aproximativ 10 minute.");
- }
- return 1;
- }
- if(deerVariables[deerTime] && deerVariables[deerTime] - gettime() <= 60)
- {
- GetPlayer3DZone2(deerVariables[deerPosX], deerVariables[deerPosY], deerVariables[deerPosZ], deerZone, sizeof deerZone);
- foreach(new x : Player)
- {
- SCM(x, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Daca numeni nu va gasi caprioara in aproximativ 1 minut, aceasta se va intoarce la familia ei.");
- SCMEx(x, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Caprioara se afla in zona %s.", deerZone);
- }
- }
- }
- }
- return 1;
- }
- hook OnGameModeInit()
- {
- deerVariables[deerTime] = gettime() + 600;
- deerVariables[deerState] = E_STATE_WAITING;
- return 1;
- }
- hook OnPlayerDisconnect(playerid, reason)
- {
- if(Iter_Contains(playerKillDeer, playerid)) Iter_Remove(playerKillDeer, playerid);
- return 1;
- }
- public OnPlayerShootDynamicObject(playerid, weaponid, STREAMER_TAG_OBJECT objectid, Float:x, Float:y, Float:z)
- {
- if(objectid == deerVariables[deerID])
- {
- if(weaponid != 31) return SCM(playerid, COLOR_GREY, "Ai nevoie de un M4 pentru a omora caprioara.");
- if(GetPVarInt(playerid, "deerDead") == 1) return 1;
- new Float: deerX, Float: deerY, Float: deerZ;
- GetDynamicObjectPos(objectid, deerX, deerY, deerZ);
- SetDynamicObjectRot(objectid, 90, 0, 0);
- SetDynamicObjectPos(objectid, deerX, deerY, deerZ - 0.5);
- deerVariables[deerTime] = gettime() + 1600;
- deerVariables[deerState] = E_STATE_WAITING;
- foreach(new xyz : Player)
- {
- SCMEx(xyz, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Caprioara a fost ucisa cu sange rece de catre %s (ID: %d).", PlayerInfo[playerid][pUsername], playerid);
- SCM(xyz, COLOR_GREEN, "(Deer Hunter): {FFFFFF}O alta caprioara va fi spawnata in aproximativ 30 minute.");
- }
- givePlayerAward(playerid);
- SetPVarInt(playerid, "deerDead", 1);
- Iter_Add(playerKillDeer, playerid);
- defer destroyDeer();
- }
- return 1;
- }
- timer destroyDeer[3500]()
- {
- DestroyDynamicObject(deerVariables[deerID]);
- deerVariables[deerID] = 0;
- foreach(new x : playerKillDeer)
- {
- DeletePVar(x, "deerDead");
- Iter_SafeRemove(playerKillDeer, x, x);
- }
- }
- function givePlayerAward(playerid)
- {
- new award = random(100);
- new amount;
- switch(award)
- {
- case 0..10:
- {
- amount = 5 + random(10);
- PlayerInfo[playerid][pPremiumPoints] = amount;
- UpdateVar(playerid, "GoldPoints", amount);
- va_GameTextForPlayer(playerid, "+ %d premium points", 2500, 1, amount);
- SCMEx(playerid, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Ai primit %d premium points pentru uciderea acestei caprioare.", amount);
- }
- case 11..50:
- {
- amount = 1 + random(5);
- PlayerInfo[playerid][pExp] = amount;
- UpdateVar(playerid, "Respect", amount);
- va_GameTextForPlayer(playerid, "+ %d respect points", 2500, 1, amount);
- SCMEx(playerid, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Ai primit %d respect points pentru uciderea acestei caprioare.", amount);
- }
- default:
- {
- amount = 100000 + random(150000);
- GivePlayerCash(playerid, amount);
- UpdateVar(playerid, "Money", amount);
- va_GameTextForPlayer(playerid, "+ $%s", 2500, 1, FormatNumber(amount));
- SCMEx(playerid, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Ai primit $%s pentru uciderea acestei caprioare.", FormatNumber(amount));
- }
- }
- return 1;
- }
- CMD:gotodeer(playerid, params[])
- {
- if(PlayerInfo[playerid][pAdmin] < 7) return SCM(playerid, COLOR_RED, AdminOnly);
- SetPlayerPos(playerid, deerVariables[deerPosX] + 5, deerVariables[deerPosY] + 5, deerVariables[deerPosZ] + 5);
- return 1;
- }
- CMD:deerspawn(playerid, params[])
- {
- if(PlayerInfo[playerid][pAdmin] < 7) return SCM(playerid, COLOR_RED, AdminOnly);
- deerVariables[deerTime] = gettime() + 5;
- return 1;
- }
- CMD:deer(playerid, params[])
- {
- switch(deerVariables[deerState])
- {
- case E_STATE_WAITING: SCMEx(playerid, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Urmatoarea caprioara va fi spawnata in aproximativ %s.", CalculeazaTimp2(deerVariables[deerTime] - gettime()));
- case E_STATE_SPAWNED:
- {
- GetPlayer3DZone2(deerVariables[deerPosX], deerVariables[deerPosY], deerVariables[deerPosZ], deerZone, sizeof deerZone);
- SCMEx(playerid, COLOR_GREEN, "(Deer Hunter): {FFFFFF}O caprioara a fost zarita in zona %s, fii primul care o ucide pentru a castiga un premiu special.", deerZone);
- }
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement