Jump to content

CreateVehicle přes příkaz


Skemr

Recommended Posts

Zdravím, dávám sem Tutorial, ktery vám bude zapisovat do souboru CreateVehicle(....); po napsání příkazu.

 

Je to něco jako když dáte na serveru /save, tak se vám uloží AddStaticVehicle(...);

Jenomže tohle má výhodu v tom, že každé auto může mít pokaždé jinou barvu, nebo stejnou, to si nastavíte už sami a druhá výhoda je, že si nastavíte za jak dlouho se znovu respawne.Doufám že se vám to bude někomu hodit.

 

Takže začneme:

#include //includ
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1//definice dcmd
#define B 0x3AC4C3AA//barva
#define SFS "SFS.txt"//soubor

//tady potřebné newy pro string a souradnice
new Float:x, Float:y, Float:z, Float:f;
new s[256];

 

Dále si dáme do OnPlayerCommandText příkaz:

public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(scv, 3, cmdtext);
return 0;
}

 

Teď si uděláme funkci pro ukládání:

 

stock SaveSS(st[])
{
   new File:SS = fopen(SFS, io_append);
   if(SS)
   {
   	fwrite(SS, st);
   	fclose(SS);
}
}

 

A teď samotný příkaz:

 

dcmd_scv(playerid, params[])
{
#pragma unused params
new car[2];//proměná: pro první zjistí jaké auto a druhé zjistí model
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, B, "Musíš být ve vozidle!");//podmínka že hráč musí být ve vozidle
car[0] = GetPlayerVehicleID(playerid);//vezmem auto
car[1] = GetVehicleModel(car[0]);//vezmem model
GetVehiclePos(car[0], x, y, z);//vezmem pozici
GetVehicleZAngle(car[0], f);//vezmem uhel natočení auta
format(s, sizeof(s), "CreateVehicle(%d, %f, %f, %f, %f, random(150), random(150), 86400); //%s \r\n", car[1], x, y, z, f, params);//tady formát kde si upravíte čas spawnu(tady je 24hodin(86400sekund)), barvu(v tomto případě tam je random, aby byly barvy pokaždé jiné)
SaveSS(s);//a uložíme
SendClientMessage(playerid, B, "Save !");//Zpráva
return 1;
}

 

Doufám že se vám můj Tut líbí a že ho využijete, dá se předělat na jakoukoli jinou funkci.

 

Diky :)

Link to comment
Share on other sites

Zdravím, dávám sem Tutorial, ktery vám bude zapisovat do souboru CreateVehicle(....); po napsání příkazu.

 

Je to něco jako když dáte na serveru /save, tak se vám uloží AddStaticVehicle(...);

Jenomže tohle má výhodu v tom, že každé auto může mít pokaždé jinou barvu, nebo stejnou, to si nastavíte už sami a druhá výhoda je, že si nastavíte za jak dlouho se znovu respawne.Doufám že se vám to bude někomu hodit.

 

Takže začneme:

#include //includ
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1//definice dcmd
#define B 0x3AC4C3AA//barva
#define SFS "SFS.txt"//soubor

//tady potřebné newy pro string a souradnice
new Float:x, Float:y, Float:z, Float:f;
new s[256];

 

Dále si dáme do OnPlayerCommandText příkaz:

public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(scv, 3, cmdtext);
return 0;
}

 

Teď si uděláme funkci pro ukládání:

 

stock SaveSS(st[])
{
   new File:SS = fopen(SFS, io_append);
   if(SS)
   {
   	fwrite(SS, st);
   	fclose(SS);
}
}

 

A teď samotný příkaz:

 

dcmd_scv(playerid, params[])
{
#pragma unused params
new car[2];//proměná: pro první zjistí jaké auto a druhé zjistí model
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, B, "Musíš být ve vozidle!");//podmínka že hráč musí být ve vozidle
car[0] = GetPlayerVehicleID(playerid);//vezmem auto
car[1] = GetVehicleModel(car[0]);//vezmem model
GetVehiclePos(car[0], x, y, z);//vezmem pozici
GetVehicleZAngle(car[0], f);//vezmem uhel natočení auta
format(s, sizeof(s), "CreateVehicle(%d, %f, %f, %f, %f, random(150), random(150), 86400); //%s \r\n", car[1], x, y, z, f, params);//tady formát kde si upravíte čas spawnu(tady je 24hodin(86400sekund)), barvu(v tomto případě tam je random, aby byly barvy pokaždé jiné)
SaveSS(s);//a uložíme
SendClientMessage(playerid, B, "Save !");//Zpráva
return 1;
}

 

Doufám že se vám můj Tut líbí a že ho využijete, dá se předělat na jakoukoli jinou funkci.

 

Diky :)

 

format(s, sizeof(s), "Tu By som si dal TAB aby som to potom nemusel robiťCreateVehicle(%d, %f, %f, %f, %f, random(150), random(150), 86400); //%s \r\n", car[1], x, y, z, f, params);

nevieš zistiť farbu ?

no nič moc lepšie by to bolo cez klavesy...

Link to comment
Share on other sites

Jj, good TUT ale nema byt u toho returnu tohle: ;

 

#include //includ

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1;//definice dcmd

#define B 0x3AC4C3AA//barva

#define SFS "SFS.txt"//soubor

 

jenom se ptam...

Link to comment
Share on other sites

Jj, good TUT ale nema byt u toho returnu tohle: ;

 

#include //includ

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1;//definice dcmd

#define B 0x3AC4C3AA//barva

#define SFS "SFS.txt"//soubor

 

jenom se ptam...

 

podle me to ma dobře protoze asi nikdo tuto definici nezna na spamet :d takze COPY se urcite nesplete ;) (muj nazor)

Link to comment
Share on other sites

  • 8 months later...
  • Administrátor

mod.pwn(97) : error 017: undefined symbol "dcmd"

mod.pwn(258) : warning 203: symbol is never used: "dcmd_scv"

tohle mi to hazi co stim sem v pwn zacatecni takze pokudje to neco uplne jasnyhotak sorry

Link to comment
Share on other sites

Guest [BJ]boban88

to si daj niekam hore

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...