Jump to content
  • 0

pomoc Nastaveni proměné hráčí


W1nCZ

Dotaz

Dobrý den, mám malý problém s nastavováním proměné přímo hráči...

Nikde sem nenašel TuT (skoro většina stranek je nefunkční)

Tak sem to spatlal tak jak si to pamatuju.

 

Funkce:

 

Když hráč napíše /sawnjoin a neni ješte připojen (sawner == 0)

tak mu to nastaví sawner = 1 nebo 2 podle toho jestly je prvni sawner nebo jestly už je nekdo jiny pripojen

 

když promena- pripojenych dosahne hodnoty 2 (což znamena 2 hraci pripojeny)

mělo by to sawnera 1 portnout na pozicy 1 a sawner 2 na pozici 2 ...

 

Problém:

 

Když sem to testoval tak jeden hrač napsal prikaz a napsalo mu to at počka na protivnika

a když ten druhej hrac napsal prikaz napsalo mu to rovnou že uz je pripojen...

 

Podle mě chyba:

 

Mám dojem že to nastavuje hodnotu sawner obecne a ne jen tomu hráči ;)

předem děkuji za pomoc.

 

 

dcmd_sawnjoin(playerid, params[])
{
#pragma unused params
if(playerid, sawner == 0)
{
if(pripojenych == 1)
{
	 SendClientMessage(playerid, 0xFFFFFF, "Ok jdeme na to.");
pripojenych = 2;
sawner = 2;
}
if(pripojenych == 2)
{
for(new i; i < GetMaxPlayers();i++)
{
if(playerid, sawner == 1)
{
		 SetPlayerPos(playerid, 1809.9279,-1202.2104,63.9688);
}
if(playerid, sawner == 2)
{
 SetPlayerPos(playerid, 1810.9711,-1238.2440,63.9688);
}
}
}
else
{
SendClientMessage(playerid, 0xFFFFFF, "Připojil si se do sawn-off duelu. Počkej na protivníka.");
pripojenych = 1;
sawner = 1;
}
}
else
{
SendClientMessage(playerid, 0xFFFFFF, "Už si připojen.");
}
return 1;
}

Link to comment
Share on other sites

3 odpovědí na tuto otázku

Recommended Posts

  • 0

je to logicke.... Bohuzial, boli ma hlava takze ty to nedokazem vysvetlit.. Este raz si pozri vsetky premenne..

//EDIT:

if(playerid, sawner == 1)

co to kruci je? Logicky uvazuj... premenna sawner je globalna!!! Kazdy hrac ju ma tak isto! Ak si chces odkontrolovat ci si pripojeny, urob si premennu bool:hracjepripojeny[MAX_PLAYERS]; a potom zistuj hracjepripojeny[playerid] a takto..

Link to comment
Share on other sites

  • 0

je to logicke.... Bohuzial, boli ma hlava takze ty to nedokazem vysvetlit.. Este raz si pozri vsetky premenne..

//EDIT:

if(playerid, sawner == 1)

co to kruci je? Logicky uvazuj... premenna sawner je globalna!!! Kazdy hrac ju ma tak isto! Ak si chces odkontrolovat ci si pripojeny, urob si premennu bool:hracjepripojeny[MAX_PLAYERS]; a potom zistuj hracjepripojeny[playerid] a takto..

 

Jaj :) už viem moc pawno nedělám jen před nejakou dobou sem zkusil par veci a nemoch sem si vpomenout co se na to používá dik :)

Link to comment
Share on other sites

  • 0

já už pawno nedělám poměrně dlouho a spíše dělám v C++.. ale nestačilo by to udělat takto ?

 

int sawner_player_1;// někam do hlavních proměnných

int sawner;

 

dcmd_sawnjoin(playerid, params[])

{

#pragma unused params

 

if(sawner == 0)

{

sawner_player_1 = playerid;

SendClientMessage(playerid, 0xFFFFFF, "Připojil jsi se do sawn. Čekej na druhého");

sawner = 1;

}else if(sawner == 1)

{

SendClientMessage(playerid, 0xFFFFFF, "Připojil jsi se do sawn. Zničit.");

SetPlayerPos(playerid, 1809.9279,-1202.2104,63.9688);

SendClientMessage(sawner_player_1, 0xFFFFFF, "Někdo se připojil do sawn. Zabij ho!");

SetPlayerPos(sawner_player_1, 1810.9711,-1238.2440,63.9688);

}

}

 

samozřejmě pak po skončení vymazat proměnné sawner i sawner_player_1 ... nešlo by to ?

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