apra tu segunda duda te recomiendo esta en feacing o la camra com ovos decis esta en movimiento es mas divertida y una neuva forma de que se vean bien la imagen de tu server
їQuй es esto?
Es un complemento de modo de juego simple, que hace girar su cбmara alrededor del jugador en la pantalla de selecciуn de skin
instalaciуn
Para que este script funcione correctamente, elimine el SetPlayerPos, SetPlayerFacingAngle, SetCameraPos, SetCameraFacingAngle, ApplyAnimation y las lнneas de su PlayerPlaySound OnPlayerRequestSpawn correcta y copiar el cуdigo a su modo
En la parte superior de todo
Код:
//donde el jugador se generan
#define player_x -250.9738
#define player_y 2585.6497
#define player_z 63.5703
#define player_angle 210.3500
//Cбmara y reproductor, el que CREE QUE USTED PUEDE VER EL JUGADOR
//Nota: Para un mejor efecto, dejar que la cбmara sea a pocos metros del jugador
#define camera_x -248.9410
#define camera_y 2581.5327
#define camera_z 64.9334
//ATENCIУN: ESTAS SON milisegundos
//no probado, pero deberнa funcionar en la teorнa. Cuanto menor sea el valor, mбs rбpido de la cбmara.
#define moving_speed 50
//cosas declarando
//IMPORTANTE: Para que el cуdigo funcione, debe definir el ENUM ANTES PlayerInfo
//simplemente lo copia como si fuera escrito aquн
enum pInfo
{
bool:SpawnDance,
Float:SpawnAngle,
SpawnTimer
};
new PlayerInfo[MAX_PLAYERS][pInfo];
Код:
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, player_x,player_y,player_z);
SetPlayerFacingAngle(playerid, player_angle);
SetPlayerCameraPos(playerid, camera_x,camera_y,camera_z);
SetPlayerCameraLookAt(playerid, player_x,player_y,player_z);
ApplyAnimation(playerid,"DANCING","DNCE_M_B",4.0,1,0,0,0,-1); //bailar sin problemas. Es mбs adecuado para la mъsica
PlayerPlaySound(playerid, 1097,-119.9460,23.1096,12.2238); //mъsica, duh
//asegurarse de que el temporizador se ejecuta una sola vez, por lo que la cбmara no se va demasiado rбpido
if (PlayerInfo[playerid][SpawnDance]) PlayerInfo[playerid][SpawnTimer] = SetTimerEx("MoveCamera", moving_speed, true, "i", playerid);
PlayerInfo[playerid][SpawnDance] = false; //prevenir el temporizador para ejecutar de nuevo
return 1;
}
Код:
//algo que encontrй en vactions.pwn
PreloadAnimLib(playerid, animlib[]) ApplyAnimation(playerid,animlib,"null",0.0,0,0,0,0,0);
public OnPlayerConnect(playerid)
{ //cargar la biblioteca de animaciуn
PreloadAnimLib(playerid,"BOMBER");
PreloadAnimLib(playerid,"RAPPING");
PreloadAnimLib(playerid,"SHOP");
PreloadAnimLib(playerid,"BEACH");
PreloadAnimLib(playerid,"SMOKING");
PreloadAnimLib(playerid,"FOOD");
PreloadAnimLib(playerid,"ON_LOOKERS");
PreloadAnimLib(playerid,"DEALER");
PreloadAnimLib(playerid,"CRACK");
PreloadAnimLib(playerid,"CARRY");
PreloadAnimLib(playerid,"COP_AMBIENT");
PreloadAnimLib(playerid,"PARK");
PreloadAnimLib(playerid,"INT_HOUSE");
PreloadAnimLib(playerid,"FOOD");
PreloadAnimLib(playerid,"PED");
//el timer puede ser ejecutado
PlayerInfo[playerid][SpawnDance] = true;
ApplyAnimation(playerid,"DANCING","DNCE_M_B",4.0,1,0,0,0,-1); //la prevenciуn de un error de la animaciуn no se aplica la OnPlayerRequestClass primera vez
return 1;
}
Код:
public OnPlayerSpawn(playerid)
{
PlayerInfo[playerid][SpawnAngle] = 0.0; //asн que cuando te vas y viene otro jugador, la cбmara se iniciarб desde el principio
PlayerInfo[playerid][SpawnDance] = true; //a no ejecutar a los temporizadores mucho
KillTimer( PlayerInfo[playerid][SpawnTimer] ); //acabar con йl, desde su ya inъtil
PlayerPlaySound(playerid, 1186, 0.0, 0.0, 0.0); // (sonido blanco) para apagar la mъsica para arriba
SetCameraBehindPlayer(playerid); //para evitar algunos errores
return 1;
}
Код:
public OnPlayerDisconnect(playerid, reason)
{
KillTimer( PlayerInfo[playerid][SpawnTimer] );
return 1;
}
Код:
//La parte empresarial del cуdigo
forward MoveCamera(playerid);
public MoveCamera(playerid)
{
//esto se llama trigonometrнa. Se hace girar la cбmara
//usted puede experimentar con esta lнnea. Sуlo tienes que cambiar los valores de 2, 10 y 3 para realizar diferentes efectos
SetPlayerCameraPos(playerid, player_x - 2 * floatsin(-PlayerInfo[playerid][SpawnAngle], degrees), player_y - 10 * floatcos(-PlayerInfo[playerid][SpawnAngle], degrees), player_z + 3);
SetPlayerCameraLookAt(playerid, player_x, player_y, player_z + 0.5);
//cambiar el бngulo un poco
PlayerInfo[playerid][SpawnAngle] += 0.5;
if (PlayerInfo[playerid][SpawnAngle] >= 360.0)
PlayerInfo[playerid][SpawnAngle] = 0.0;
}