SA-MP Forums Archive
Script does not work like it have to [ REP + ] - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Script does not work like it have to [ REP + ] (/showthread.php?tid=566483)



Script does not work like it have to [ REP + ] [ EDITED.. I NEED MORE HELP ] - _GHT_MarK445 - 06.03.2015

Hi guys,

i have a problem, i am solving this one over a week now, and me and my friend, just cant solve it and make it work, like it have to, so i am turning on you guys, to help me with this.

How it works now (UNCORRECT)

If the player writes /dueljoin it moves him, to the duel(SetPlayerPos), but the duel starts immediately.



How it have to work (CORRECT)

If the first dueler, join the duel, he should be frozen. And if the second dueler join in, it should start the duel.


------------------------------------------------

So guys, if you would be enable to get a soultion, how to fix it, what is wrong with it, i would really, really appreciate it, and off course REP+ you.

Command /dueljoin:

Код:
CMD:dueljoin(playerid, params[])
{
	#pragma unused params
	if(Duelers > 1) return SendClientMessage(playerid, COLOR_GREY, "[ CHYBA ] Duel is already full.");
	SetPlayerHealth(playerid, 100);
	SetPlayerArmour(playerid, 0);
	SetPlayerVirtualWorld(playerid, 1);
	TogglePlayerControllable(playerid, 0);
	if(Dueler[0] == INVALID_PLAYER_ID) Dueler[0] = playerid;
    else if(Dueler[1] == INVALID_PLAYER_ID) Dueler[1] = playerid;
    if(Dueler[0] == playerid)
    {
        SetPlayerPos(playerid, 1869.6478,-1748.4121,5206.0859);
        new string[128];
        format(string, sizeof(string), "[ DUEL ] Player %s joined the duel, type /dueljoin to join the duel and fight with him!",GetName(playerid));
		SendClientMessageToAll(COLOR_RED, string);
	}
    if(Dueler[1] == playerid)
	{
	    SetPlayerPos(playerid, 1874.0762,-1744.3434,5206.0859);
 		new string[128];
		format(string, sizeof(string), "[ DUEL ] Player %s joined the duel, duel has started!",GetName(playerid));
  		SendClientMessageToAll(COLOR_RED, string);
		TogglePlayerControllable(playerid, 1);
		TogglePlayerControllable(Dueler[0], 1);
		GameTextForPlayer(playerid, "Duel started!", 500, 1);
	}
	return 1;
}
For any help i would be really really HAPPY!


Re: Script does not work like it have to [ REP + ] - bigboy81 - 06.03.2015

did you try to put

PHP код:
    else if(Dueler[1] == playerid)
    {
        
SetPlayerPos(playerid1874.0762,-1744.3434,5206.0859);
         new 
string[128];
        
format(stringsizeof(string), "[ DUEL ] Player %s joined the duel, duel has started!",GetName(playerid));
          
SendClientMessageToAll(COLOR_REDstring);
        
TogglePlayerControllable(playerid1);
        
TogglePlayerControllable(Dueler[0], 1);
        
GameTextForPlayer(playerid"Duel started!"5001);
    } 



Re: Script does not work like it have to [ REP + ] - _GHT_MarK445 - 06.03.2015

Could you please explain me, what did it changed? I mean, when i want to change something, i also want to know why, and what was changed. Thanks.


Re: Script does not work like it have to [ REP + ] - bigboy81 - 06.03.2015

Quote:
Originally Posted by _GHT_MarK445
Посмотреть сообщение
Could you please explain me, what did it changed? I mean, when i want to change something, i also want to know why, and what was changed. Thanks.
I changed only
PHP код:
if(Dueler[1] == playerid
to
PHP код:
else if(Dueler[1] == playerid



Re: Script does not work like it have to [ REP + ] - _GHT_MarK445 - 06.03.2015

Thx it worked.

But i added if, the player is already in the duel, he wont be enable to join again.

But, even if the player is not in the duel, it writes him message, that he is.. thx.

Код:
dcmd_dueljoin(playerid, params[])
{
	#pragma unused params
	if(Dueler[0] == playerid) return SendClientMessage(playerid, F_SEDA, "[ CHYBA ] Uћ si v dueli.");
	else if(Dueler[1] == playerid) return SendClientMessage(playerid, F_SEDA, "[ CHYBA ] Uћ si v dueli.");
	if(Duelers > 1) return SendClientMessage(playerid, F_SEDA, "[ CHYBA ] Duel je uћ plnэ.");
	SetPlayerHealth(playerid, 100);
	SetPlayerArmour(playerid, 0);
	SetPlayerVirtualWorld(playerid, 1);
	TogglePlayerControllable(playerid, 0);
	if(Dueler[0] == INVALID_PLAYER_ID) Dueler[0] = playerid;
    else if(Dueler[1] == INVALID_PLAYER_ID) Dueler[1] = playerid;
    if(Dueler[0] == playerid)
    {
        SetPlayerPos(playerid, 1869.6478,-1748.4121,5206.0859);
        new string[128];
        format(string, sizeof(string), "[ DUEL ] Hrбč %s sa pripojil do duelu, napнљ /dueljoin pre pripojenie k nemu..",GetName(playerid));
		SendClientMessageToAll(F_JAILBREAKOVA, string);
	}
    else if(Dueler[1] == playerid)
	{
	    SetPlayerPos(playerid, 1874.0762,-1744.3434,5206.0859);
 		new string[128];
		format(string, sizeof(string), "[ DUEL ] Hrбč %s sa pripojil do duelu, duel sa začal.",GetName(playerid));
  		SendClientMessageToAll(F_JAILBREAKOVA, string);
		TogglePlayerControllable(playerid, 1);
		TogglePlayerControllable(Dueler[0], 1);
		GameTextForPlayer(playerid, "duel sa zacal, do seba!", 500, 1);
	}
	return 1;
}



Re: Script does not work like it have to [ REP + ] - bigboy81 - 06.03.2015

REP + please


Re: Script does not work like it have to [ REP + ] - _GHT_MarK445 - 06.03.2015

I repped you, can you guys please help me, with problem explained above?


Re: Script does not work like it have to [ REP + ] - bigboy81 - 07.03.2015

Quote:
Originally Posted by _GHT_MarK445
Посмотреть сообщение
I repped you, can you guys please help me, with problem explained above?
No you are not because i have 2 reputation before i help you


Re: Script does not work like it have to [ REP + ] - X337 - 07.03.2015

What is reputation for? :-/
You can put this in OnPlayerDeath, so if the player in duel dead, he/she can join the duel again.
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
	if(Dueler[0] == playerid)
		Dueler[0] = INVALID_PLAYER_ID;
	else if(Dueler[1] == playerid)
		Dueler[1] = INVALID_PLAYER_ID;
	
	return 1;
}



Re: Script does not work like it have to [ REP + ] - maramizo - 07.03.2015

Quote:
Originally Posted by bigboy81
Посмотреть сообщение
REP + please
Are you serious?

Anyway, @OT, can you show me the declarations for "Dueler" and "Duelers"?