Jump to content

Warpy cez dialóg + Warpy cez príkaz [Very Easy]


Fr0st

Recommended Posts

Zdravím , všimol som si že veľa uživateľov chce mať na servery warpy ale nevedia ako na to ,tak som sa rozhodol spraviť na to TuT..

 

Začneme s DIALÓGMI :

 

public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(warpy,5,cmdtext);
return 0;
}

 

========================================

 

Vysvetlenie dcmd(warpy,5,cmdtext); ::

 

warpy - Názov príkazu

 

5 - Počet písmen ktorý ma príkaz

 

cmdtext - znamená že je to cmd ...

 

========================================

 

Potom pôjdeme na príkaz takže :

 

dcmd_warpy(playerid,params[])
{
      #pragma unused params
      ShowPlayerDialog(playerid,ID DIALÓGU,STYLE,"Nadpis","Položka 1\nPoložka 2\nPoložka 3","Response 1","Response 2");
      return 1;
}

 

========================================

 

Vysvetlenie #pragma unused params a ShowPlayerDialog(playerid,ID DIALÓGU,STYLE,"Nadpis","Položka 1\nPoložka 2\nPoložka 3","Response 1","Response 2"); ::

 

 

#pragma unused params - zruší params takže nebude to príkaz /warpy ID ale len /warpy

 

playerid - Hráč ktorému ukáže dialóg(hráč ktorý napíše /warpy)

 

ID DIALÓGU - Môže by hocijaká číslica (Ale pozor nemôžu byť 2 čisla také isté napr.ShowPlayerDialog(playerid,250,.......) toto je prvý dialóg

ShowPlayerDialog(playerid,250,.......) druhý dialóg .. takto to nemôže byť pretože by sa zjednocovali napr . klikneš na warpy a otvorí car systém ..

 

STYLE - poznáme 4 štýly (DIALOG_STYLE_LIST,DIALOG_STYLE_MSGBOX,DIALOG_STYLE_INPUT,DIALOG_STYLE_PASSWORD),

my budeme používať DIALOG_STYLE_LIST

 

"Nadpis" - je to čo je úplne hore v dialógu

 

"Položka 1-3" - Sú položky .. Napr . San Fierro\nLos Santos\nLas Venturas

 

"Response 1" - Tlačidlo 1

 

"Response 2" - Tlačidlo 2

 

========================================

 

Teraz pôjdeme na najhlavnejšiu časť OnDialogResponse :

 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
       if(dialogid == ID DIALÓGU)
{
if(response == 1)
{
if(listitem == 0)
{
new string[128];
format(string,sizeof(string),"Hráč %s sa odwarpoval na Položku 1 !",PlayerName(playerid));
SetPlayerPos(playerid,X,Y,Z);
SendClientMessage(playerid,FARBA,"Odwarpoval si sa na coordináty X,Y,Z");
SendClientMessageToAll(FARBA,string);
}
else if(listitem == 1)
{
new string[128];
format(string,sizeof(string),"Hráč %s sa odwarpoval na Položku 2 !",PlayerName(playerid));
SetPlayerPos(playerid,X,Y,Z);
SendClientMessage(playerid,FARBA,"Odwarpoval si sa na coordináty X,Y,Z");
SendClientMessageToAll(FARBA,string);
}
else if(listitem == 2)
{
new string[128];
format(string,sizeof(string),"Hráč %s sa odwarpoval na Položku 3 !",PlayerName(playerid));
SetPlayerPos(playerid,X,Y,Z);
SendClientMessage(playerid,FARBA,"Odwarpoval si sa na coordináty X,Y,Z");
SendClientMessageToAll(FARBA,string);
}
}
}

return 1;
}

 

========================================

 

Vysvetlenie OnDialogResponse... ::

 

if(dialogid == ID DIALÓGU) - Sem dáme ID dialógu ktorý sme si dali v ShowPlayerDialog...

 

if(response == 1) - znamená že keď stlačíme Tlačítko 1 tak urobí akciu ak chcete tlačítko 2 (pravé) tak if(response == 2)

 

if(listitem == 0) - toto je úplne prvý listitem v našom prípade Položka 1

 

new string[128]; - nanewujeme string

 

format(string,sizeof(string),"Hráč %s sa odwarpoval na Položku 1 !",PlayerName(playerid)); - Naformatujeme správu (Namiesto PlayerName(playerid) si dajte svoje .. Napr Jmeno(playerid),Meno(playerid))

 

SetPlayerPos(playerid,X,Y,Z); - toto znamená že dá hráča na miesto (X,Y,Z zistíme v hre zadaním príkazu /save niečo , potom to nájdete v san andreas userfiles v savedposition.txt)

 

SendClientMessage(playerid,FARBA,"Odwarpoval si sa na coordináty X,Y,Z"); -odošle správu tomu kto sa odwarpoval

 

SendClientMessageToAll(FARBA,string); - Odošle naformatovanú správu string

 

if(listitem == 1) - toto je druhý listitem v našom prípade Položka 2

 

// Na listitem 1 je to tak isto ako na listitem 0

 

if(listitem == 2) - toto je tretí listitem v našom prípade Položka 3

 

// Na listitem 2 je to tak isto ako na listitem 0

========================================

 

To je všetko z dialógmi teraz na príkazy

 

Príkazy :

 

public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(sf,2,cmdtext);
return 0;
}

 

========================================

 

Vysvetlenie dcmd(sf,5,cmdtext); ::

 

sf - Názov príkazu

 

2 - Počet písmen ktorý ma príkaz

 

cmdtext - znamená že je to cmd ...

 

========================================

 

Potom pôjdeme na príkaz takže :

 

dcmd_sf(playerid,params[])
{
       #pragma unused params
      new string[128];
format(string,sizeof(string),"Hráč %s sa odwarpoval Do SF !",PlayerName(playerid));
SetPlayerPos(playerid,X,Y,Z);
SendClientMessage(playerid,FARBA,"Odwarpoval si sa na coordináty X,Y,Z");
SendClientMessageToAll(FARBA,string);
      return 1;
}

 

========================================

 

Vysvetlenie príkazu dcmd_sf(playerid,params[])

 

#pragma unused params - zruší params takže nebude to príkaz /warpy ID ale len /warpy

 

new string[128]; - nanewujeme string

 

format(string,sizeof(string),"Hráč %s sa odwarpoval na Položku 1 !",PlayerName(playerid)); - Naformatujeme správu (Namiesto PlayerName(playerid) si dajte svoje .. Napr Jmeno(playerid),Meno(playerid))

 

SetPlayerPos(playerid,X,Y,Z); - toto znamená že dá hráča na miesto (X,Y,Z zistíme v hre zadaním príkazu /save niečo , potom to nájdete v san andreas userfiles v savedposition.txt)

 

SendClientMessage(playerid,FARBA,"Odwarpoval si sa na coordináty X,Y,Z"); -odošle správu tomu kto sa odwarpoval

 

SendClientMessageToAll(FARBA,string); - Odošle naformatovanú správu string

 

========================================

 

To je všetko dúfam že sa Mini & easy TuT páči :);)

 

PS : Možno tam bude nejaká chyba .. :d

Link to comment
Share on other sites

ono je zbytočné robiť takto warpy, stráta času a veľa miesta to zaberá, ono by bolo lepšie spraviť rovno warp systém ako takto sa s týmto srať

 

inak tutu je pekný ale zbvytočný pre mňa, možno to niekomu pomôže :d

Link to comment
Share on other sites

ono je zbytočné robiť takto warpy, stráta času a veľa miesta to zaberá, ono by bolo lepšie spraviť rovno warp systém ako takto sa s týmto srať

 

inak tutu je pekný ale zbvytočný pre mňa, možno to niekomu pomôže :d

 

jj warp systém je naj ale nováčikovia ešte také veci nevedia oni robia len takto .. :d a toto je tiež 100 % funkčné .. :d

Link to comment
Share on other sites

  • 3 weeks later...

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...