SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese > Lançamentos/Releases

Reply
 
Thread Tools Display Modes
Old 23/10/2010, 03:25 AM   #1
ipsBruno
Godfather
 
ipsBruno's Avatar
 
Join Date: Apr 2010
Location: Brazil, Caxias RS
Posts: 6,084
Reputation: 545
Default Real RP [v1] [Atualizando]



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 Code:
#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
__________________
https://github.com/ipsBruno
ipsBruno is offline   Reply With Quote
Old 23/10/2010, 04:26 AM   #2
Baddark2131
Banned
 
Join Date: Apr 2010
Posts: 404
Reputation: 0
Default Re: Real RP [v1] [Atualizando]

Bom sistema !
Ele é super util para um servidor RP !
Parabéns !
Baddark2131 is offline   Reply With Quote
Old 23/10/2010, 10:16 AM   #3
SlashPT
High-roller
 
SlashPT's Avatar
 
Join Date: Sep 2009
Location: Hell
Posts: 1,973
Reputation: 116
Default Re: Real RP [v1] [Atualizando]

Drakon mete ai o novo GetVelocidade...

pawn Code:
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...
__________________

Zh3r0Jansish
SlashPT is offline   Reply With Quote
Old 23/10/2010, 02:19 PM   #4
ipsBruno
Godfather
 
ipsBruno's Avatar
 
Join Date: Apr 2010
Location: Brazil, Caxias RS
Posts: 6,084
Reputation: 545
Default Re: Real RP [v1] [Atualizando]

sim Dark,é mais rapido,eu ainda não havia achado ele então acabei deixando assim mesmo
__________________
https://github.com/ipsBruno
ipsBruno is offline   Reply With Quote
Old 23/10/2010, 02:42 PM   #5
[Ips]Guh
Gangsta
 
[Ips]Guh's Avatar
 
Join Date: Apr 2010
Location: Brazil
Posts: 854
Reputation: 62
Default Re: Real RP [v1] [Atualizando]

hmm ta legal drakins,parabenss
[Ips]Guh is offline   Reply With Quote
Old 23/10/2010, 06:31 PM   #6
ipsBruno
Godfather
 
ipsBruno's Avatar
 
Join Date: Apr 2010
Location: Brazil, Caxias RS
Posts: 6,084
Reputation: 545
Default Re: Real RP [v1] [Atualizando]

valeu Badio,você sempre me ajudando com elogios.
E Dark também
e todos s2
__________________
https://github.com/ipsBruno
ipsBruno is offline   Reply With Quote
Old 23/10/2010, 06:32 PM   #7
[FeK]Knife
Gangsta
 
[FeK]Knife's Avatar
 
Join Date: Oct 2010
Location: Lauro de Freitas - BA
Posts: 599
Reputation: 51
Default Re: Real RP [v1] [Atualizando]

._.
Eu também to ?
e.e
[FeK]Knife is offline   Reply With Quote
Old 23/10/2010, 08:27 PM   #8
insanity_hol
Big Clucker
 
Join Date: Sep 2010
Posts: 112
Reputation: 0
Default Re: Real RP [v1] [Atualizando]

Mara *-*. pqp mt bom
insanity_hol is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[FilterScript] [FS] Homer's REAL Clock - NEW VERSION!!! - Real Time + Date! Homerman Filterscripts 36 28/02/2010 02:32 AM
[HELP]Real Time and Real Weather djejsy Help Archive 0 21/12/2009 03:51 PM
real chat help CharlieScene Help Archive 6 05/12/2009 07:26 PM


All times are GMT. The time now is 11:09 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.