Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*=======================
- Winter Mission
- by MadalinAdv
- Ce trebuie sa faci:
- 1.Pui #include <nume> dupa OnGameModeInit
- 2. La enum pInfo sau cum ai tu pui pWinterObjects.
- 3. La OnPlayerLogin adaugi PlayerInfo[playerid][pWinterObjects] = cache_get_field_content_int(0, "WinterObjects");
- 4. De adaugat in tabelul users un field cu "WinterObjects"
- =======================*/
- #include <YSI\y_timers>
- #include <YSI\y_va>
- #include <YSI\y_hooks>
- #include <YSI\y_iterate>
- new PlayerText:WinterPTD[MAX_PLAYERS][1];
- new Iterator:PlayersInWinterQuest<MAX_PLAYERS>;
- new WinterCar[MAX_PLAYERS], WinterCP[MAX_PLAYERS], WinterRandom[MAX_PLAYERS], WinterTime[MAX_PLAYERS];
- hook OnPlayerConnect(playerid) {
- WinterCar[playerid] = 0;
- WinterCP[playerid] = 0;
- WinterRandom[playerid] = 0;
- WinterTime[playerid] = 0;
- LoadWinterTD(playerid);
- }
- hook OnPlayerDisconnect(playerid, reason) {
- if(Iter_Contains(PlayersInWinterQuest, playerid)) {
- WinterCar[playerid] = 0;
- WinterCP[playerid] = 0;
- WinterRandom[playerid] = 0;
- WinterTime[playerid] = 0;
- Iter_Remove(PlayersInWinterQuest, playerid);
- PlayerTextDrawHide(playerid, WinterPTD[playerid][0]);
- new query[128];
- mysql_format(SQL, query, 128, "UPDATE `users` SET `WinterObjects`=%d WHERE `id`=%d", PlayerInfo[playerid][pWinterObjects], PlayerInfo[playerid][pSQLID]);
- mysql_tquery(SQL, query, "", "");
- }
- return 1;
- }
- hook OnPlayerDeath(playerid) {
- if(Iter_Contains(PlayersInWinterQuest, playerid)) {
- DestroyVehicle(WinterCar[playerid]);
- WinterCar[playerid] = 0;
- WinterCP[playerid] = 0;
- WinterRandom[playerid] = 0;
- WinterTime[playerid] = 0;
- SCM(playerid, -1, "Quest esuat, ai murit");
- Iter_Remove(PlayersInWinterQuest, playerid);
- PlayerTextDrawHide(playerid, WinterPTD[playerid][0]);
- new query[128];
- mysql_format(SQL, query, 128, "UPDATE `users` SET `WinterObjects`=%d WHERE `id`=%d", PlayerInfo[playerid][pWinterObjects], PlayerInfo[playerid][pSQLID]);
- mysql_tquery(SQL, query, "", "");
- }
- return 1;
- }
- hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
- if(newkeys == KEY_CTRL_BACK) {
- if(Iter_Contains(PlayersInWinterQuest, playerid)) {
- new car = GetClosestVehicle(playerid);
- if(!IsPlayerNearVehicle(playerid, car, 5) && !IsABoat(car)) return 1;
- else if(!IsPlayerNearVehicle(playerid, car, 10) && IsABoat(car)) return 1;
- if(GetPVarInt(playerid, "HaveGift") == 1) return 1;
- if(WinterCar[playerid] != car) return SCM(playerid, -1, "Nu esti in spatele vehiculului de la quest.");
- if(IsPlayerInAnyVehicle(playerid)) return SCM(playerid, COLOR_LGREEN, "Eroare: Nu poti ridica cadoul dintr-un vehicul!");
- if(!IsPlayerInRangeOfPoint(playerid, 20, HouseInfo[WinterRandom[playerid]][hEntrancex],HouseInfo[WinterRandom[playerid]][hEntrancey],HouseInfo[WinterRandom[playerid]][hEntrancez])) return SCM(playerid, -1, "Nu poti ridica cadoul deoarece distnata dintre tine si checkpoint este prea mare.");
- SetPVarInt(playerid, "HaveGift", 1);
- SCM(playerid, COLOR_LGREEN, "Ai luat cadoul cu succes, il poti duce la checkpoint!");
- SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY);
- SetPlayerAttachedObject( playerid, 6, 19056, 1, 0.299822, 0.663485, -0.036337, 184.311355, 90.004089, 0.000000, 1.000000, 1.000000, 1.000000 );
- }
- }
- return 1;
- }
- /*hook OnPlayerExitVehicle(playerid, vehicleid) {
- if(vehicleid == WinterCar[playerid]) {
- SCM(playerid, -1, "Quest esuat, te ai dat jos.");
- DisablePlayerCheckpointEx(playerid);
- Iter_Remove(PlayersInWinterQuest, playerid);
- DestroyVehicle(WinterCar[playerid]);
- WinterRandom[playerid] = 0;
- WinterCar[playerid] = 0;
- WinterCP[playerid] = 0;
- PlayerTextDrawHide(playerid, WinterPTD[playerid][0]);
- WinterTime[playerid] = 0;
- new query[128];
- mysql_format(SQL, query, 128, "UPDATE `users` SET `WinterObjects`=%d WHERE `id`=%d", PlayerInfo[playerid][pWinterObjects], PlayerInfo[playerid][pSQLID]);
- mysql_tquery(SQL, query, "", "");
- }
- }*/
- stock RandomEx(minim, maxim) return random(maxim - minim) + minim;
- hook OnPlayerEnterCheckpoint(playerid) {
- switch(WinterCP[playerid]) {
- case 69: {
- if(PlayerInfo[playerid][pWinterObjects] == 11) {
- new premiu;
- switch(random(100)) {
- case 0..85: {
- premiu = RandomEx(5000000, 10000000);
- GivePlayerCash(playerid, premiu);
- Update(playerid, pCash);
- va_SendClientMessage(playerid, -1, "Ai completat quest-ul si ai castigat %s$, felicitari.", FormatNumber(premiu));
- }
- case 86..95: {
- premiu = RandomEx(5, 50);
- PlayerInfo[playerid][pPremiumPoints] += premiu;
- Update(playerid, pPremiumPoints);
- va_SendClientMessage(playerid, -1, "Ai completat quest-ul si ai castigat %d puncte premium, felicitari.", premiu);
- }
- case 96..98: {
- if(GetSlots(playerid) == GetVehicles(playerid)) {
- premiu = RandomEx(5000000, 10000000);
- GivePlayerCash(playerid, premiu);
- Update(playerid, pCash);
- va_SendClientMessage(playerid, -1, "Ai completat quest-ul si ai castigat %s$, felicitari.", FormatNumber(premiu));
- }
- else {
- GiveVehicle(playerid, 402);
- SCM(playerid, -1, "Felicitari, ai castigat un vehicul de tip Buffalo.");
- }
- }
- case 99..100: {
- if(GetSlots(playerid) == GetVehicles(playerid)) {
- premiu = RandomEx(5000000, 10000000);
- GivePlayerCash(playerid, premiu);
- Update(playerid, pCash);
- va_SendClientMessage(playerid, -1, "Ai completat quest-ul si ai castigat %s$, felicitari.", FormatNumber(premiu));
- }
- else {
- GiveVehicle(playerid, 562);
- SCM(playerid, -1, "Felicitari, ai castigat un vehicul de tip Elegy.");
- }
- }
- }
- DisablePlayerCheckpointEx(playerid);
- Iter_Remove(PlayersInWinterQuest, playerid);
- DestroyVehicle(WinterCar[playerid]);
- WinterRandom[playerid] = 0;
- WinterTime[playerid] = 0;
- WinterCar[playerid] = 0;
- WinterCP[playerid] = 0;
- if(IsPlayerInAnyVehicle(playerid)) return SCM(playerid, COLOR_LGREEN, "Eroare: Nu poti livra cadoul dintr-un vehicul!");
- if(GetPVarInt(playerid, "HaveGift") == 0) return SCM(playerid, COLOR_LGREEN, "Eroare: Nu ai cadoul! Pentru a-l lua, du-te in spatele vehiculului si apasa H.");
- SetPVarInt(playerid, "HaveGift", 0);
- RemovePlayerAttachedObject(playerid, 6);
- SetPlayerSpecialAction(playerid, 0);
- ClearAnimations(playerid);
- PlayerTextDrawHide(playerid, WinterPTD[playerid][0]);
- }
- else {
- if(IsPlayerInAnyVehicle(playerid)) return SCM(playerid, COLOR_LGREEN, "Eroare: Nu poti livra cadoul dintr-un vehicul!");
- if(GetPVarInt(playerid, "HaveGift") == 0) return SCM(playerid, COLOR_LGREEN, "Eroare: Nu ai cadoul! Pentru a-l lua, du-te in spatele vehiculului si apasa H.");
- PlayerInfo[playerid][pWinterObjects] ++;
- SetPVarInt(playerid, "HaveGift", 0);
- RemovePlayerAttachedObject(playerid, 6);
- SetPlayerSpecialAction(playerid, 0);
- ClearAnimations(playerid);
- new query[128];
- mysql_format(SQL, query, 128, "UPDATE `users` SET `WinterObjects`=%d WHERE `id`=%d", PlayerInfo[playerid][pWinterObjects], PlayerInfo[playerid][pSQLID]);
- mysql_tquery(SQL, query, "", "");
- new j = random(housess)+1;
- if(j == 0) j = 1;
- WinterRandom[playerid] = j;
- SetPlayerCheckpointEx(playerid, HouseInfo[j][hEntrancex],HouseInfo[j][hEntrancey],HouseInfo[j][hEntrancez], 7.0);
- SCM(playerid, -1, "Ai livrat cadoul cu succes, ti-am pus un nou checkpoint.");
- }
- }
- }
- return 1;
- }
- stock CalculeazaTimpQuest(secunde) {
- new time = secunde;
- time = time%3600;
- new minute = time/60;
- time = time%60;
- new secunde2 = time;
- new string[10];
- format(string, sizeof(string), "%02d:%02d",minute,secunde2);
- return string;
- }
- function LoadWinterTD(playerid) {
- WinterPTD[playerid][0] = CreatePlayerTextDraw(playerid, 87.999794, 271.718505, "~r~Winter Quest~n~~w~Obiecte Colectate: ~b~69~n~~w~Timp Ramas: ~y~20:00~n~~w~Distance to next object: ~g~[]1337 m");
- PlayerTextDrawLetterSize(playerid, WinterPTD[playerid][0], 0.181333, 1.044149);
- PlayerTextDrawTextSize(playerid, WinterPTD[playerid][0], 10.199999, 97.000000);
- PlayerTextDrawAlignment(playerid, WinterPTD[playerid][0], 2);
- PlayerTextDrawColor(playerid, WinterPTD[playerid][0], -1);
- PlayerTextDrawUseBox(playerid, WinterPTD[playerid][0], 1);
- PlayerTextDrawBoxColor(playerid, WinterPTD[playerid][0], 255);
- PlayerTextDrawSetShadow(playerid, WinterPTD[playerid][0], -1);
- PlayerTextDrawSetOutline(playerid, WinterPTD[playerid][0], -1);
- PlayerTextDrawBackgroundColor(playerid, WinterPTD[playerid][0], 255);
- PlayerTextDrawFont(playerid, WinterPTD[playerid][0], 2);
- PlayerTextDrawSetProportional(playerid, WinterPTD[playerid][0], 1);
- PlayerTextDrawSetShadow(playerid, WinterPTD[playerid][0], -1);
- return 1;
- }
- task CheckWInterQuest[1000]() {
- new hour, minn, sec;
- gettime(hour,minn,sec);
- if(hour == 00 && minn == 0) {
- foreach(new x: Player) {
- PlayerInfo[x][pWinterObjects] = 0;
- }
- new query[128];
- mysql_format(SQL, query, sizeof(query), "UPDATE `users` SET `WinterObjects`='0'");
- mysql_tquery(SQL, query, "", "");
- }
- foreach(new x: PlayersInWinterQuest) {
- if(IsPlayerConnected(x)) {
- if(PlayerInfo[x][pWinterObjects] <= 10) {
- WinterTime[x] --;
- if(WinterTime[x] != 0) {
- new tdstring[256];
- format(tdstring, sizeof(tdstring), "~r~Winter Quest~n~~w~Obiecte Colectate: ~b~%d/10~n~~w~Timp Ramas: ~y~%s~n~~w~Distance to next object: ~g~[]%0.1fm", PlayerInfo[x][pWinterObjects],CalculeazaTimpQuest(WinterTime[x]),GetPlayerDistanceFromPoint(x, HouseInfo[WinterRandom[x]][hEntrancex],HouseInfo[WinterRandom[x]][hEntrancey],HouseInfo[WinterRandom[x]][hEntrancez]));
- PlayerTextDrawSetString(x, WinterPTD[x][0],tdstring);
- PlayerTextDrawShow(x, WinterPTD[x][0]);
- }
- else {
- SCM(x, -1, "Timpul a expirat. Ai esuat quest-ul.");
- WinterCP[x] = 0;
- WinterCar[x] = 0;
- WinterRandom[x] = 0;
- WinterTime[x] = 0;
- Iter_Remove(PlayersInWinterQuest, x);
- new query[128];
- mysql_format(SQL, query, 128, "UPDATE `users` SET `WinterObjects`=%d WHERE `id`=%d", PlayerInfo[x][pWinterObjects], PlayerInfo[x][pSQLID]);
- mysql_tquery(SQL, query, "", "");
- PlayerTextDrawHide(x, WinterPTD[x][0]);
- }
- }
- }
- }
- return 1;
- }
- YCMD:startquest(playerid, parmas[], help) {
- if(PlayerInfo[playerid][pWinterObjects] == 10) return SCM(playerid, -1, "Ai deja quest-ul completat.");
- if(Iter_Contains(PlayersInWinterQuest, playerid)) SCM(playerid, -1, "Faci deja quest-ul, foloseste comanda /stopquest pt a renunta.");
- //Sa adaugi daca are licenta de condus
- new Float:pos[3];
- GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
- WinterCar[playerid] = CreateVehicleEx(482, pos[0], pos[1], pos[2], 0.0, 3, 3, 300);
- PutPlayerInVehicle(playerid, WinterCar[playerid], 0);
- Iter_Add(PlayersInWinterQuest, playerid);
- SCM(playerid, -1, "Du-te la checkpoint pt a livra cadoul");
- new j = random(housess)+1;
- if(j == 0) j = 1;
- WinterTime[playerid] = 1200;
- WinterRandom[playerid] = j;
- SetPlayerCheckpointEx(playerid, HouseInfo[j][hEntrancex],HouseInfo[j][hEntrancey],HouseInfo[j][hEntrancez], 7.0);
- WinterCP[playerid] = 69;
- return 1;
- }
- YCMD:stopquest(playerid, params[], help) {
- if(Iter_Contains(PlayersInWinterQuest, playerid)) SCM(playerid, -1, "Nu faci quest-ul de iarna.");
- DestroyVehicle(WinterCar[playerid]);
- WinterCP[playerid] = 0;
- WinterCar[playerid] = 0;
- WinterRandom[playerid] = 0;
- WinterTime[playerid] = 0;
- Iter_Remove(PlayersInWinterQuest, playerid);
- DisablePlayerCheckpoint(playerid);
- new query[128];
- mysql_format(SQL, query, 128, "UPDATE `users` SET `WinterObjects`=%d WHERE `id`=%d", PlayerInfo[playerid][pWinterObjects], PlayerInfo[playerid][pSQLID]);
- mysql_tquery(SQL, query, "", "");
- PlayerTextDrawHide(playerid, WinterPTD[playerid][0]);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement