Prvo u
enum pInfo
{dodajte ovo:
pAdjustable,
pFuel,
pMarried,
pMarriedTo,
pUtrka, <---- varijabla za utrkuZatim odite u debug mod i snimite cp-ove za utrku, zapamtite da ih snimate po redu, naravno sa komandom /save.
Kada ste to napravili potrebno je napraviti komandu za race i odbrojavanje, ali prije toga cemo napraiviti kapiju za start i to na sljedeci nacin:
gore u skriptu:
new utrkakapija;u onagamemodeinit
utrkakapija = CreateObject(id kapije,x, y, z, rotx, roty, rotz); // najbolje koordinate podignute kapijeI sada mozemo praviti komandu:
if(strcmp(cmd, "/Utrka", true) == 0)
{
if (PlayerInfo >= 1)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
SendClientMessage(playerid, COLOR_TOMATO, "Aktivirao si utrku");
format(string, sizeof(string),"*Admin %s je aktivirao Utrku",sendername);
SendAdminMessage(COLOR_TOMATO,string);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo == 1)
{
SendClientMessage(i,COLOR_FLBLUE, "Utrka ce startati za 3 sekunde");
GameTextForPlayer(i, "3",1000,6);
SetTimer("UtrkaTimer",1000,0);
}
}
}
}
return 1;
}Kao sto ste vidjeli pozvao sam u komandi timer "UtrkaTimer", pa idemo i njega napraviti:
Gore stavite:
forward UtrkaTimer();
forward UtrkaTimer2();
forward UtrkaTimer3();dolje u skriptu stavite
public UtrkaTimer()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo == 1)
{
GameTextForPlayer(i, "2",1000,6);
SetTimer("UtrkaTimer2",1000,0);
}
}
}
}
public UtrkaTimer2()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo == 1)
{
GameTextForPlayer(i, "1",1000,6);
SetTimer("UtrkaTimer3",1000,0);
}
}
}
}
public UtrkaTimer3()
{
MoveObject(utrkakapija,xkapije, ykapije, zkapije, brzina);//znaci kapija se automatski spusta kad timer kaze start
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo == 1)
{
GameTextForPlayer(i, "START !!!",1000,6);
SetPlayerRaceCheckpoint(i, type, Float:x, Float:y, Float:z, Float:nextx, Float:nexty, Float:nextz, Float:size);//cp 1
PlayerInfo = 2;
}
}
}
}Kao sto ste primjetili vise ne morate jedan odbrojavati a drugi aktivirati race. U ovome slucaju kada upisete /utrka igracima koji imaju aktiviranu utrku ispisivati ce odbrojavanje 3,2,1 i Start. Kada ispise start kapija ce se sama spustiti.
E sad krenimo na cpove, pronadjite:
public OnPlayerEnterRaceCheckpoint(playerid)i tamo dodajte:
if(PlayerInfo >= 2)
{
if(PlayerToPoint(radius, playerid,x1, y1, z1))//cp1
{
if(PlayerInfo == 2)
{
PlayerInfo = 3;
SetPlayerRaceCheckpoint(playerid, tip, x2, y2, z2, x3, y3, z3, radius2);// kao sto vidite u race cp unosite iduci cp i onaj iza njega
}
}
if(PlayerToPoint(radius2, playerid,x2, y2, z2))//cp2
{
if(PlayerInfo == 3)
{
PlayerInfo = 4;
SetPlayerRaceCheckpoint(playerid, tip, x3, y3, z3, x4, y4, z4, radius3);
}
}
.
.
.
.
.
.
.
.
if(PlayerToPoint(radiusn, playerid,xn, yn, zn))//cp n-ti
{
if(PlayerInfo == n)
{
SendClientMessage(playerid, COLOR_YELLOW, "Prosao si kroz cilj");
PlayerInfo = n+1;//da mozete i dalje vidjeti kad prolaze kroz cilj
DisablePlayerRaceCheckpoint(playerid);
//-------------------[Ovo je da svi oni koji su na raceu vide kad prodjete kroz cilj]
new sendername;
GetPlayerName(playerid, sendername, sizeof(sendername));
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo > 0)
{
format(string, sizeof(string), "Utrka - Cilj: %s",sendername);
SendClientMessage(i,COLOR_WHITE , string);
}
}
}
//-----------------------------------------------------------------------------
}
}
}Zapamtite da cete kad netko prodje kroz ako ste na tom raceu vidjeti kad on prodje.
I jos ostaje da napravite komandu za aktivaciju, ovaj puta cemo napraviti to za admina:
if(strcmp(cmd, "/utrkaaktivacija", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Pisi: /utrkaaktivacija [id igraca/Dio imena]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if (PlayerInfo >= 1)
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "ArenaAdmin: %s, tebi je admin %s aktivirao utrku", giveplayer, sendername);
SendClientMessage(giveplayerid,COLOR_BRIGHTRED, string);
format(string, sizeof(string), " igracu %s je utrku aktivirao admin %s", giveplayer, sendername);
SendAdminMessage(COLOR_YELLOWGREEN, string);
PlayerInfo = 1;
}
}
}
else
{
format(string, sizeof(string), " %d nije aktivan igrac.", giveplayerid);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
}Eto to bi bilo to, ukoliko imate pitanja, pohvala, doskoÄica, zaskoÄica slobodno piÅ¡ite ovdje...