SA-MP 0.3c cliente/servidor RC (RC2)


SA-MP 0.3c RC

Estamos lanzando una versión para scripting (con jugadores limitados) de SA-MP 0.3c, para que los dueños de servidores y scripters puedan empezar a actualizar sus scripts y hacer los cambios necesarios para la próxima versión de SA-MP. El lanzamiento de la versión completa de 0.3c no va a ser hasta al menos dentro de algunas semanas más.

SA-MP 0.3c es principalmente una actualización para añadir características nuevas. Los bugs que se encuentren serán arreglados durante la RC, así que pueden ser reportados. Se le dará mayor prioridad a los bugs introducidos con alguna de las nuevas características.


Actualizaciones

Actualización para cliente y servidor 0.3c RC2

- Este lanzamiento intenta arreglar algunos de los problemas con la incrustación de colores en textos, como colores desalineados e interferencias con la codificación de caracteres. Si todavía hay problemas, por favor reportarlos.
- El servidor ahora tiene espacio para 50 jugadores.
- La lista de servidores 0.3c RC esta ahora activa.
- Estamos monitoreando reportes de cuelgues en el cliente, así que por favor reportarlos en la ventana de cuelgue (click en 'Report Crash'), o pegar el error en esta sección del foro.

Actualización para el cliente 0.3c RC1-2

- Arregla un cuelgue con los objetos enganchados al jugador usando la versión EU de GTA SA.


Información sobre el lanzamiento SA-MP 0.3c RC1 debajo

Cambios importantes para que los scripts de 0.3b funcionen en 0.3c

Las funciones SetPlayerHoldingObject, IsPlayerHoldingObject y StopPlayerHoldingObject fueron eliminadas. Estas funciones estaban limitadas por el hecho de que solo podían enganchar 1 objeto por jugador. Nuevas funciones fueron agregadas que permiten enganchar hasta 5 objetos por jugador.

pawn Code:

#define MAX_PLAYER_ATTACHED_OBJECTS 5 // This is the number of attached indexes available ie 5 = 0-4

native SetPlayerAttachedObject(playerid, index, modelid, bone, Float:fOffsetX = 0.0, Float:fOffsetY = 0.0, Float:fOffsetZ = 0.0, Float:fRotX = 0.0, Float:fRotY = 0.0, Float:fRotZ = 0.0, Float:fScaleX = 1.0, Float:fScaleY = 1.0, Float:fScaleZ = 1.0);
native RemovePlayerAttachedObject(playerid, index);
native IsPlayerAttachedObjectSlotUsed(playerid, index);


Si alguien scripteó mucho alrededor de SetPlayerHoldingObject, los defines de abajo pueden ser útiles. Pueden ser agregados arriba de todo del archivo pwn, luego de que a_samp.inc es incluido. Estos usaran el espacio número 4 para enganchar los objetos.

#define SetPlayerHoldingObject(%1,%2,%3,%4,%5,%6,%7,%8,%9) SetPlayerAttachedObject(%1,MAX_PLAYER_ATTACHED_OBJECTS-1,%2,%3,%4,%5,%6,%7,%8,%9)
#define StopPlayerHoldingObject(%1) RemovePlayerAttachedObject(%1,MAX_PLAYER_ATTACHED_OBJECTS-1)
#define IsPlayerHoldingObject(%1) IsPlayerAttachedObjectSlotUsed(%1,MAX_PLAYER_ATTACHED_OBJECTS-1)


Incrustación de colores:

Se pueden agregar textos con el formato {RRGGBB} (hex) en los textos para cambiar el color. Esto funciona en la ventana de chat, en los diálogos, en las 3D text labels, y en las placas de los vehículos. Los códigos con colores son automáticamente filtrados con () en el chat de los jugadores. La única excepción al filtro de códigos de colores es en los diálogos del tipo DIALOG_STYLE_INPUT.

El regreso de SetVehicleNumberplate()

Aunque el nombre de la función es la misma, funciona diferente. Todos los vehículos ahora tienen una placa genérica "XYZR 000". La placa solo cambiará si se usa SetVehicleNumberPlate(). El límite del texto de la placa es de 32 caracteres, lo que da suficiente espacio para crear una placa de 8 caracteres y agregarle códigos de colores. Por favor usar esta función con cuidado, y no asignarle placas personalizadas a vehículos que no tengan placas (como aviones/barcos etc), ya que esto resultará en procesamiento innecesario del lado del cliente.

SetVehicleParamsEx()

Nuevos parámetros extendidos para los vehículos que permiten cambiar el estado del motor, luces, alarma, puertas cerradas, capó abierto/cerrado, baúl abierto/cerrado, modo objetivo.
Estos no tienen que ser asignados por cada jugador como solía hacerse con SetVehicleParamsForPlayer(). Estos son automáticamente replicados por todos los jugadores.

pawn Code:

#define VEHICLE_PARAMS_UNSET -1
#define VEHICLE_PARAMS_OFF 0
#define VEHICLE_PARAMS_ON 1

native SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
native GetVehicleParamsEx(vehicleid, &engine, &lights, &alarm, &doors, &bonnet, &boot, &objective);

Ejemplo:

pawn Code:

new engine,lights,alarm,doors,bonnet,boot,objective;

if(strcmp(cmd, "/startengine",true) == 0) {
new vid = GetPlayerVehicleID(playerid);
if(vid != INVALID_VEHICLE_ID) {
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
}
return 1;
}
if(strcmp(cmd, "/stopengine",true) == 0) {
new vid = GetPlayerVehicleID(playerid);
if(vid != INVALID_VEHICLE_ID) {
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
return 1;
}


También se pueden escribir funciones para envolver a esta función, como por ejemplo:

SetVehicleEngineOn(vehicleid)
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
}

ManualVehicleEngineAndLights()

ManualVehicleEngineAndLights() puede ser usado en OnGameModeInit(), o en algún lado antes de que el jugador se conecte. Instruirá a todos los clientes que el servidor controla tanto el motor como las luces. Esto significa que el motor no se iniciará automáticamente cuando el jugador entre al vehículo, y las luces no se encenderán a la noche.
Esto es útil en servidores de roleplay, donde el jugador deba iniciar o detener el motor manualmente. El comportamiento de SetVehicleParamEx con control manual de motor/luces es diferente dependiendo de si esta opción está activada.

AttachObjectToVehicle

Espero que esta función se explique a si misma.

Nuevos objetos, partículas, samp.img, samp.ide


Hay muchas cosas que necesitan documentación con respecto a esto. Información útil debería estar apareciendo en la wiki de SA-MP durante las siguientes semanas. Para dar un corto resumen, gracias al equipo de beta testers de SA-MP, ahora se incluyen cientos de nuevos objetos, incluyendo partículas. Estos objetos usan IDs que no están normalmente disponibles en San Andreas. Una lista completa de IDs puede ser encontrada en el directorio del GTA SA, en modelssamp.ide luego de instalar cualquier versión de SA-MP 0.3c.

Archivos 0.3c

Cliente: http://team.sa-mp.com/03cR/zz1/sa-mp-0.3c-RC2-install.exe

Servidor Windows/Scripting 0.3c-RC2 (50 jugadores): http://team.sa-mp.com/03cR/zz1/samp03csvr_RC2_win32.zip

_______________________________________

Notas:

- RC significa "Release Candidate", o en español, "Candidato al Lanzamiento". Quiero dejar en claro que esta no es la versión final de 0.3c, es una versión limitada a 20 jugadores para que se puedan probar las nuevas funciones y hacer los cambios necesarios en scripts existentes para hacerlos compatibles.

- Hay un nuevo subforo dentro del de scripting en inglés dedicado a 0.3c. Se recomienda que si alguien encuentra algún bug en esta versión de SA-MP, lo postee en dicho foro, en inglés. Si no saben inglés, intenten pedirle ayuda a alguien que lo sepa, o en última instancia usar un traductor. Intenten ser lo más descriptivos posibles, y mostrar videos o imágenes donde sea posible.

__________________


link: http://www.youtube.com/watch?v=dsA6HWGmhSs


link: http://www.youtube.com/watch?v=O3fUJWwlWGw


link: http://www.youtube.com/watch?v=ZHrrI8IxKbc

_________________________
Fuente: http://forum.sa-mp.com/showthread.php?p=931617