[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


Messages In This Thread
bspikes - by RebeloX - 07.08.2012, 00:09
Re: bspikes - by .FuneraL. - 07.08.2012, 00:12
Re: bspikes - by Pedro_BML - 07.08.2012, 00:12
Re: bspikes - by leonardo1434 - 07.08.2012, 00:15
Re: bspikes - by RebeloX - 07.08.2012, 00:16
Re: bspikes - by dPlaYer_ - 07.08.2012, 00:20
Re: bspikes - by Ades - 07.08.2012, 00:29
Re: bspikes - by Hardware - 07.08.2012, 00:32
Re: bspikes - by RebeloX - 07.08.2012, 00:36
Re: bspikes - by Ades - 07.08.2012, 00:44

Forum Jump:


Users browsing this thread: 1 Guest(s)