SA-MP Forums Archive
[FilterScript] Real RP [v1] [Atualizando] - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [FilterScript] Real RP [v1] [Atualizando] (/showthread.php?tid=185045)



Real RP [v1] [Atualizando] - ipsBruno - 23.10.2010


Por DraKiNs
Introduзгo:
A Muito tempo vinha pensando em um simples sistema de tivesse vбrios sistema de RP/RPG,muito ъteis a servidores do mesmo.
Pensando nisto desenvolvi um simples sistema de Real RP que estб em constante modificaзгo atй que seja adicionado bastante funзхes.

Funзхes:

Nгo й a Versгo Final,porйm tem funзхes legais

Sistema de Cinto [ON|OFF]
Sistema de Fala [ANIMES]
Sistema de Radar [BREAK CAR]
Sistema de Vida do Carro [Chamar Mecвnico]

Vнdeo:
Aqui um vнdeo demonstrando as funзхes
[ame]http://www.youtube.com/watch?v=zYoeSs7WRVk[/ame]

Download
Jб que o cуdigo nгo passa de 150 Linhas:

pawn Код:
#include <a_samp>
#define EncodeDamage(%1,%2,%3,%4) %1 | (%2 << 1) | (%3 << 2) | (%4 << 3)
#define SLOTS 50
#define MAX_SPEED 120
new
    bool:Danificado[2000],
    bool:NaoCarro[SLOTS],
    bool:Cinto[SLOTS],
    Float:xaa[SLOTS],
    Float:yaa[SLOTS],
    Float:zaa[SLOTS],
    Float:HealthV,
    damage[4]
;
forward CongelarPlayer(playerid);
forward StopAnimes(playerid);
public OnPlayerUpdate(playerid)
{
    if(IsPlayerInAnyVehicle(playerid))
    {
        if(GetPlayerVelo(playerid) > MAX_SPEED)
        {
            new name[24], string[50];
            GetPlayerName(playerid, name, sizeof(name));
            format(string, sizeof(string), "Patrulha: %s esta na velocidade de %d",name,GetPlayerVelo(playerid));
            GameTextForPlayer(playerid,"~r~Parando Carro. Velocidade Elevada",2000,4);
            GetPlayerPos(playerid,xaa[playerid],yaa[playerid],zaa[playerid]);
            GivePlayerMoney(playerid,GetPlayerMoney(playerid)-700);
            SetVehicleVelocity(GetPlayerVehicleID(playerid), 0.0 , 0.0 , 0.0);
            for(new i=0;i<SLOTS;i++)
            {
                if(IsPlayerInRangeOfPoint(i,300.0,xaa[playerid],yaa[playerid],zaa[playerid]))
                {
                    SendClientMessage(i,0xFFFFFFFF,string);
                }
            }
        }
    }
    return true;
}
public OnPlayerConnect(playerid)
{
    ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
    ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
    return true;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/cinto-on", true) == 0)
    {
        if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xC9170EFF,"[ERRO] Vocк precisa estar em um carro");
        if(Cinto[playerid] == true) return SendClientMessage(playerid,0xC9170EFF,"[ERRO] Vocк jб esta de cinto");
        SendClientMessage(playerid,0xFFFFFFFF,"[INFO] Vocк colocou cinto de seguranзa,agora nгo morrerб em acidentes");
        Cinto[playerid] = true;
        return true;
    }
    if(strcmp(cmdtext, "/cinto-off", true) == 0)
    {
        if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xC9170EFF,"[INFO] Vocк precisa estar em um carro");
        if(Cinto[playerid] == true) return SendClientMessage(playerid,0xC9170EFF,"[ERRO] Vocк jб nгo esta de cinto");
        SendClientMessage(playerid,0xFFFFFFFF,"[INFO] Vocк tirou cinto de seguranзa,agorapoderб morrer em acidentes");
        Cinto[playerid] = false;
        return true;
    }
    return false;
 }
public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
    GetVehicleHealth(vehicleid,HealthV);
    if(HealthV > 900) return false;
    if(Cinto[playerid] == false && NaoCarro[playerid] == false)
    {
        RemovePlayerFromVehicle(playerid);
        new Float:XD,Float:YD,Float:ZD,Float:ANGLED;
        GetPlayerPos(playerid,XD,YD,ZD);
        new Float:r;
        GetVehicleZAngle(GetPlayerVehicleID(playerid),r);
        XD += (10 * floatsin(-r, degrees));
        YD += (10 * floatcos(-r, degrees));
        GetPlayerFacingAngle(playerid,ANGLED);
        SetPlayerPos(playerid,XD,YD,ZD+2);
        SetPlayerHealth(playerid,HealthV/20);
        SendClientMessage(playerid,0xFFFFFFFF,"[INFO] Vocк esta sem cinto de seguranзa cuidado com acidentes");
        ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
        ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
        SetTimerEx("StopAnimes",8000,false,"i",playerid);
        SetTimerEx("CongelarPlayer",10000,false,"i",playerid);
        NaoCarro[playerid] = true;
    }
    if(HealthV < 500)
    {
        GetVehicleDamageStatus(vehicleid, damage[0], damage[1], damage[2], damage[3]);
        UpdateVehicleDamageStatus(vehicleid, damage[0], damage[1], damage[2], EncodeDamage(1, 1, 1, 1));
        SendClientMessage(playerid,0xFFFFFFFF,"[INFO] Seu Carro foi Danificado Chame um Mecanico antes que sejб tarde");
    }
    if(HealthV < 400)
    {
        new Float:XD,Float:YD,Float:ZD;
        GetPlayerPos(playerid,XD,YD,ZD);
        SetPlayerPos(playerid,XD+1,YD+1,ZD+1);
        SendClientMessage(playerid,0xFFFFFFFF,"[INFO] Seu Carro foi Danificado Chame um Mecanico imediatamente");
        Danificado[vehicleid] = true;
    }
    return true;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if(Danificado[vehicleid] == true)
    {
        new Float:XD,Float:YD,Float:ZD;
        GetPlayerPos(playerid,XD,YD,ZD);
        SetPlayerPos(playerid,XD+1,YD+1,ZD+1);
        SendClientMessage(playerid,0xFFFFFFFF,"[INFO] Seu Carro foi Danificado Chame um Mecanico imediatamente");
       
    }
    return true;
}
public OnPlayerText(playerid,text[])
{
    if(NaoCarro[playerid] == false && !IsPlayerInAnyVehicle(playerid))
    {
        ApplyAnimation(playerid, "PED", "IDLE_CHAT", 4,0, 0, 0, 0, 0, 0);
        SetTimerEx("StopAnimes",2500,false,"i",playerid);
    }
    return true;
}
public CongelarPlayer(playerid)
{
    TogglePlayerControllable(playerid,0);
    return true;
}
public StopAnimes(playerid)
{
    TogglePlayerControllable(playerid,1);
    ClearAnimations(playerid);
    NaoCarro[playerid] = false;
    ClearAnimations(playerid);
    return true;
}
stock GetPlayerVelo(playerid) // [FeK]Kyle - DarK TeaM PT
{
    new Float:PosX, Float:PosY,Float:PosZ,Float:PlayerSpeedDistance;
    GetVehicleVelocity(GetPlayerVehicleID(playerid), PosX, PosY, PosZ);
    PlayerSpeedDistance = floatmul(floatsqroot(floatadd(floatadd(floatpower( PosX, 2), floatpower(PosY, 2)), floatpower(PosZ, 2))), 170.0);
    new spe = floatround(PlayerSpeedDistance * 1);
    return spe;
}
Clique aqui para pastebin



Crйditos:
Desenvolvido por [FeK]DraKiNs
Sistema de Velocidade por Dark Team PT ([FeK]KylePT)

Obs:
Para liberar o carro para andar basta:
Danificado[vehicleid] = false;

Ao bater o carro a Animaзгo e Descongelamento do player demora 10 segundos,nгo mude isto

Mude o nъmero de Slots SLOTS

A Velocidade Mбxima mude tambйm MAX_SPEED


Re: Real RP [v1] [Atualizando] - Baddark2131 - 23.10.2010

Bom sistema !
Ele й super util para um servidor RP !
Parabйns !



Re: Real RP [v1] [Atualizando] - SlashPT - 23.10.2010

Drakon mete ai o novo GetVelocidade...

pawn Код:
stock
    GetPlayerVelo(playerid)
{
    GetVehicleVelocity(GetPlayerVehicleID(playerid), poskm[0], poskm[1], poskm[2]);
    return IsPlayerInAnyVehicle(playerid) ? floatround(((floatsqroot(((poskm[0] * poskm[0]) + (poskm[1] * poskm[1]) + (poskm[2] * poskm[2]))) * (170.0))) * 1) : 0;
}
acho que e mais rapido...


Re: Real RP [v1] [Atualizando] - ipsBruno - 23.10.2010

sim Dark,й mais rapido,eu ainda nгo havia achado ele entгo acabei deixando assim mesmo


Re: Real RP [v1] [Atualizando] - [Ips]Guh - 23.10.2010

hmm ta legal drakins,parabenss


Re: Real RP [v1] [Atualizando] - ipsBruno - 23.10.2010

valeu Badio,vocк sempre me ajudando com elogios.
E Dark tambйm
e todos s2


Re: Real RP [v1] [Atualizando] - [FeK]Knife - 23.10.2010

._.
Eu tambйm to ?
e.e



Re: Real RP [v1] [Atualizando] - insanity_hol - 23.10.2010

Mara *-*. pqp mt bom