Započeo Obrisan korisnik
•29. Avg. 2009.• Zaključano[TuT] Djurine Kućne ÄŒarolije - Kako napraviti Race (GF)
14,991
pregleda
62
postova
29. Avg. 2009.
Vidim da vas puno zanima kako napraviti race, u ovom tutorijalu cu vam objasniti kako napraviti jedan jednostavan race.
Prvo u
dodajte ovo:
Zatim 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:
u onagamemodeinit
I sada mozemo praviti komandu:
Kao sto ste vidjeli pozvao sam u komandi timer "UtrkaTimer", pa idemo i njega napraviti:
Gore stavite:
dolje u skriptu stavite
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:
i tamo dodajte:
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:
Eto to bi bilo to, ukoliko imate pitanja, pohvala, doskoÄica, zaskoÄica slobodno piÅ¡ite ovdje...
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...
Crime Lord
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
924
Postovi:
29
Teme:
Pridružio se:Jun 2009
29. Avg. 2009.
Kako napraviti race-u u YSI-u?
Sve sto vam treba je sljedece:
Znam da puno vas nije upoznato nimalo sa YSI-om, ali eto tko je dobro ce mu doc.. Sa ovih 5 komanda moci cete praviti race u igri te brze i efikasnije od GodFather nacina..
Napomena[:]
varijable "oid" i "raceHandle" su globalne...
Sve sto vam treba je sljedece:
Command_(setuprace)
{
new
rLaps,
rEntry,
rCountdown,
rExitTime,
rInterior,
rWorld;
if(sscanf(params, "dddddd", rLaps, rEntry, rCountdown, rExitTime, rInterior, rWorld))
{
Text_Send(playerid, "SETUPRACE_USAGE_MSG");
return 0;
}
raceHandle = Race_Create();
Race_SetFixedWin(raceHandle, 0);
Race_SetArial(raceHandle, 0);
Race_SetCountdown(raceHandle, rCountdown);
Race_SetInterior(raceHandle, rInterior);
Race_SetWorld(raceHandle, rWorld);
Race_SetExitTime(raceHandle, rExitTime);
Race_SetLaps(raceHandle, rLaps);
Race_SetEntry(raceHandle, rEntry);
Text_Send(playerid, "SETUPRACE_INFO1_MSG");
Text_Send(playerid, "SETUPRACE_INFO2_MSG");
Text_Send(playerid, "SETUPRACE_INFO3_MSG");
Text_Send(playerid, "SETUPRACE_INFO4_MSG");
return 1;
}
Command_(setstart)
{
#pragma unused params
new
Float: startX,
Float: startY,
Float: startZ,
Float: startA;
GetPlayerPos(playerid, startX, startY, startZ);
GetPlayerFacingAngle(playerid, startA);
if(Race_AddStart(raceHandle, startX, startY, startZ, startA) == RACE_NO_CHECKPOINT)
{
Text_Send(playerid, "SETSTART_FAIL_MSG");
return 0;
}
return 1;
}
Command_(setcheck)
{
#pragma unused params
new
Float: checkX,
Float: checkY,
Float: checkZ;
GetPlayerPos(playerid, checkX, checkY, checkZ);
if(Race_AddCheckpoint(raceHandle, checkX, checkY, checkZ) == RACE_NO_CHECKPOINT)
{
Text_Send(playerid, "SETCHECK_FAIL_MSG");
return 0;
}
return 1;
}
Command_(startrace)
{
#pragma unused params
Race_Start(raceHandle);
Text_Send(playerid, "STARTRACE_STARTED_MSG");
return 1;
}
Command_(putinrace)
{
if(sscanf(params, "u", oid))
{
Text_Send(playerid, "PUTINRACE_USAGE_MSG");
return 0;
}
Race_PlayerJoin(oid, raceHandle);
Text_Send(playerid, "PUTINRACE_ADDED_MSG");
return 1;
}
Znam da puno vas nije upoznato nimalo sa YSI-om, ali eto tko je dobro ce mu doc.. Sa ovih 5 komanda moci cete praviti race u igri te brze i efikasnije od GodFather nacina..
Napomena[:]
varijable "oid" i "raceHandle" su globalne...
Underboss
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
667
Postovi:
12
Teme:
Pridružio se:Maj 2009
29. Avg. 2009.
Chrome wrote on August 29, 2009, 11:25 pm:
Kako napraviti race-u u YSI-u?
Sve sto vam treba je sljedece:
Znam da puno vas nije upoznato nimalo sa YSI-om, ali eto tko je dobro ce mu doc.. Sa ovih 5 komanda moci cete praviti race u igri te brze i efikasnije od GodFather nacina..
Napomena[:]
varijable "oid" i "raceHandle" su globalne...
Sve sto vam treba je sljedece:
Command_(setuprace)
{
new
rLaps,
rEntry,
rCountdown,
rExitTime,
rInterior,
rWorld;
if(sscanf(params, "dddddd", rLaps, rEntry, rCountdown, rExitTime, rInterior, rWorld))
{
Text_Send(playerid, "SETUPRACE_USAGE_MSG");
return 0;
}
raceHandle = Race_Create();
Race_SetFixedWin(raceHandle, 0);
Race_SetArial(raceHandle, 0);
Race_SetCountdown(raceHandle, rCountdown);
Race_SetInterior(raceHandle, rInterior);
Race_SetWorld(raceHandle, rWorld);
Race_SetExitTime(raceHandle, rExitTime);
Race_SetLaps(raceHandle, rLaps);
Race_SetEntry(raceHandle, rEntry);
Text_Send(playerid, "SETUPRACE_INFO1_MSG");
Text_Send(playerid, "SETUPRACE_INFO2_MSG");
Text_Send(playerid, "SETUPRACE_INFO3_MSG");
Text_Send(playerid, "SETUPRACE_INFO4_MSG");
return 1;
}
Command_(setstart)
{
#pragma unused params
new
Float: startX,
Float: startY,
Float: startZ,
Float: startA;
GetPlayerPos(playerid, startX, startY, startZ);
GetPlayerFacingAngle(playerid, startA);
if(Race_AddStart(raceHandle, startX, startY, startZ, startA) == RACE_NO_CHECKPOINT)
{
Text_Send(playerid, "SETSTART_FAIL_MSG");
return 0;
}
return 1;
}
Command_(setcheck)
{
#pragma unused params
new
Float: checkX,
Float: checkY,
Float: checkZ;
GetPlayerPos(playerid, checkX, checkY, checkZ);
if(Race_AddCheckpoint(raceHandle, checkX, checkY, checkZ) == RACE_NO_CHECKPOINT)
{
Text_Send(playerid, "SETCHECK_FAIL_MSG");
return 0;
}
return 1;
}
Command_(startrace)
{
#pragma unused params
Race_Start(raceHandle);
Text_Send(playerid, "STARTRACE_STARTED_MSG");
return 1;
}
Command_(putinrace)
{
if(sscanf(params, "u", oid))
{
Text_Send(playerid, "PUTINRACE_USAGE_MSG");
return 0;
}
Race_PlayerJoin(oid, raceHandle);
Text_Send(playerid, "PUTINRACE_ADDED_MSG");
return 1;
}
Znam da puno vas nije upoznato nimalo sa YSI-om, ali eto tko je dobro ce mu doc.. Sa ovih 5 komanda moci cete praviti race u igri te brze i efikasnije od GodFather nacina..
Napomena[:]
varijable "oid" i "raceHandle" su globalne...
sto si se ti tolko napalio na taj YSI xD?
30. Avg. 2009.
zato jer sam zamrzio GF 😄
vec mi dosta kolko sam tuta napisao i pomagao oko njega a gle da YSI nekom objasnis nesto napravit treba max 4-5 funkcija i manje itd 😉
vec mi dosta kolko sam tuta napisao i pomagao oko njega a gle da YSI nekom objasnis nesto napravit treba max 4-5 funkcija i manje itd 😉
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
155
Postovi:
21
Teme:
Pridružio se:Jul 2009
31. Avg. 2009.
jel moze neko postat neki tut kako dodat da neki race ima npr. 3 kruga i npr. kad udes u zadnji CP u prvom krugu da dode taj i taj je upravo zavrsio prvi krug tog i tog race-a
PLS ljudovi pomozite 😠
PLS ljudovi pomozite 😠
31. Avg. 2009.
Razbojnik wrote on August 31, 2009, 4:11 pm:
jel moze neko postat neki tut kako dodat da neki race ima npr. 3 kruga i npr. kad udes u zatnji CP u prvom krugu da dode taj i taj je upravo zavrsio prvi krug tog i tog race-a
PLS ljudovi pomozite 😄 😠
PLS ljudovi pomozite 😄 😠
koristi malo svoj mozak, dao sam ti jednostavan race, pa ti ga razvij...
king on ti zeli da mu se da gotov race sa komandom /utrka [broj krugova], nema malo promisli pa neka nesta i sam napravi
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava