rendered paste body#include <a_samp>
#include <colors>
new Float:checkpoints[5][30];//new Float:checkpoints[5][maxcheckpoints];
new Float:startpoints[5][MAX_PLAYERS];//new Float:spawn[1][maxplayersstartposition];
new spn;//startpoint number
new cpn;//checkpoint number
new ccp[3][MAX_PLAYERS];//curent checkpoints per player
new vehiculeid;
main()
{
print("\n");
print("|--------------------------------------------|");
print("| race mode |");
print("| |");
print("| created with SA-MP Editor 0.2 |");
print("|--------------------------------------------|");
print("\n\n");
}
public OnGameModeInit()
{
SetGameModeText("[ALPHA] Race Mode by Abatonime");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
//printf("Max players : %d",GetMaxPlayers());
LoadRace("file.txt");
new count;
new xposs = 1270;
for(count = 0; count < GetMaxPlayers(); count++) {
AddStaticVehicle(vehiculeid,2077,xposs,10,111,random(127),random(127));
xposs = xposs+5;
}
xposs=1371;
for(count = 00; count <= 40; count++) {
AddStaticVehicle(random(212)+400,1476.9103,xposs,10.6537,231.1827,random(127),random(127));
xposs = xposs+7;
}
/* new count2;
new countstr[256];
for(count = 1; count <= cpn; count++) {
for(count2 = 1; count2 <= 4; count2++){
format(countstr, sizeof(countstr), "%f", checkpoints[count2][count]);
printf(countstr);
}
}
for(count = 1; count <= spn; count++) {
for(count2 = 1; count2 <= 4; count2++){
format(countstr, sizeof(countstr), "%f", startpoints[count2][count]);
printf(countstr);
}
}
*/
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
//printf("OnPlayerRequestClass(%d, %d)", playerid, classid);
SetPlayerPos(playerid, 2111.6255,1258.6199,10.8203);
SetPlayerCameraPos(playerid, 2104.8396,1256.1538,10.8203);
SetPlayerCameraLookAt(playerid,2111.6255,1258.6199,10.8203);
return 1;
}
public OnGameModeExit()
{
//MessageTextForAll(COLOR_RED,"CHANGEMENT DE MODE")
//MessageTextForAll(COLOR_RED,"Merci d'avoir jouer a RM")
print("GameModeExit()");
return 1;
}
public OnPlayerConnect(playerid)
{
// (playerid,team,skin,Float:x,Float:y,Float:z,Float:rotation,weapon1,weapon1_ammo,weapon2,weapon2_ammo,weapon3,weapon3_ammo)
// SetSpawnInfo(playerid, 0, 121, 2016.5950, 1545.0306, 10.8308, 90.5, 26, 250, 28, 250, 0, 0);
return 1;
}
public OnPlayerDisconnect(playerid)
{
return 1;
}
public OnPlayerSpawn(playerid)
{
//printf("OnPlayerSpawn(%d)", playerid);
PlayerOnStartPos(playerid);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
printf("OnPlayerDeath(%d, %d, %d)", playerid, killerid, reason);
return 1;
}
public OnPlayerText(playerid)
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/start", true)==0)
{
PlayerOnStartPos(playerid);
return 1;
}
else if (strcmp(cmdtext, "/wh", true)==0)
{
new playerVehicle = GetPlayerVehicleID(playerid);
new message[265];
format(message, sizeof(message), "%d : %d", playerid,playerVehicle);
SendClientMessageToAll(0xFFFF00AA, message);
}
else if (strcmp(cmdtext, "/vh", true)==0)
{
SetVehicleParamsForPlayer(playerid+1, playerid, 0, 0);
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
SendClientMessageToAll(0xFFFF00AA, "enter a vehic");
if((playerid+1)==vehicleid){
new err=SetVehicleParamsForPlayer(vehicleid, playerid, 0, 0);//obj / loked
printf("obj : %d",err);
}
else{
// GetPlayerPos(playerid, x, y, z);
SetPlayerPos(playerid, 2076.9675,1263.6416,10.6719 );
}
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
SetVehicleParamsForPlayer(playerid+1, playerid, 1, 0);//obj / loked
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
SendClientMessage(playerid, 0xFFFF00AA, "you are in check point");
DisablePlayerCheckpoint(playerid);
/* new hahihu[256];
format(hahihu, sizeof(hahihu), "172 : %d", ccp[1][playerid]);
SendClientMessage(playerid, 0xFFFF00AA, hahihu);*/
if (cpn<ccp[1][playerid]){
SendClientMessage(playerid, 0xFFFF00AA, "you finish the race");
new message[256];
new playername[256];
GetPlayerName(playerid, playername,sizeof(playername));
format(message, sizeof(message), "%s just finish the race",playername);
SendClientMessageToAll(0xFFFF00AA, message);
}
else{
SetPlayerCheckpoint(playerid, checkpoints[1][ccp[1][playerid]], checkpoints[2][ccp[1][playerid]], checkpoints[3][ccp[1][playerid]], checkpoints[4][ccp[1][playerid]]);
ccp[1][playerid]++;
}
return 0;
}
PlayerOnStartPos(playerid)
{
SetCameraBehindPlayer(playerid);
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid, checkpoints[1][1], checkpoints[2][1], checkpoints[3][1], checkpoints[4][1]);//on charge le 1er
ccp[1][playerid]=2;//le prochain a charger sera le 2eme
//normalement on tp ici le joueur sur une place libre
new err=PutPlayerInVehicle(playerid,playerid + 1 , 0);//playerid+1
printf("la:%d",err);
if(err==1)
{
SetPlayerPos(playerid, 2049.9541,1404.3904,10.6719)
SetVehicleParamsForPlayer(playerid+1, playerid, 1, 0);//obj / loked
}
new count2;
for(count2 = 0; count2 <= GetMaxPlayers(); count2++){//toute les voitures
if(playerid!=count2){//sauf celle du joueur vehicleid
SetVehicleParamsForPlayer(count2+1, playerid, 0, 1);//obj / loked
}}
//SetVehiclePos et SetVehicleZAngle
}