[PWN]Çöpçülük Sistemi!

 Merhaba Arkadaşlar Sizlere Bugün Bir Çöpçülük Sistemi Paylaşacağım Sistem Bana Ait Değildir Alıntıdır


#define FILTERSCRIPT


#include <a_samp>

#include <zcmd>

#include <foreach>

#include <streamer>


#define GARBAGE_POINT_LABEL_TEXT "[Çöp Konteynırı]\nÇöp toplamak için ALT tuşuna basın."

#define GARBAGE_POINT_RANGE (3.0)


//2182.2769,-1207.2877,24.0278

#define GARBAGE_POINT_ONE_X (2182.2769)

#define GARBAGE_POINT_ONE_Y (-1207.2877)

#define GARBAGE_POINT_ONE_Z (24.0278)


//1415.3082,-1300.6676,13.5447

#define GARBAGE_POINT_TWO_X (1415.3082)

#define GARBAGE_POINT_TWO_Y (-1300.6676)

#define GARBAGE_POINT_TWO_Z (13.5447)


#define MAX_PRICE (350)

#define MINIMUM_PRICE (100)


enum e_player_data

{

bool:GarbageManDuty,

PlayerCheckpoints

};


new PlayerData[MAX_PLAYERS][e_player_data];


new PlayerText:OnPlayerEnterGarbageTruck[MAX_PLAYERS][1];

new PlayerText:OnPlayerGarbageDuty[MAX_PLAYERS][1];

new PlayerText:OnPlayerRequestJobOnDuty[MAX_PLAYERS][1];


new bool:GarbageCarrying[MAX_PLAYERS];

new bool:GarbageEquipped[MAX_PLAYERS];


#if defined FILTERSCRIPT


#else

#endif


new GarbageTruck[2];


new bool:GarbagePoints[MAX_PLAYERS][2];

 

public OnFilterScriptInit()

{

CreateDynamic3DTextLabel(GARBAGE_POINT_LABEL_TEXT, -1, GARBAGE_POINT_ONE_X, GARBAGE_POINT_ONE_Y, GARBAGE_POINT_ONE_Z, 15.0);


CreateDynamic3DTextLabel(GARBAGE_POINT_LABEL_TEXT, -1, GARBAGE_POINT_TWO_X, GARBAGE_POINT_TWO_Y, GARBAGE_POINT_TWO_Z, 15.0);


//Garbage Trucks

GarbageTruck[0] = AddStaticVehicle(408, 2210.3020, -2657.7844, 13.5469, 86.8014, -1, -1);

GarbageTruck[1] = AddStaticVehicle(408, 2211.0945, -2649.3804, 13.5469, 86.8014, -1, -1);


return 1;

}


public OnPlayerConnect(playerid)

{

//PlayerTextDrawShow(playerid, OnPlayerEnterGarbageTruck[playerid][0]);

OnPlayerEnterGarbageTruck[playerid][0] = CreatePlayerTextDraw(playerid, 67.000000, 243.000000, "Copculuk meslegine ait araca bindiniz. Meslege baslamak icin N tusuna basin.");

PlayerTextDrawFont(playerid, OnPlayerEnterGarbageTruck[playerid][0], 1);

PlayerTextDrawLetterSize(playerid, OnPlayerEnterGarbageTruck[playerid][0], 0.408333, 1.400000);

PlayerTextDrawTextSize(playerid, OnPlayerEnterGarbageTruck[playerid][0], 302.500000, 118.500000);

PlayerTextDrawSetOutline(playerid, OnPlayerEnterGarbageTruck[playerid][0], 1);

PlayerTextDrawSetShadow(playerid, OnPlayerEnterGarbageTruck[playerid][0], 0);

PlayerTextDrawAlignment(playerid, OnPlayerEnterGarbageTruck[playerid][0], 2);

PlayerTextDrawColor(playerid, OnPlayerEnterGarbageTruck[playerid][0], -1);

PlayerTextDrawBackgroundColor(playerid, OnPlayerEnterGarbageTruck[playerid][0], 255);

PlayerTextDrawBoxColor(playerid, OnPlayerEnterGarbageTruck[playerid][0], 135);

PlayerTextDrawUseBox(playerid, OnPlayerEnterGarbageTruck[playerid][0], 1);

PlayerTextDrawSetProportional(playerid, OnPlayerEnterGarbageTruck[playerid][0], 1);

PlayerTextDrawSetSelectable(playerid, OnPlayerEnterGarbageTruck[playerid][0], 0);


//PlayerTextDrawShow(playerid, OnPlayerGarbageDuty[playerid][0]);

OnPlayerGarbageDuty[playerid][0] = CreatePlayerTextDraw(playerid, 67.000000, 243.000000, "Haritada isaretlenen checkpointe ilerleyin ve copleri toplayin.");

PlayerTextDrawFont(playerid, OnPlayerGarbageDuty[playerid][0], 1);

PlayerTextDrawLetterSize(playerid, OnPlayerGarbageDuty[playerid][0], 0.408333, 1.400000);

PlayerTextDrawTextSize(playerid, OnPlayerGarbageDuty[playerid][0], 302.500000, 118.500000);

PlayerTextDrawSetOutline(playerid, OnPlayerGarbageDuty[playerid][0], 1);

PlayerTextDrawSetShadow(playerid, OnPlayerGarbageDuty[playerid][0], 0);

PlayerTextDrawAlignment(playerid, OnPlayerGarbageDuty[playerid][0], 2);

PlayerTextDrawColor(playerid, OnPlayerGarbageDuty[playerid][0], -1);

PlayerTextDrawBackgroundColor(playerid, OnPlayerGarbageDuty[playerid][0], 255);

PlayerTextDrawBoxColor(playerid, OnPlayerGarbageDuty[playerid][0], 135);

PlayerTextDrawUseBox(playerid, OnPlayerGarbageDuty[playerid][0], 1);

PlayerTextDrawSetProportional(playerid, OnPlayerGarbageDuty[playerid][0], 1);

PlayerTextDrawSetSelectable(playerid, OnPlayerGarbageDuty[playerid][0], 0);


//PlayerTextDrawShow(playerid, OnPlayerRequestJobOnDuty[playerid][0]);

OnPlayerRequestJobOnDuty[playerid][0] = CreatePlayerTextDraw(playerid, 67.000000, 243.000000, "Su anda zaten halihazirda bir gorevin var. Yenisine baslamak icin bitirin.");

PlayerTextDrawFont(playerid, OnPlayerRequestJobOnDuty[playerid][0], 1);

PlayerTextDrawLetterSize(playerid, OnPlayerRequestJobOnDuty[playerid][0], 0.408333, 1.400000);

PlayerTextDrawTextSize(playerid, OnPlayerRequestJobOnDuty[playerid][0], 302.500000, 118.500000);

PlayerTextDrawSetOutline(playerid, OnPlayerRequestJobOnDuty[playerid][0], 1);

PlayerTextDrawSetShadow(playerid, OnPlayerRequestJobOnDuty[playerid][0], 0);

PlayerTextDrawAlignment(playerid, OnPlayerRequestJobOnDuty[playerid][0], 2);

PlayerTextDrawColor(playerid, OnPlayerRequestJobOnDuty[playerid][0], -1);

PlayerTextDrawBackgroundColor(playerid, OnPlayerRequestJobOnDuty[playerid][0], 255);

PlayerTextDrawBoxColor(playerid, OnPlayerRequestJobOnDuty[playerid][0], 135);

PlayerTextDrawUseBox(playerid, OnPlayerRequestJobOnDuty[playerid][0], 1);

PlayerTextDrawSetProportional(playerid, OnPlayerRequestJobOnDuty[playerid][0], 1);

PlayerTextDrawSetSelectable(playerid, OnPlayerRequestJobOnDuty[playerid][0], 0);


GarbageManResetVariables(playerid);

return 1;

}


public OnPlayerDisconnect(playerid, reason)

{

PlayerTextDrawDestroy(playerid, OnPlayerEnterGarbageTruck[playerid][0]);


PlayerTextDrawDestroy(playerid, OnPlayerGarbageDuty[playerid][0]);


PlayerTextDrawDestroy(playerid, OnPlayerRequestJobOnDuty[playerid][0]);


GarbageManResetVariables(playerid);

return 1;

}


public OnPlayerDeath(playerid, killerid, reason)

{

if(PlayerData[playerid][GarbageManDuty] == true)

{

GarbageManResetVariables(playerid);

return 1;

}

return 1;

}


public OnPlayerExitVehicle(playerid, vehicleid)

{

if(PlayerData[playerid][GarbageManDuty] == true)

{

if(GarbagePoints[playerid][0] == true && !IsPlayerInRangeOfPoint(playerid, 15.0, GARBAGE_POINT_ONE_X, GARBAGE_POINT_ONE_Y, GARBAGE_POINT_ONE_Z))

{

new vehid = GetPlayerVehicleID(playerid);

SetVehicleToRespawn(vehid);

}

else if(GarbagePoints[playerid][1] == true && !IsPlayerInRangeOfPoint(playerid, 15.0, GARBAGE_POINT_TWO_X, GARBAGE_POINT_TWO_Y, GARBAGE_POINT_TWO_Z))

{

new vehid = GetPlayerVehicleID(playerid);

SetVehicleToRespawn(vehid);

}

}

return 1;

}


public OnPlayerStateChange(playerid, newstate, oldstate)

{

if(newstate == PLAYER_STATE_DRIVER)

    {

for(new i = 0; i < sizeof GarbageTruck; i++)

{

if(IsPlayerInVehicle(playerid, GarbageTruck[i]))

{

if(PlayerData[playerid][GarbageManDuty] == false)

SetTimerEx("GarbageManDutyTD", 500, false, "d", playerid);

}

}

}

if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT) 

    {

if(PlayerData[playerid][GarbageManDuty] == true)

{

if(GarbagePoints[playerid][0] == true && IsPlayerInRangeOfPoint(playerid, 20.0, GARBAGE_POINT_ONE_X, GARBAGE_POINT_ONE_Y, GARBAGE_POINT_ONE_Z))

{

GameTextForPlayer(playerid,"Noktaya ulastin!", 2000, 4);

}

else if(GarbagePoints[playerid][1] == true && IsPlayerInRangeOfPoint(playerid, 20.0, GARBAGE_POINT_TWO_X, GARBAGE_POINT_TWO_Y, GARBAGE_POINT_TWO_Z))

{

GameTextForPlayer(playerid, "Noktaya ulastin!", 2000, 4);

}

else

{

new vehid = GetPlayerVehicleID(playerid);

SetVehicleToRespawn(vehid);

SendClientMessage(playerid, -1, "Çöpçü kamyonundan iniş yaptığın için bütün verilerin sıfırlandı.");

GarbageManResetVariables(playerid);

}

}

    }

return 1;

}


stock GarbageManResetVariables(playerid)

{

PlayerData[playerid][GarbageManDuty] = false;

GarbagePoints[playerid][0] = false;

GarbagePoints[playerid][1] = false;

GarbageCarrying[playerid] = false;

GarbageEquipped[playerid] = false;

PlayerData[playerid][PlayerCheckpoints] = 0;

DisablePlayerCheckpoint(playerid);

RemovePlayerAttachedObject(playerid, 0);


return 1;


forward GarbageManDutyTD(playerid);

public GarbageManDutyTD(playerid)

{

PlayerTextDrawShow(playerid, OnPlayerEnterGarbageTruck[playerid][0]);

SetTimerEx("GarbageManDutyTDClose", 6000, false, "d", playerid);

return 1;


forward GarbageManDutyTDClose(playerid);

public GarbageManDutyTDClose(playerid)

{

PlayerTextDrawHide(playerid, OnPlayerEnterGarbageTruck[playerid][0]);

return 1;

}


forward GarbageManOnDutyTD(playerid);

public GarbageManOnDutyTD(playerid)

{

PlayerTextDrawShow(playerid, OnPlayerGarbageDuty[playerid][0]);

SetTimerEx("GarbageManOnDutyTDClose", 6000, false, "d", playerid);

return 1;

}


forward GarbageManOnDutyTDClose(playerid);

public GarbageManOnDutyTDClose(playerid)

{

PlayerTextDrawHide(playerid, OnPlayerGarbageDuty[playerid][0]);

return 1;

}


forward GarbageManOnDutyErrorTD(playerid);

public GarbageManOnDutyErrorTD(playerid)

{

PlayerTextDrawShow(playerid, OnPlayerRequestJobOnDuty[playerid][0]);

SetTimerEx("GarbageManOnDutyErrorTDClose", 3000, false, "d", playerid);

return 1;


forward GarbageManOnDutyErrorTDClose(playerid);

public GarbageManOnDutyErrorTDClose(playerid)

{

PlayerTextDrawHide(playerid, OnPlayerRequestJobOnDuty[playerid][0]);

return 1;

}


public OnPlayerEnterCheckpoint(playerid)

{

if(PlayerData[playerid][PlayerCheckpoints] == 1)

{

PlayerData[playerid][PlayerCheckpoints] = 0;

DisablePlayerCheckpoint(playerid);

}

return 1;

}


public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

{

if ((newkeys & KEY_NO) && !(oldkeys & KEY_NO))

{

for(new i = 0; i < sizeof GarbageTruck; i++)

{

if(IsPlayerInVehicle(playerid, GarbageTruck[i]))

{

if(PlayerData[playerid][GarbageManDuty] == false)

{

PlayerTextDrawHide(playerid, OnPlayerEnterGarbageTruck[playerid][0]);

SetTimerEx("GarbageManOnDutyTD", 100, false, "d", playerid);

PlayerData[playerid][GarbageManDuty] = true;

ShowPlayerGarbagePoints(playerid);

}

else

{

PlayerTextDrawHide(playerid, OnPlayerGarbageDuty[playerid][0]);

SetTimerEx("GarbageManOnDutyErrorTD", 100, false, "d", playerid);

}

}

}

}


if ((newkeys & KEY_WALK) && !(oldkeys & KEY_WALK))

{

if(PlayerData[playerid][GarbageManDuty] == true && GarbageCarrying[playerid] == false)

{

if(IsPlayerInRangeOfPoint(playerid, 1.0, GARBAGE_POINT_ONE_X, GARBAGE_POINT_ONE_Y, GARBAGE_POINT_ONE_Z) && GarbagePoints[playerid][0] == true)

{

SetTimerEx("CarryingGarbage", 100, false, "d", playerid);

}

else if(IsPlayerInRangeOfPoint(playerid, 1.0, GARBAGE_POINT_TWO_X, GARBAGE_POINT_TWO_Y, GARBAGE_POINT_TWO_Z) && GarbagePoints[playerid][1] == true)

{

SetTimerEx("CarryingGarbage", 100, false, "d", playerid);

}

  }


if(PlayerData[playerid][GarbageManDuty] == true && GarbageEquipped[playerid] == true)

{

if(GarbagePoints[playerid][0] == true || GarbagePoints[playerid][1] == true)

{

for(new i = 0; i < sizeof GarbageTruck; i++)

{

if(IsPlayerNearVehicle(playerid, GarbageTruck[i], 3.0))

{

new randmoney = 50 + randomEx(MINIMUM_PRICE, MAX_PRICE);

RemovePlayerAttachedObject(playerid, 0);

GarbageCarrying[playerid] = false;

GivePlayerMoney(playerid, randmoney);

ShowPlayerGarbagePoints(playerid);

GarbagePoints[playerid][0] = false;

GarbagePoints[playerid][1] = false;

GarbageEquipped[playerid] = false;

PlayerData[playerid][GarbageManDuty] = false;

PlayerData[playerid][PlayerCheckpoints] = 0;

DisablePlayerCheckpoint(playerid);

SendClientMessageEx(playerid, -1, "Çöpü araca yükledin ve $%d kazandın! Araca bin ve tekrardan N basarak devam et.", randmoney);

}

}

}

}   

}

return 1;

}


forward CarryingGarbage(playerid);

public CarryingGarbage(playerid)

{


GameTextForPlayer(playerid, "Su anda cop topluyorsunuz, bekleyin.", 3000, 4);

TogglePlayerControllable(playerid, false);

ApplyAnimation(playerid, "BOMBER", "BOM_PLANT_CROUCH_IN", 4.1, 0, 0, 0, 1, 1, 0);

GarbageCarrying[playerid] = true;

SetTimerEx("GarbageCarried", 3000, false, "d", playerid);

return 1;


forward GarbageCarried(playerid);

public GarbageCarried(playerid)

{

SendClientMessage(playerid, -1, "Çöp toplandı, aracın yanına ilerleyin ve ALT tuşuna basarak kamyona yükleyin.");

TogglePlayerControllable(playerid, true);

GarbageCarrying[playerid] = false;

SetPlayerAttachedObject(playerid, 0,1265,6,0.079376,0.037070,0.007706,181.482910,0.000000,0.000000,1.000000,1.000000,1.000000);

GarbageEquipped[playerid] = true;

ClearAnimations(playerid);

return 1;

}


stock ShowPlayerGarbagePoints(playerid)

{

new randpoints = random(2);


switch(randpoints)

{

case 0:

{

SetPlayerCheckpoint(playerid, GARBAGE_POINT_ONE_X, GARBAGE_POINT_ONE_Y, GARBAGE_POINT_ONE_Z, 5.0);

PlayerData[playerid][PlayerCheckpoints] = 1;

GarbagePoints[playerid][0] = true;

}

case 1:

{

SetPlayerCheckpoint(playerid, GARBAGE_POINT_TWO_X, GARBAGE_POINT_TWO_Y, GARBAGE_POINT_ONE_Z, 5.0);

PlayerData[playerid][PlayerCheckpoints] = 1;

GarbagePoints[playerid][1] = true;

}

}

return 1;

}


stock SendClientMessageEx(playerid, color, const text[], {Float, _}:...)

{

    static

        args,

        str[144];


    /*

     *  Custom function that uses #emit to format variables into a string.

     *  This code is very fragile; touching any code here will cause crashing!

    */

    if ((args = numargs()) == 3)

    {

        SendClientMessage(playerid, color, text);

    }

    else

    {

        while (--args >= 3)

        {

            #emit LCTRL 5

            #emit LOAD.alt args

            #emit SHL.C.alt 2

            #emit ADD.C 12

            #emit ADD

            #emit LOAD.I

            #emit PUSH.pri

        }

        #emit PUSH.S text

        #emit PUSH.C 144

        #emit PUSH.C str

        #emit PUSH.S 8

        #emit SYSREQ.C format

        #emit LCTRL 5

        #emit SCTRL 4


        SendClientMessage(playerid, color, str);


        #emit RETN

    }

    return 1;

}


stock randomEx(min, max)

{

    new randm = random(max-min)+min;

    return randm;

}


static IsPlayerNearVehicle(playerid, vehicleid, Float:range)

{

new Float:x, Float:y, Float:z;

GetVehiclePos(vehicleid, x, y, z);

return IsPlayerInRangeOfPoint(playerid, range, x, y, z);

}


0 Yorum Yap

Yorum Gönder