[Include] bspikes
#1

bspikes
Tapete de pregos
Hoje estive desenvolvendo esta include, pois visto que aqui no forum sa-mp nгo existe nenhum script de tapetes de pregos "bem feito", muitos tem bugs e eu decidi fazer o meu, neste momento ele й capaz de estar desoptimizado, mas estou um pouco cansado e como optimizaзгo nгo seria muito importante nesta include decidi por nгo me preocupar muito com isso.

Funзхes Principais
  • IsPlayerInSpike(playerid,bool:engine,bool:fire,max speed,dfiretime)
    • playerid
      • ID do jogador.
    • engine
      • desliga o motor, lembrando que й como quebrasse o motor do veiculo.
    • fire
      • cria fogo nas rodas, lembrando que o fogo sу й colocado na roda direita ao lado do motor.
    • maxspeed
      • o mбximo de velocidade necessбria para criar o fogo e/ou desligar o motor
    • dfiretime
      • o tempo em milisegundos para destruir o objecto do fogo
  • CreateSpike(playerid,playername[])
    • playerid
      • ID do jogador
    • playername
      • Nome do jogador
  • TeleportToSpike(playerid,spikeid)
    • playerid
      • ID do jogador
    • spikeid
      • ID do tapete de pregos
  • DestroySpike(playerid)
    • playerid
      • ID do jogador
Exemplo de uso:

pawn Код:
public OnPlayerConnect(playerid)
{
    SetTimerEx("IsPlayerInSpike",500,true,"ddddd",playerid,fire,engine,velocidade,tempo);
    return 1;
}

//comando
bCMD[criar]-(playerid){
    new name[24];
    GetPlayerName(playerid,name,24);
    CreateSpike(playerid,name);
    SendClientMessage(playerid,-1,"Criando um tapete de pregos.");
    return 1;
}
bCMD[irtapete]-(playerid,params[]){
    if(IsPlayerAdmin(playerid)){
        if(isnull(params))
            return SendClientMessage(playerid,-1,"USE: /irtapete [id]");
        TeleportToSpike(playerid,strval(params));
    }
    return 1;
}

bCMD[destroi]-(playerid){
    return DestroySpike(playerid);
}
Eu usei o OnPlayerConnect porque quando usava o OnPlayerUpdate ele chamava a funзгo muitas vezes, digamos, umas 8 vezes, sendo assim coloquei um timer de 500 ms, mas vocкs podem colocar no OnPlayerUpdate, penso que nгo tenha problema.

Callbacks de respostas


Eu criei 2 callbacks que enviam respostas apos as duas funзхes que mostrei serem executadas.
  • OnPlayerPassedSpike(playerid,bool:fire,bool:engine )
    • playerid
      • ID do jogador
    • fire
      • Variavel que define se o pneu pegou fogo.
    • engine
      • Variбvel que define se o motor foi quebrado.
  • OnSpikeCreated(playerid ,playername,spikeid,Float:spikex,Float:spikey,Floa t:spikez)
    • playerid
      • ID do jogador
    • playername
      • Nome do jogador que criou
    • spikeid
      • ID do tapete de pregos
    • spikex,spikey,spikez
      • Coordenadas do tapete de pregos
Exemplos:

pawn Код:
public OnSpikeCreated(playerid,playername,spikeid,Float:spikex,Float:spikey,Float:spikez){
    new result[128],name[24];
    GetPlayerName(playerid,name,24);
    for(new i; i<MAX_PLAYERS; ++i){
        if(IsPlayerAdmin(i)){
            format(result,sizeof result,"O jogador %s(%d) criou um tapete de pregos, use {808080} /irtapete %d{FFFFFF} para ver o tapete",name,playerid,spikeid);
            SendClientMessage(i,-1,result);
        }
    }
    return 1;
}

public OnPlayerPassedSpike(playerid,bool:fire,bool:engine){
    if(fire && engine){
        SendClientMessage(playerid,0x800000AA,"Opa, seu carro esta pegando fogo!");
    }
    return 1;
}
Caso voce deseja ligar novamente o veiculo basta usar a funзгo TurnEngineOn, lembrando que o jogador deve estar dentro de o carro!

Imagens
http://i49.tinypic.com/1om5hf.png
http://i46.tinypic.com/2igp0cz.png
http://i48.tinypic.com/2wp8kgn.png
http://i50.tinypic.com/ra7mnc.png

Download
MediaFire - PasteBin - v1.0

Crйditos
  • BlueX
    • Criador da include.
  • Leonardo1434
    • Testou a include comigo.
  • [iPs]TeaM
    • Melhor equipe de programaзгo.
  • SA-MP Team
    • Passado/Presente/Futuro
Reply
#2

Good Work, realmente, jб vi nгo sу outros projetos com bugs, mas sim pedidos de muitos usuбrios com essa dъvida de como fazer
Reply
#3

Second'

Super Foda Gonзalo, tб de parabeйns =D

Editei porque nгo fui o First' ¬¬
Reply
#4

Bгo.
Reply
#5

Quote:
Originally Posted by .FuneraL.
Посмотреть сообщение
Good Work, realmente, jб vi nгo sу outros projetos com bugs, mas sim pedidos de muitos usuбrios com essa dъvida de como fazer
Obrigado

Quote:
Originally Posted by Pedro_BML
Посмотреть сообщение
Second'

Super Foda Gonзalo, tб de parabeйns =D

Editei porque nгo fui o First' ¬¬
Obrigado

@Off

Voce й lento de mais sabe, rs.


Quote:
Originally Posted by leonardo1434
Посмотреть сообщение
Bгo.
Sim D:
Reply
#6

i love u .

Tava precisando de um desses
Reply
#7

/\ Mentira do CRL

@Topic

Muito Bom


+Repi
Reply
#8

Parabйns, cara. Bem feito.
Reply
#9

Quote:
Originally Posted by dPlaYer_
Посмотреть сообщение
i love u .

Tava precisando de um desses
Obrigado

Quote:
Originally Posted by Ades
Посмотреть сообщение
Muito Bom

+Repi
Obrigado

Quote:
Originally Posted by Hardware
Посмотреть сообщение
Parabйns, cara. Bem feito.
Obrigado
Reply
#10

Quote:
Originally Posted by BlueX
Посмотреть сообщение
Obrigado
Por que o meu й o mais fail ?

Eu fui o unico que te dei rep -q
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)