26.02.2012, 20:36
Pessoal estou sem SA:MP e estava criando um sistema de portхes, logo queria saber se alguйm se dispхe a testar o sistema pra mim.
Interessados,
Use o CreateGate na OnGameModeInit ou OnFilterScriptInit.
Use o MoveGate para movк-los
returnTime = tempo para voltar ao ponto inicial
returnSpeed = velocidade para voltar ao ponto inicial.
Caso alguйm teste me diga se hб bugs para que eu os corrija, nгo havendo, faзo release
Agradeзo desde jб.
Interessados,
pawn Код:
/*
Miranda's Gate System
*/
#include <a_samp>
#define MAX_GATES 51 //defina como preferir
forward ReturnGateToInitialPoint(gateid, Float: speed);
//#define STREAMER
enum GInfo
{
GateObject,
GateModel,
Float: GateX,
Float: GateY,
Float: GateZ,
Float: GateRX,
Float: GateRY,
Float: GateRZ
};
new GateInfo[MAX_GATES][GInfo];
#if !defined STREAMER
stock CreateGate(GateID, Model, Float: x, Float: y, Float: z, Float: RX, Float: RY, Float: RZ)
{
if(GateID == MAX_GATES)
return print("=> Limite Excedido!");
GateInfo[GateID][GateModel] = Model;
GateInfo[GateID][GateX] = x;
GateInfo[GateID][GateY] = y;
GateInfo[GateID][GateZ] = z;
GateInfo[GateID][GateRX] = RX;
GateInfo[GateID][GateRY] = RY;
GateInfo[GateID][GateRZ] = RZ;
GateInfo[GateID][GateObject] = CreateObject(Model, x, y, z, RX, RY, RZ);
return 1;
}
stock MoveGate(GateID, Float:newx, Float:newy, Float:newz, Float:newrx, Float:newry, Float:newrz, Float: moveSpeed, returnTime, Float: returnSpeed)
{
MoveObject(GateInfo[GateID][GateObject], newx, newy, newz, newrx, newry, newrz, moveSpeed);
SetTimerEx("ReturnGateToInitialPoint", returnTime, 0, "df", GateID, returnSpeed);
return 1;
}
public ReturnGateToInitialPoint(gateid, Float: speed)
{
return MoveObject(GateInfo[gateid][GateObject], GateInfo[gateid][GateX], GateInfo[gateid][GateY], GateInfo[gateid][GateZ], GateInfo[gateid][GateRX], GateInfo[gateid][GateRY], GateInfo[gateid][GateRZ], speed);
}
#else
#include <streamer>
stock CreateGate(GateID, Model, Float: x, Float: y, Float: z, Float: RX, Float: RY, Float: RZ, vw, interior)
{
if(GateID == MAX_GATES)
return print("=> Limite Excedido!");
GateInfo[GateID][GateModel] = Model;
GateInfo[GateID][GateX] = x;
GateInfo[GateID][GateY] = y;
GateInfo[GateID][GateZ] = z;
GateInfo[GateID][GateRX] = RX;
GateInfo[GateID][GateRY] = RY;
GateInfo[GateID][GateRZ] = RZ;
GateInfo[GateID][GateObject] = CreateDynamicObject(Model, x, y, z, RX, RY, RZ, vw, interior);
return 1;
}
stock MoveGate(GateID, Float:newx, Float:newy, Float:newz, Float: moveSpeed, returnTime, Float: returnSpeed)
{
MoveDynamicObject(GateInfo[GateID][GateObject], newx, newy, newz, moveSpeed);
SetTimerEx("ReturnGateToInitialPoint", returnTime, 0, "df", GateID, returnSpeed);
return 1;
}
public ReturnGateToInitialPoint(gateid, Float: speed)
{
return MoveDynamicObject(GateInfo[gateid][GateObject], GateInfo[gateid][GateX], GateInfo[gateid][GateY], GateInfo[gateid][GateZ], speed);
}
#endif
Use o MoveGate para movк-los
returnTime = tempo para voltar ao ponto inicial
returnSpeed = velocidade para voltar ao ponto inicial.
Caso alguйm teste me diga se hб bugs para que eu os corrija, nгo havendo, faзo release
Agradeзo desde jб.