[FilterScript] Drift Point Counter
#1



What is this?: When you drift you get cash and it shows the number
A Picture or a video please?

V2 RELEASED:
New Textdraw position
now has money
and setplayerscore as that amount
after finsh drifting it will go red for 5 seconds then disappear

A VIDEO?:

v2
[ame]http://www.youtube.com/watch?v=bwqarIMYRwI[/ame]

v1
[ame]http://www.youtube.com/watch?v=PCKkEkU3Ny4[/ame]

download:


v2
http://pastebin.com/FCafYkCq

v1
http://pastebin.com/uhKzRC53
or

v2

pawn Код:
#include a_samp
#define DRIFT_MINKAT 10.0
#define DRIFT_MAXKAT 90.0
#define COLOR_LIGHTRED 0xFF0000FF
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define DRIFT_SPEED 30.0
#pragma tabsize 0
#pragma unused GetPlayerTheoreticAngle
new Float:ppos[200][3];
enum Float:Pos{ Float:sX,Float:sY,Float:sZ };
new Float:SavedPos[MAX_PLAYERS][Pos];
new DriftPointsNow[200];
new PunktyDriftuGracza[200];
new Text:DriftTD[200];
new Text:DriftTD2[200];
new Text:Textdraw0;
forward LicznikDriftu();
forward clock();
forward PodsumowanieDriftu(playerid);
public OnFilterScriptInit()
{
    for(new x=0;x<200;x++) {

        Textdraw0 = TextDrawCreate(3.000000, 435.000000, "~n~");
        TextDrawBackgroundColor(Textdraw0, 255);
        TextDrawFont(Textdraw0, 1);
        TextDrawLetterSize(Textdraw0, 0.500000, 0.999997);
        TextDrawColor(Textdraw0, -1);
        TextDrawSetOutline(Textdraw0, 0);
        TextDrawSetProportional(Textdraw0, 1);
        TextDrawSetShadow(Textdraw0, 1);
        TextDrawUseBox(Textdraw0, 1);
        TextDrawBoxColor(Textdraw0, 1344814160);
        TextDrawTextSize(Textdraw0, 639.000000, 0.000000);

        DriftTD[x] = TextDrawCreate(6.000000, 433.000000, " ");
        TextDrawBackgroundColor(DriftTD[x], 255);
        TextDrawFont(DriftTD[x], 1);
        TextDrawLetterSize(DriftTD[x], 0.750000, 1.400000);
        TextDrawColor(DriftTD[x], -1);
        TextDrawSetOutline(DriftTD[x], 0);
        TextDrawSetProportional(DriftTD[x], 1);
        TextDrawSetShadow(DriftTD[x], 1);

        DriftTD2[x] = TextDrawCreate(340.000000, 430.000000, " ");
        TextDrawBackgroundColor(DriftTD2[x], 255);
        TextDrawFont(DriftTD2[x], 1);
        TextDrawLetterSize(DriftTD2[x], 0.830000, 1.900000);
        TextDrawColor(DriftTD2[x], -1);
        TextDrawSetOutline(DriftTD2[x], 0);
        TextDrawSetProportional(DriftTD2[x], 1);
        TextDrawSetShadow(DriftTD2[x], 1);
    }
    SetTimer("AngleUpdate" , 700, true);
    SetTimer("LicznikDriftu", 500, true);
    return 1;
}


IsCar(vid)
{
    new model = GetVehicleModel(vid);
    switch(model) {
        case 443:return 0;
        case 448:return 0;
        case 461:return 0;
        case 462:return 0;
        case 463:return 0;
        case 468:return 0;
        case 521:return 0;
        case 522:return 0;
        case 523:return 0;
        case 581:return 0;
        case 586:return 0;
        case 481:return 0;
        case 509:return 0;
        case 510:return 0;
        case 430:return 0;
        case 446:return 0;
        case 452:return 0;
        case 453:return 0;
        case 454:return 0;
        case 472:return 0;
        case 473:return 0;
        case 484:return 0;
        case 493:return 0;
        case 595:return 0;
        case 417:return 0;
        case 425:return 0;
        case 447:return 0;
        case 465:return 0;
        case 469:return 0;
        case 487:return 0;
        case 488:return 0;
        case 497:return 0;
        case 501:return 0;
        case 548:return 0;
        case 563:return 0;
        case 406:return 0;
        case 444:return 0;
        case 556:return 0;
        case 557:return 0;
        case 573:return 0;
        case 460:return 0;
        case 464:return 0;
        case 476:return 0;
        case 511:return 0;
        case 512:return 0;
        case 513:return 0;
        case 519:return 0;
        case 520:return 0;
        case 539:return 0;
        case 553:return 0;
        case 577:return 0;
        case 592:return 0;
        case 593:return 0;
        case 471:return 0;
    }
    return 1;
}


forward AngleUpdate();
public AngleUpdate()
{
    for(new g=0;g<200;g++) {
        new Float:x, Float:y, Float:z;
        if(IsPlayerInAnyVehicle(g))GetVehiclePos(GetPlayerVehicleID(g), x, y, z); else GetPlayerPos(g, x, y, z);
        ppos[g][0] = x;
        ppos[g][1] = y;
        ppos[g][2] = z;
    }
}


Float:GetPlayerTheoreticAngle(i)
{
    new Float:sin;
    new Float:dis;
    new Float:angle2;
    new Float:x,Float:y,Float:z;
    new Float:tmp3;
    new Float:tmp4;
    new Float:MindAngle;
    if(IsPlayerConnected(i)) {
        GetPlayerPos(i,x,y,z);
        dis = floatsqroot(floatpower(floatabs(floatsub(x,ppos[i][0])),2)+floatpower(floatabs(floatsub(y,ppos[i][1])),2));
        if(IsPlayerInAnyVehicle(i))GetVehicleZAngle(GetPlayerVehicleID(i), angle2); else GetPlayerFacingAngle(i, angle2);
        if(x>ppos[i][0]) {
            tmp3=x-ppos[i][0];
        }
        else {
            tmp3=ppos[i][0]-x;
        }
        if(y>ppos[i][1]) {
            tmp4=y-ppos[i][1];
        }
        else {
            tmp4=ppos[i][1]-y;
        }
        if(ppos[i][1]>y && ppos[i][0]>x) {        //1
            sin = asin(tmp3/dis);
            MindAngle = floatsub(floatsub(floatadd(sin, 90), floatmul(sin, 2)), -90.0);
        }
        if(ppos[i][1]<y && ppos[i][0]>x) {        //2
            sin = asin(tmp3/dis);
            MindAngle = floatsub(floatadd(sin, 180), 180.0);
        }
        if(ppos[i][1]<y && ppos[i][0]<x) {        //3
            sin = acos(tmp4/dis);
            MindAngle = floatsub(floatadd(sin, 360), floatmul(sin, 2));
        }
        if(ppos[i][1]>y && ppos[i][0]<x) {        //4
            sin = asin(tmp3/dis);
            MindAngle = floatadd(sin, 180);
        }
    }
    if(MindAngle == 0.0) {
        return angle2;
    } else
    return MindAngle;
}


public PodsumowanieDriftu(playerid)
{
    PunktyDriftuGracza[playerid] = 0;

    GivePlayerMoney(playerid,DriftPointsNow[playerid]);
    SetPlayerScore(playerid,DriftPointsNow[playerid]);
    DriftPointsNow[playerid] = 0;
    TextDrawSetString(DriftTD[playerid],"~r~ Drift Money Cash~w~: Loading");
    TextDrawSetString(DriftTD2[playerid],"~r~ Drift Points~w~: Loading");
    SetTimer("DMCDP",5000,false);
}


Float:ReturnPlayerAngle(playerid)
{
    new Float:Ang;
    if(IsPlayerInAnyVehicle(playerid))GetVehicleZAngle(GetPlayerVehicleID(playerid), Ang); else GetPlayerFacingAngle(playerid, Ang);
    return Ang;
}


public LicznikDriftu()
{
    new Float:Angle1, Float:Angle2, Float:BySpeed, s[256];
    new Float:Z;
    new Float:X;
    new Float:Y;
    new Float:SpeedX;
    for(new g=0;g<200;g++) {
        GetPlayerPos(g, X, Y, Z);
        SpeedX = floatsqroot(floatadd(floatadd(floatpower(floatabs(floatsub(X,SavedPos[ g ][ sX ])),2),floatpower(floatabs(floatsub(Y,SavedPos[ g ][ sY ])),2)),floatpower(floatabs(floatsub(Z,SavedPos[ g ][ sZ ])),2)));
        Angle1 = ReturnPlayerAngle(g);
        Angle2 = GetPlayerTheoreticAngle(g);
        BySpeed = floatmul(SpeedX, 12);
        if(GetPlayerState(g) == PLAYER_STATE_DRIVER && IsCar(GetPlayerVehicleID(g)) && floatabs(floatsub(Angle1, Angle2)) > DRIFT_MINKAT && floatabs(floatsub(Angle1, Angle2)) < DRIFT_MAXKAT && BySpeed > DRIFT_SPEED) {
            if(PunktyDriftuGracza[g] > 0)KillTimer(PunktyDriftuGracza[g]);
            PunktyDriftuGracza[g] = 0;
            DriftPointsNow[g] += floatval( floatabs(floatsub(Angle1, Angle2)) * 3 * (BySpeed*0.1) )/10;
            PunktyDriftuGracza[g] = SetTimerEx("PodsumowanieDriftu", 3000, 0, "d", g);
        }
        if(DriftPointsNow[g] > 0) {
            format(s, sizeof(s), "Drift Money Cash~y~: %d", DriftPointsNow[g]);
            TextDrawSetString(DriftTD[g], s);
            format(s, sizeof(s), "Drift Points~y~: %d", DriftPointsNow[g]);
            TextDrawSetString(DriftTD2[g], s);
        }
        SavedPos[ g ][ sX ] = X;
        SavedPos[ g ][ sY ] = Y;
        SavedPos[ g ][ sZ ] = Z;
    }
}


//Split(s1[], s2[], s3[]=""){new rxx[256];format(rxx, 256, "%s%s%s", s1, s2, s3);return rxx;}
//tostr(int){new st[256];format(st, 256, "%d", int);return st;}
floatval(Float:val){new str[256];format(str, 256, "%.0f", val);return todec(str);}
todec(str[]){return strval(str);}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER) {
        TextDrawShowForPlayer(playerid, DriftTD[playerid]);
        TextDrawShowForPlayer(playerid, DriftTD2[playerid]);
        TextDrawShowForPlayer(playerid, Textdraw0);
    }
    return 1;
}


forward DMCDP(playerid);
public DMCDP(playerid)
{
    TextDrawSetString(DriftTD[playerid]," ");
    TextDrawSetString(DriftTD2[playerid]," ");
    return 1;
}


public OnPlayerConnect(playerid)
{
    new x;
    TextDrawHideForPlayer(playerid, DriftTD[x]);
    TextDrawHideForPlayer(playerid, DriftTD2[x]);
    TextDrawHideForPlayer(playerid, Textdraw0);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"MONEY: Drift for money easy way to earn money Drift Counter by luby edited by kitten");
    return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
    new x;

    if (strcmp("/driftoff", cmdtext, true, 10) == 0) {
        SendClientMessage(playerid,COLOR_LIGHTBLUE,"You Have Disabled Drift Counter");
        TextDrawHideForPlayer(playerid, DriftTD[x]);
        TextDrawHideForPlayer(playerid, DriftTD2[x]);
        return 1;
    }

    if (strcmp("/drifton", cmdtext, true, 10) == 0) {
        SendClientMessage(playerid,COLOR_LIGHTBLUE,"You Have Enabled Drift Counter By Luby edited by kitten");
        TextDrawShowForPlayer(playerid, DriftTD[x]);
        TextDrawShowForPlayer(playerid, DriftTD2[x]);
        return 1;
    }
    return 0;
}
v1
pawn Код:
#include a_samp
#define DRIFT_MINKAT 10.0
#define DRIFT_MAXKAT 90.0
#define COLOR_LIGHTRED 0xFF0000FF
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define DRIFT_SPEED 30.0
#pragma tabsize 0
#pragma unused GetPlayerTheoreticAngle
new Float:ppos[200][3];
enum Float:Pos{ Float:sX,Float:sY,Float:sZ };
new Float:SavedPos[MAX_PLAYERS][Pos];
new DriftPointsNow[200];
new PunktyDriftuGracza[200];
new Text:DriftTD[200];
forward LicznikDriftu();
forward clock();
forward PodsumowanieDriftu(playerid);
public OnFilterScriptInit()
{
    for(new x=0;x<200;x++) {

        DriftTD[x] = TextDrawCreate(42.000000, 304.000000, " ");
        TextDrawBackgroundColor(DriftTD[x], 255);
        TextDrawFont(DriftTD[x], 1);
        TextDrawLetterSize(DriftTD[x], 0.480000, 3.000000);
        TextDrawColor(DriftTD[x], -1);
        TextDrawSetOutline(DriftTD[x], 0);
        TextDrawSetProportional(DriftTD[x], 1);
        TextDrawSetShadow(DriftTD[x], 1);
    }
    SetTimer("AngleUpdate" , 700, true);
    SetTimer("LicznikDriftu", 500, true);
    return 1;
}


IsCar(vid)
{
    new model = GetVehicleModel(vid);
    switch(model) {
        case 443:return 0;
        case 448:return 0;
        case 461:return 0;
        case 462:return 0;
        case 463:return 0;
        case 468:return 0;
        case 521:return 0;
        case 522:return 0;
        case 523:return 0;
        case 581:return 0;
        case 586:return 0;
        case 481:return 0;
        case 509:return 0;
        case 510:return 0;
        case 430:return 0;
        case 446:return 0;
        case 452:return 0;
        case 453:return 0;
        case 454:return 0;
        case 472:return 0;
        case 473:return 0;
        case 484:return 0;
        case 493:return 0;
        case 595:return 0;
        case 417:return 0;
        case 425:return 0;
        case 447:return 0;
        case 465:return 0;
        case 469:return 0;
        case 487:return 0;
        case 488:return 0;
        case 497:return 0;
        case 501:return 0;
        case 548:return 0;
        case 563:return 0;
        case 406:return 0;
        case 444:return 0;
        case 556:return 0;
        case 557:return 0;
        case 573:return 0;
        case 460:return 0;
        case 464:return 0;
        case 476:return 0;
        case 511:return 0;
        case 512:return 0;
        case 513:return 0;
        case 519:return 0;
        case 520:return 0;
        case 539:return 0;
        case 553:return 0;
        case 577:return 0;
        case 592:return 0;
        case 593:return 0;
        case 471:return 0;
    }
    return 1;
}


forward AngleUpdate();
public AngleUpdate()
{
    for(new g=0;g<200;g++) {
        new Float:x, Float:y, Float:z;
        if(IsPlayerInAnyVehicle(g))GetVehiclePos(GetPlayerVehicleID(g), x, y, z); else GetPlayerPos(g, x, y, z);
        ppos[g][0] = x;
        ppos[g][1] = y;
        ppos[g][2] = z;
    }
}


Float:GetPlayerTheoreticAngle(i)
{
    new Float:sin;
    new Float:dis;
    new Float:angle2;
    new Float:x,Float:y,Float:z;
    new Float:tmp3;
    new Float:tmp4;
    new Float:MindAngle;
    if(IsPlayerConnected(i)) {
        GetPlayerPos(i,x,y,z);
        dis = floatsqroot(floatpower(floatabs(floatsub(x,ppos[i][0])),2)+floatpower(floatabs(floatsub(y,ppos[i][1])),2));
        if(IsPlayerInAnyVehicle(i))GetVehicleZAngle(GetPlayerVehicleID(i), angle2); else GetPlayerFacingAngle(i, angle2);
        if(x>ppos[i][0]) {
            tmp3=x-ppos[i][0];
        }
        else {
            tmp3=ppos[i][0]-x;
        }
        if(y>ppos[i][1]) {
            tmp4=y-ppos[i][1];
        }
        else {
            tmp4=ppos[i][1]-y;
        }
        if(ppos[i][1]>y && ppos[i][0]>x) {        //1
            sin = asin(tmp3/dis);
            MindAngle = floatsub(floatsub(floatadd(sin, 90), floatmul(sin, 2)), -90.0);
        }
        if(ppos[i][1]<y && ppos[i][0]>x) {        //2
            sin = asin(tmp3/dis);
            MindAngle = floatsub(floatadd(sin, 180), 180.0);
        }
        if(ppos[i][1]<y && ppos[i][0]<x) {        //3
            sin = acos(tmp4/dis);
            MindAngle = floatsub(floatadd(sin, 360), floatmul(sin, 2));
        }
        if(ppos[i][1]>y && ppos[i][0]<x) {        //4
            sin = asin(tmp3/dis);
            MindAngle = floatadd(sin, 180);
        }
    }
    if(MindAngle == 0.0) {
        return angle2;
    } else
    return MindAngle;
}


public PodsumowanieDriftu(playerid)
{
    PunktyDriftuGracza[playerid] = 0;

    GivePlayerMoney(playerid,DriftPointsNow[playerid]);
    DriftPointsNow[playerid] = 0;
    TextDrawSetString(DriftTD[playerid]," ");
}


Float:ReturnPlayerAngle(playerid)
{
    new Float:Ang;
    if(IsPlayerInAnyVehicle(playerid))GetVehicleZAngle(GetPlayerVehicleID(playerid), Ang); else GetPlayerFacingAngle(playerid, Ang);
    return Ang;
}


public LicznikDriftu()
{
    new Float:Angle1, Float:Angle2, Float:BySpeed, s[256];
    new Float:Z;
    new Float:X;
    new Float:Y;
    new Float:SpeedX;
    for(new g=0;g<200;g++) {
        GetPlayerPos(g, X, Y, Z);
        SpeedX = floatsqroot(floatadd(floatadd(floatpower(floatabs(floatsub(X,SavedPos[ g ][ sX ])),2),floatpower(floatabs(floatsub(Y,SavedPos[ g ][ sY ])),2)),floatpower(floatabs(floatsub(Z,SavedPos[ g ][ sZ ])),2)));
        Angle1 = ReturnPlayerAngle(g);
        Angle2 = GetPlayerTheoreticAngle(g);
        BySpeed = floatmul(SpeedX, 12);
        if(GetPlayerState(g) == PLAYER_STATE_DRIVER && IsCar(GetPlayerVehicleID(g)) && floatabs(floatsub(Angle1, Angle2)) > DRIFT_MINKAT && floatabs(floatsub(Angle1, Angle2)) < DRIFT_MAXKAT && BySpeed > DRIFT_SPEED) {
            if(PunktyDriftuGracza[g] > 0)KillTimer(PunktyDriftuGracza[g]);
            PunktyDriftuGracza[g] = 0;
            DriftPointsNow[g] += floatval( floatabs(floatsub(Angle1, Angle2)) * 3 * (BySpeed*0.1) )/10;
            PunktyDriftuGracza[g] = SetTimerEx("PodsumowanieDriftu", 3000, 0, "d", g);
        }
        if(DriftPointsNow[g] > 0) {
            format(s, sizeof(s), "DriftCash~y~: %d", DriftPointsNow[g]);
            TextDrawSetString(DriftTD[g], s);
        }
        SavedPos[ g ][ sX ] = X;
        SavedPos[ g ][ sY ] = Y;
        SavedPos[ g ][ sZ ] = Z;
    }
}


//Split(s1[], s2[], s3[]=""){new rxx[256];format(rxx, 256, "%s%s%s", s1, s2, s3);return rxx;}
//tostr(int){new st[256];format(st, 256, "%d", int);return st;}
floatval(Float:val){new str[256];format(str, 256, "%.0f", val);return todec(str);}
todec(str[]){return strval(str);}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER) {
        TextDrawShowForPlayer(playerid, DriftTD[playerid]);
    }
    return 1;
}


public OnPlayerConnect(playerid)
{
    new x;
    TextDrawHideForPlayer(playerid, DriftTD[x]);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"MONEY: Drift for money easy way to earn money Drift Counter by luby edited by kitten");
    return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
    new x;

    if (strcmp("/driftoff", cmdtext, true, 10) == 0) {
        SendClientMessage(playerid,COLOR_LIGHTBLUE,"You Have Disabled Drift Counter");
        TextDrawHideForPlayer(playerid, DriftTD[x]);
        return 1;
    }

    if (strcmp("/drifton", cmdtext, true, 10) == 0) {
        SendClientMessage(playerid,COLOR_LIGHTBLUE,"You Have Enabled Drift Counter By Luby editied by kitten");
        TextDrawShowForPlayer(playerid, DriftTD[x]);
        return 1;
    }
    return 0;

    }
Reply


Messages In This Thread
Drift Point Counter [V2 RELEASED] - by Kitten - 21.09.2010, 03:16
Re: Drift Point Counter - by Stigg - 21.09.2010, 03:52
Re: Drift Point Counter - by Basicz - 21.09.2010, 06:50
Re: Drift Point Counter - by ViruZZzZ_ChiLLL - 21.09.2010, 08:28
Re: Drift Point Counter - by speedruntrainer - 21.09.2010, 09:21
Re: Drift Point Counter - by royal_king - 21.09.2010, 10:10
Re: Drift Point Counter - by Kitten - 21.09.2010, 21:32
Re: Drift Point Counter - by Tyain - 22.09.2010, 01:58
Re: Drift Point Counter - by Scenario - 22.09.2010, 02:03
Re: Drift Point Counter - by coconyr - 22.09.2010, 03:21
Re: Drift Point Counter - by Kitten - 22.09.2010, 03:28
Re: Drift Point Counter - by wups - 22.09.2010, 10:42
Re: Drift Point Counter - by Hiddos - 22.09.2010, 13:47
Re: Drift Point Counter - by Tyain - 22.09.2010, 16:34
Re: Drift Point Counter - by Kitten - 22.09.2010, 21:38
Re: Drift Point Counter - by Kitten - 23.09.2010, 03:53
Re: Drift Point Counter - by smd_murilo - 18.10.2010, 11:48
Re: Drift Point Counter - by Kitten - 26.10.2010, 06:14
Re: Drift Point Counter - by wups - 07.12.2010, 14:04
Re: Drift Point Counter - by Plugy - 07.12.2010, 14:23
Re: Drift Point Counter - by knackworst - 07.12.2010, 14:26
Re: Drift Point Counter - by Aleks1337 - 06.08.2011, 01:03
Re: Drift Point Counter - by Karl[NDZ] - 24.04.2012, 15:23
Re: Drift Point Counter - by [Cro]Nano - 24.04.2012, 16:00
Re: Drift Point Counter - by [DOG]irinel1996 - 24.04.2012, 17:08
Re: Drift Point Counter - by Sal - 19.12.2012, 04:59
Re: Drift Point Counter - by Awankz - 20.11.2013, 12:48
Re: Drift Point Counter - by Kitten - 24.11.2013, 04:40
Re: Drift Point Counter - by Eduardof077 - 08.04.2018, 16:13
Re: Drift Point Counter - by Pottus - 08.04.2018, 17:03
Re: Drift Point Counter - by Kitten - 08.04.2018, 17:30

Forum Jump:


Users browsing this thread: 3 Guest(s)