Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Filterscript by Adrian Petre,nu stergeti creditele!!!
- #define FILTERSCRIPT // Definirea de Filescript.
- #include <a_samp>
- #include <sscanf2>
- #include <foreach>
- #include <streamer>
- //#include <Double-O-Icons> // Asta lasatil asa.
- #define COLOR_LIME 0x00FF00DC //Culoarea LIME(verde mai deschis) pentru caciula de mos craciun
- #define GREY 0xAFAFAFAA // Culoarea gri
- #define LIGHTGREEN 0x9ACD32AA //Culoarea verde deschis.
- #define COLOR_GREY 0xAFAFAFAA //Culoarea Gri
- #define COLOR_WHITE 0xFFFFFFAA //Culoarea alba
- #define COLOR_YELLOW 0xFFFF00AA//Culoarea galben
- #define RocketHeight 50 // Inaltimea obiectului in cazul nostru artificiul..
- #define RocketSpread 30 // Raza de vedere a artificiului.
- #define MAX_LAUNCH 20 //Altceva...
- #define MAX_FIREWORKS 100 // Maximul de artificii
- #if defined FILTERSCRIPT // Definirea de Filescript.
- #define F_MAX_OBJECTS 1000 //Ai posibilitatea de a pune 1000 de obiecte create(de comanda /brad) pe server
- #define UpdateTime 300 //Update la timp pentru brazi
- #define ObjectsToStream 300 // 300 obiecte pe streamer..
- #define StreamRange 300.0 // Distanta in care vei vedea brazii.
- #pragma dynamic 30000 // O chestie importanta.
- #define MAX_XMASTREES 100 // Maximul de brazi pe server este de 100 pentru a nu se creea lag.
- forward F_ObjectUpdate(bool:DontCheckDistance);
- forward F_StartUpdate();
- new Rocket[MAX_LAUNCH];
- new RocketLight[MAX_LAUNCH];
- new RocketSmoke[MAX_LAUNCH];
- new RocketExplosions[MAX_LAUNCH];
- new Float:rx[MAX_LAUNCH];
- new Float:ry[MAX_LAUNCH];
- new Float:rz[MAX_LAUNCH];
- new FireworkTotal;
- new Fired;
- forward Firework(i);
- public Firework(i)
- {
- new Float:x, Float:y, Float:z;
- x = rx[i];
- y = ry[i];
- z = rz[i];
- z += RocketHeight;
- if (RocketExplosions[i] == 0)
- {
- DestroyDynamicObject(Rocket[i]);
- DestroyDynamicObject(RocketLight[i]);
- DestroyDynamicObject(RocketSmoke[i]);
- CreateExplosion(x ,y, z, 4, 10);
- CreateExplosion(x ,y, z, 5, 10);
- CreateExplosion(x ,y, z, 6, 10);
- }
- else if (RocketExplosions[i] >= MAX_FIREWORKS)
- {
- for (new j = 0; j <= RocketSpread; j++)
- {
- CreateExplosion(x + float(j - (RocketSpread / 2)), y, z, 7, 10);
- CreateExplosion(x, y + float(j - (RocketSpread / 2)), z, 7, 10);
- CreateExplosion(x, y, z + float(j - (RocketSpread / 2)), 7, 10);
- }
- RocketExplosions[i] = -1;
- FireworkTotal = 0;
- Fired = 0;
- return 1;
- }
- else
- {
- x += float(random(RocketSpread) - (RocketSpread / 2));
- y += float(random(RocketSpread) - (RocketSpread / 2));
- z += float(random(RocketSpread) - (RocketSpread / 2));
- CreateExplosion(x, y, z, 7, 10);
- }
- RocketExplosions[i]++;
- SetTimerEx("Firework", 250, 0, "i", i);
- return 1;
- }
- new
- bool:snowOn[ 54 char ],
- snowObject[ 54 ][ 5 ],
- updateTimer [ 54 char ]
- ;
- enum XmasTrees
- {
- XmasTreeX,
- Float:XmasX,
- Float:XmasY,
- Float:XmasZ,
- XmasObject1,
- XmasObject2,
- XmasObject3,
- XmasObject4,
- XmasObject5,
- XmasObject6,
- XmasObject7,
- XmasObject8,
- XmasObject9,
- XmasObject10,
- };
- new Treepos[MAX_XMASTREES][XmasTrees];
- enum OInfo
- {
- ModelID,
- ObjectID[MAX_PLAYERS],
- Float:ox,
- Float:oy,
- Float:oz,
- Float:orox,
- Float:oroy,
- Float:oroz,
- Float:ovdist,
- bool:ObjectCreated[MAX_PLAYERS],
- };
- new ObjectInfo[F_MAX_OBJECTS][OInfo];
- new bool:ObjectUpdatetRunning;
- new bool:CantCreateMore;
- new bool:RefreshObjects[MAX_PLAYERS];
- new Float:OldX[MAX_PLAYERS], Float:OldY[MAX_PLAYERS], Float:OldZ[MAX_PLAYERS];
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Christmass System by Adrian Pere ");
- print("--------------------------------------\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerConnect( playerid )
- {
- CreateSnow( playerid );
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if(!strcmp(cmdtext, "/artificii", true))
- {
- if(FireworkTotal == MAX_LAUNCH)
- {
- SendClientMessage(playerid, COLOR_WHITE, "Ai cumparat numarul maxim de artificii!");
- return 1;
- }
- if(Fired == 1)
- {
- SendClientMessage(playerid, COLOR_WHITE, "Asteapta sa explodeze artificiul!");
- return 1;
- }
- new string[128];
- format(string, sizeof(string), "%s a aprins un artificiu.", GetPlayerNameEx(playerid));
- new Float:x, Float:y, Float:z, Float:a;
- GetPlayerPos(playerid, x, y, z);
- foreach(Player, i)
- {
- if(IsPlayerInRangeOfPoint(i, 30, x, y, z)) {
- SendClientMessage(i, COLOR_YELLOW, string);
- }
- }
- GetPlayerFacingAngle(playerid, a);
- x += (2 * floatsin(-a, degrees));
- y += (2 * floatcos(-a, degrees));
- Rocket[FireworkTotal] = CreateDynamicObject(3786, x, y, z, 0, 90, 0);
- RocketLight[FireworkTotal] = CreateDynamicObject(354, x, y, z + 1, 0, 90, 0);
- RocketSmoke[FireworkTotal] = CreateDynamicObject(18716, x, y, z - 4, 0, 0, 0);
- rx[FireworkTotal] = x;
- ry[FireworkTotal] = y;
- rz[FireworkTotal] = z;
- RocketExplosions[FireworkTotal] = 0;
- FireworkTotal++;
- return 1;
- }
- if(!strcmp(cmdtext, "/lanseaza", true))
- {
- if(FireworkTotal == 0)
- {
- SendClientMessage(playerid, COLOR_WHITE, "Nu ai nici un artificiu!");
- return 1;
- }
- if(Fired == 1)
- {
- SendClientMessage(playerid, COLOR_WHITE, "Ai plasat deja focul de artificiu,asteapta sa explodeze!");
- return 1;
- }
- for(new i = 0; i < FireworkTotal; i++)
- {
- CreateExplosion(rx[i] ,ry[i], rz[i], 12, 5);
- new time = MoveDynamicObject(Rocket[i], rx[i] ,ry[i], rz[i] + RocketHeight, 10);
- MoveDynamicObject(RocketLight[i], rx[i] ,ry[i], rz[i] + 2 + RocketHeight, 10);
- MoveDynamicObject(RocketSmoke[i], rx[i] ,ry[i], rz[i] + RocketHeight, 10);
- SetTimerEx("Firework", time, 0, "i", i);
- }
- Fired = 1;
- return 1;
- }
- if(strcmp(cmdtext, "/brad", true) == 0)
- {
- new Float:plocx,Float:plocy,Float:plocz; // Ia niste float-uri.
- GetPlayerPos(playerid, plocx, plocy, plocz); // Se iau coordonatele playerului.
- SetXmasTree(plocx,plocy,plocz);// Se iau coordonatele bradului si se creeaza.
- SetPlayerPos(playerid, plocx-2.5, plocy+2.5, plocz);//La aceasta pozitie se va creea bradul
- SendClientMessage(playerid, LIGHTGREEN, "Ai creat un brad de craciun!Felicitari.");
- return 1;
- }
- if(strcmp(cmdtext, "/scoatebrad", true) == 0)
- {
- DeleteClosestXmasTree(playerid);
- SendClientMessage(playerid, LIGHTGREEN, "Ai scos un brad de craciun!Sarbatori fericite!");
- return 1;
- }
- if(!strcmp(cmdtext, "/caciula", true))
- {
- if( snowOn{ playerid } )
- {
- DeleteSnow( playerid );
- SendClientMessage( playerid, 0x00FF00AA, "{FF0000}Sarbatori fericite!{FFFFFF}Ai oprit ninsoarea!" );
- }
- else
- {
- CreateSnow( playerid );
- SendClientMessage( playerid, 0x00FF00AA, "{FF0000}Craciunul soseste!{FFFFFF}Ninge!" );
- }
- return ( 1 );
- }
- if(!strcmp(cmdtext, "/caciula", true))
- {
- SetPlayerAttachedObject(playerid, 3, 19065, 2, 0.120000, 0.040000, -0.003500, 0, 100, 100, 1.4, 1.4, 1.4);
- return SendClientMessage(playerid, 0x00FF00FF, "Ti-ai pus o caciula de Mos Craciun!Sarbatori fericite!");
- }
- if(!strcmp(cmdtext, "/scoatecaciula", true))
- {
- if(IsPlayerAttachedObjectSlotUsed(playerid, 3))
- {
- RemovePlayerAttachedObject(playerid, 3);
- SendClientMessage(playerid, 0x00FF00FF, "Ti-ai dat caciula de craciun jos!Sarbatori fericite!");
- }
- return 1;
- }
- if(strcmp(cmdtext, "/scoatetotibrazii", true) == 0)
- {
- DeleteAllXmasTree();
- SendClientMessage(playerid, LIGHTGREEN, "Ai scos toti brazii de pe server!Sarbatori fericite!");
- return 1;
- }
- return 0;
- }
- public F_StartUpdate()
- {
- SetTimer("F_ObjectUpdate", UpdateTime, 1);
- }
- stock F_CreateObject(modelid, Float:x, Float:y, Float:z, Float:rox, Float:roy, Float:roz, Float:vdist=0.0)
- {
- if(ObjectUpdatetRunning == false)
- {
- SetTimer("F_StartUpdate", F_MAX_OBJECTS/2, 0);
- ObjectUpdatetRunning = true;
- }
- new objectid;
- if(CantCreateMore == false)
- {
- for(new i; i<F_MAX_OBJECTS; i++)
- {
- if(i == F_MAX_OBJECTS-1)
- {
- printf("Obiectele de la brazi (%i) au ajuns la limita!", F_MAX_OBJECTS);
- CantCreateMore = true;
- }
- if(ObjectInfo[i][ModelID] == 0)
- {
- objectid = i;
- break;
- }
- }
- }
- else
- {
- return -1;
- }
- if(modelid == 0)
- {
- printf("Comanda invalida a obiectului (%i)", objectid);
- return -1;
- }
- ObjectInfo[objectid][ModelID] = modelid;
- ObjectInfo[objectid][ox] = x;
- ObjectInfo[objectid][oy] = y;
- ObjectInfo[objectid][oz] = z;
- ObjectInfo[objectid][orox] = rox;
- ObjectInfo[objectid][oroy] = roy;
- ObjectInfo[objectid][oroz] = roz;
- ObjectInfo[objectid][ovdist] = vdist;
- return objectid;
- }
- stock F_IsValidObject(objectid)
- {
- if(ObjectInfo[objectid][ModelID] == 0 || objectid == -1)
- {
- return 0;
- }
- return 1;
- }
- stock F_DestroyObject(objectid)
- {
- if(F_IsValidObject(objectid))
- {
- for(new playerid; playerid<MAX_PLAYERS; playerid++)
- {
- if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid) && ObjectInfo[objectid][ObjectCreated][playerid] == true)
- {
- DestroyPlayerObject(playerid, ObjectInfo[objectid][ObjectID][playerid]);
- ObjectInfo[objectid][ObjectCreated][playerid] = false;
- }
- }
- ObjectInfo[objectid][ModelID] = 0;
- return 1;
- }
- return 0;
- }
- stock F_MoveObject(objectid, Float:x, Float:y, Float:z, Float:speed)
- {
- if(F_IsValidObject(objectid))
- {
- new time;
- for(new playerid; playerid<MAX_PLAYERS; playerid++)
- {
- if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid) && ObjectInfo[objectid][ObjectCreated][playerid] == true)
- {
- time = MovePlayerObject(playerid, ObjectInfo[objectid][ObjectID][playerid], x, y, z, speed);
- }
- }
- return time;
- }
- return 0;
- }
- stock F_StopObject(objectid)
- {
- if(F_IsValidObject(objectid))
- {
- for(new playerid; playerid<MAX_PLAYERS; playerid++)
- {
- if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid) && ObjectInfo[objectid][ObjectCreated][playerid] == true)
- {
- StopPlayerObject(playerid, ObjectInfo[objectid][ObjectID][playerid]);
- }
- }
- return 1;
- }
- return 0;
- }
- stock F_SetObjectPos(objectid, Float:x, Float:y, Float:z)
- {
- if(F_IsValidObject(objectid))
- {
- ObjectInfo[objectid][ox] = x;
- ObjectInfo[objectid][oy] = y;
- ObjectInfo[objectid][oz] = z;
- for(new playerid; playerid<MAX_PLAYERS; playerid++)
- {
- if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid) && ObjectInfo[objectid][ObjectCreated][playerid] == true)
- {
- SetPlayerObjectPos(playerid, ObjectInfo[objectid][ObjectID][playerid], x, y, z);
- }
- }
- return 1;
- }
- return 0;
- }
- stock F_GetObjectPos(objectid, &Float:x, &Float:y, &Float:z)
- {
- if(F_IsValidObject(objectid))
- {
- x = ObjectInfo[objectid][ox];
- y = ObjectInfo[objectid][oy];
- z = ObjectInfo[objectid][oz];
- return 1;
- }
- else
- {
- return 0;
- }
- }
- stock F_SetObjectRot(objectid, Float:rox, Float:roy, Float:roz)
- {
- if(F_IsValidObject(objectid))
- {
- ObjectInfo[objectid][orox] = rox;
- ObjectInfo[objectid][oroy] = roy;
- ObjectInfo[objectid][oroz] = roz;
- for(new playerid; playerid<MAX_PLAYERS; playerid++)
- {
- if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid) && ObjectInfo[objectid][ObjectCreated][playerid] == true)
- {
- SetPlayerObjectRot(playerid, ObjectInfo[objectid][ObjectID][playerid], rox, roy, roz);
- }
- }
- return 1;
- }
- return 0;
- }
- stock F_GetObjectRot(objectid, &Float:rox, &Float:roy, &Float:roz)
- {
- if(F_IsValidObject(objectid))
- {
- rox = ObjectInfo[objectid][orox];
- roy = ObjectInfo[objectid][oroy];
- roz = ObjectInfo[objectid][oroz];
- return 1;
- }
- else
- {
- return 0;
- }
- }
- stock F_RefreshObjects(playerid)
- {
- if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
- {
- RefreshObjects[playerid] = true;
- new Float:x, Float:y, Float:z;
- GetPlayerPos(playerid, x, y, z);
- F_PlayerObjectUpdate(playerid, x, y, z);
- return 1;
- }
- return 0;
- }
- stock F_Streamer_OnPlayerConnect(playerid)
- {
- for(new objectid; objectid<F_MAX_OBJECTS; objectid++)
- {
- ObjectInfo[objectid][ObjectCreated][playerid] = false;
- }
- OldX[playerid] = 999999999.99;
- OldY[playerid] = 999999999.99;
- OldZ[playerid] = 999999999.99;
- RefreshObjects[playerid] = false;
- return 1;
- }
- public F_ObjectUpdate(bool:DontCheckDistance)
- {
- new Float:ObjDistance[F_MAX_OBJECTS];
- new Closest[ObjectsToStream];
- new ObjectArr[F_MAX_OBJECTS];
- new nr;
- new bool:Firstloop;
- new bool:DontDestroy[F_MAX_OBJECTS];
- for(new playerid; playerid<MAX_PLAYERS; playerid++)
- {
- if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
- {
- if(!IsPlayerInRangeOfPoint(playerid, 1.0, OldX[playerid], OldY[playerid], OldZ[playerid]) || DontCheckDistance)
- {
- GetPlayerPos(playerid, OldX[playerid], OldY[playerid], OldZ[playerid]);
- nr = 0;
- for(new objectid; objectid<F_MAX_OBJECTS; objectid++)
- {
- if(F_IsValidObject(objectid))
- {
- ObjDistance[objectid] = floatsqroot(floatpower(floatsub(ObjectInfo[objectid][ox],OldX[playerid]),2)+floatpower(floatsub(ObjectInfo[objectid][oy],OldY[playerid]),2)+floatpower(floatsub(ObjectInfo[objectid][oz],OldZ[playerid]),2));
- if(floatcmp(ObjDistance[objectid], StreamRange) == -1)
- {
- ObjectArr[nr] = objectid;
- nr++;
- }
- }
- }
- Closest = "";
- if(nr > ObjectsToStream)
- {
- for(new loop; loop<ObjectsToStream; loop++)
- {
- Firstloop = true;
- for(new objectid; objectid<nr; objectid++)
- {
- if((ObjDistance[ObjectArr[objectid]] != 999999999.99) && ((floatcmp(ObjDistance[ObjectArr[objectid]], ObjDistance[Closest[loop]]) == -1) || Firstloop))
- {
- Firstloop = false;
- Closest[loop] = ObjectArr[objectid];
- }
- }
- ObjDistance[Closest[loop]] = 999999999.99;
- }
- }
- else
- {
- for(new objectid; objectid<nr; objectid++)
- {
- Closest[objectid] = ObjectArr[objectid];
- }
- }
- for(new objectid; objectid<F_MAX_OBJECTS; objectid++) { DontDestroy[objectid] = false; }
- for(new objectid; objectid<ObjectsToStream && objectid<nr; objectid++)
- {
- DontDestroy[Closest[objectid]] = true;
- }
- for(new objectid; objectid<F_MAX_OBJECTS; objectid++)
- {
- if(ObjectInfo[objectid][ObjectCreated][playerid] == true && DontDestroy[objectid] == false)
- {
- DestroyPlayerObject(playerid, ObjectInfo[objectid][ObjectID][playerid]);
- ObjectInfo[objectid][ObjectCreated][playerid] = false;
- }
- }
- for(new loop; loop<ObjectsToStream && loop<nr; loop++)
- {
- if(ObjectInfo[Closest[loop]][ObjectCreated][playerid] == false)
- {
- ObjectInfo[Closest[loop]][ObjectID][playerid] = CreatePlayerObject(playerid, ObjectInfo[Closest[loop]][ModelID], ObjectInfo[Closest[loop]][ox], ObjectInfo[Closest[loop]][oy], ObjectInfo[Closest[loop]][oz], ObjectInfo[Closest[loop]][orox], ObjectInfo[Closest[loop]][oroy], ObjectInfo[Closest[loop]][oroz], ObjectInfo[Closest[loop]][ovdist]);
- ObjectInfo[Closest[loop]][ObjectCreated][playerid] = true;
- }
- }
- }
- }
- }
- }
- stock F_ObjectUpdateForAll()
- {
- F_ObjectUpdate(true);
- }
- stock F_PlayerObjectUpdate(playerid, Float:x, Float:y, Float:z)
- {
- if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
- {
- OldX[playerid] = x;
- OldY[playerid] = y;
- OldZ[playerid] = z;
- new nr;
- new Float:ObjDistance[F_MAX_OBJECTS];
- new ObjectArr[F_MAX_OBJECTS];
- for(new objectid; objectid<F_MAX_OBJECTS; objectid++)
- {
- if(F_IsValidObject(objectid))
- {
- ObjDistance[objectid] = floatsqroot(floatpower(floatsub(ObjectInfo[objectid][ox],x),2)+floatpower(floatsub(ObjectInfo[objectid][oy],y),2)+floatpower(floatsub(ObjectInfo[objectid][oz],z),2));
- if(floatcmp(ObjDistance[objectid], StreamRange) == -1)
- {
- ObjectArr[nr] = objectid;
- nr++;
- }
- }
- }
- new Closest[ObjectsToStream];
- if(nr > ObjectsToStream)
- {
- for(new loop; loop<ObjectsToStream; loop++)
- {
- new bool:Firstloop = true;
- for(new objectid; objectid<nr; objectid++)
- {
- if((ObjDistance[ObjectArr[objectid]] != 999999999.99) && ((floatcmp(ObjDistance[ObjectArr[objectid]], ObjDistance[Closest[loop]]) == -1) || Firstloop))
- {
- Firstloop = false;
- Closest[loop] = ObjectArr[objectid];
- }
- }
- ObjDistance[Closest[loop]] = 999999999.99;
- }
- }
- else
- {
- for(new objectid; objectid<nr; objectid++)
- {
- Closest[objectid] = ObjectArr[objectid];
- }
- }
- new bool:DontDestroy[F_MAX_OBJECTS];
- for(new objectid; objectid<ObjectsToStream && objectid<nr; objectid++)
- {
- DontDestroy[Closest[objectid]] = true;
- }
- for(new objectid; objectid<F_MAX_OBJECTS; objectid++)
- {
- if(ObjectInfo[objectid][ObjectCreated][playerid] == true && (DontDestroy[objectid] == false || RefreshObjects[playerid] == true))
- {
- DestroyPlayerObject(playerid, ObjectInfo[objectid][ObjectID][playerid]);
- ObjectInfo[objectid][ObjectCreated][playerid] = false;
- }
- }
- RefreshObjects[playerid] = false;
- for(new loop; loop<ObjectsToStream && loop<nr; loop++)
- {
- if(ObjectInfo[Closest[loop]][ObjectCreated][playerid] == false)
- {
- ObjectInfo[Closest[loop]][ObjectID][playerid] = CreatePlayerObject(playerid, ObjectInfo[Closest[loop]][ModelID], ObjectInfo[Closest[loop]][ox], ObjectInfo[Closest[loop]][oy], ObjectInfo[Closest[loop]][oz], ObjectInfo[Closest[loop]][orox], ObjectInfo[Closest[loop]][oroy], ObjectInfo[Closest[loop]][oroz], ObjectInfo[Closest[loop]][ovdist]);
- ObjectInfo[Closest[loop]][ObjectCreated][playerid] = true;
- }
- }
- }
- }
- #define SetPlayerPos F_SetPlayerPos
- stock F_SetPlayerPos(playerid, Float:x, Float:y, Float:z)
- {
- F_PlayerObjectUpdate(playerid, x, y, z);
- SetPlayerPos(playerid, x, y, z);
- }
- stock SetXmasTree(Float:x,Float:y,Float:z)
- {
- for(new i = 0; i < sizeof(Treepos); i++)
- {
- if(Treepos[i][XmasTreeX] == 0)
- {
- Treepos[i][XmasTreeX]=1;
- Treepos[i][XmasX]=x;
- Treepos[i][XmasY]=y;
- Treepos[i][XmasZ]=z;
- Treepos[i][XmasObject1] = F_CreateObject(19076, x, y, z-1.0,0,0,300);//xmas tree
- Treepos[i][XmasObject2] = F_CreateObject(19054, x, y+1.0, z-0.4,0,0,300);//XmasBox1
- Treepos[i][XmasObject3] = F_CreateObject(19058, x+1.0, y, z-0.4,0,0,300);//XmasBox5
- Treepos[i][XmasObject4] = F_CreateObject(19056, x, y-1.0, z-0.4,0,0,300);//XmasBox3
- Treepos[i][XmasObject5] = F_CreateObject(19057, x-1.0, y, z-0.4,0,0,300);//XmasBox4
- Treepos[i][XmasObject6] = F_CreateObject(19058, x-1.5, y+1.5, z-1.0,0,0,300);//XmasBox5
- Treepos[i][XmasObject7] = F_CreateObject(19055, x+1.5, y-1.5, z-1.0,0,0,300);//XmasBox2
- Treepos[i][XmasObject8] = F_CreateObject(19057, x+1.5, y+1.5, z-1.0,0,0,300);//XmasBox4
- Treepos[i][XmasObject9] = F_CreateObject(19054, x-1.5, y-1.5, z-1.0,0,0,300);//XmasBox1
- Treepos[i][XmasObject10] = F_CreateObject(3526, x, y, z-1.0,0,0,300);//Airportlight - for flashing affect
- return 1;
- }
- }
- return 0;
- }
- stock DeleteAllXmasTree()
- {
- for(new i = 0; i < sizeof(Treepos); i++)
- {
- if(Treepos[i][XmasTreeX] == 1)
- {
- Treepos[i][XmasTreeX]=0;
- Treepos[i][XmasX]=0.0;
- Treepos[i][XmasY]=0.0;
- Treepos[i][XmasZ]=0.0;
- F_DestroyObject(Treepos[i][XmasObject1]);
- F_DestroyObject(Treepos[i][XmasObject2]);
- F_DestroyObject(Treepos[i][XmasObject3]);
- F_DestroyObject(Treepos[i][XmasObject4]);
- F_DestroyObject(Treepos[i][XmasObject5]);
- F_DestroyObject(Treepos[i][XmasObject6]);
- F_DestroyObject(Treepos[i][XmasObject7]);
- F_DestroyObject(Treepos[i][XmasObject8]);
- F_DestroyObject(Treepos[i][XmasObject9]);
- F_DestroyObject(Treepos[i][XmasObject10]);
- }
- }
- return 0;
- }
- stock DeleteClosestXmasTree(playerid)
- {
- for(new i = 0; i < sizeof(Treepos); i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 3.0, Treepos[i][XmasX], Treepos[i][XmasY], Treepos[i][XmasZ]))
- {
- if(Treepos[i][XmasTreeX] == 1)
- {
- Treepos[i][XmasTreeX]=0;
- Treepos[i][XmasX]=0.0;
- Treepos[i][XmasY]=0.0;
- Treepos[i][XmasZ]=0.0;
- F_DestroyObject(Treepos[i][XmasObject1]);
- F_DestroyObject(Treepos[i][XmasObject2]);
- F_DestroyObject(Treepos[i][XmasObject3]);
- F_DestroyObject(Treepos[i][XmasObject4]);
- F_DestroyObject(Treepos[i][XmasObject5]);
- F_DestroyObject(Treepos[i][XmasObject6]);
- F_DestroyObject(Treepos[i][XmasObject7]);
- F_DestroyObject(Treepos[i][XmasObject8]);
- F_DestroyObject(Treepos[i][XmasObject9]);
- F_DestroyObject(Treepos[i][XmasObject10]);
- return 1;
- }
- }
- }
- return 0;
- }
- stock CreateSnow( playerid )
- {
- if( snowOn{ playerid } )
- return ( 0 );
- new Float:pPos[ 3 ];
- GetPlayerPos( playerid, pPos[ 0 ], pPos[ 1 ], pPos[ 2 ] );
- for( new i = 0; i < 5; i ++ )
- snowObject[ playerid ][ i ] = CreateObject( 18864, pPos[ 0 ] + random( 25 ), pPos[ 1 ] + random ( 25 ), pPos[ 2 ] - 5, random( 100 ), random( 100 ), random( 100 ), -1, -1, playerid );
- snowOn{ playerid } = true;
- return ( 1 );
- }
- stock DeleteSnow( playerid )
- {
- if( !snowOn{ playerid } )
- return ( 0 );
- for( new i = 0; i < 5; i ++ )
- DestroyObject( snowObject[ playerid ][ i ] );
- KillTimer( updateTimer{ playerid } );
- snowOn{ playerid } = false;
- return ( 1 );
- }
- GetPlayerNameEx(playerid) {
- new sz_playerName[MAX_PLAYER_NAME], i_pos;
- GetPlayerName(playerid, sz_playerName, MAX_PLAYER_NAME);
- while ((i_pos = strfind(sz_playerName, "_", false, i_pos)) != -1) sz_playerName[i_pos] = ' ';
- return sz_playerName;
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement