Jump to content
  • 0

Problema /invite


Reflex

Question

Problema intalnita (descriere): Cand invit un player in gang, ii apare dialog cu accept sau decline. Cand apasa pe accept ii arata mesajul "You have joined X gang! Dar nu il adauga sau daca e sa il adauge il pune rank 1 in alt gang, nu in cel care trebuie.  Cum pot rezolva?

Ero(area / rile) / warning-(ul / urile): Nu sunt erori sau warning-uri.
Liniile de cod / sursa / script-ul(obligatoriu): Este din gamemod-ul ESS.

CMD:invite(playerid, params[])
{
    eQuery[0] = EOS; eString[0] = EOS;
    //--------------------------------------------------------------------------
    if(PlayerInfo[playerid][GangID] != 0)
    {
		if(PlayerInfo[playerid][g_Rank] > 2)
		{
		    new Player;
		    //------------------------------------------------------------------
			if(sscanf(params, "u", Player)) return SendUsage(playerid, "/Invite [PlayerID]");
		    if(!IsPlayerConnected(Player)) return SendError(playerid, "Player not connected.");
			//if(PlayerInfo[Player][ClanID] != 0) return SendError(playerid, "Player is in a clan!");
			if(PlayerInfo[Player][GangID] != 0) return SendError(playerid, "The user is in other gang!");
			if(GangInfo[PlayerInfo[playerid][GangID]][TotalMembers] >= GangInfo[PlayerInfo[playerid][GangID]][MaxMembers]) return
			SendError(playerid, "Your gang way reached your maximum limit for members.");
		   	//--------------------------------------------------------------------------
			PlayerInfo[playerid][Invite] = Player;
			//--------------------------------------------------------------------------
			format(eString, sizeof(eString), "{FFFFFF}You have been invited in {FF0000}%s {FFFFFF}gang, by {FF0000}%s.\n\
		  									    \n\
												{33AA33}- Members: {FF0000}%d\n", GangInfo[PlayerInfo[playerid][GangID]][GangName], PlayerName(playerid),GangInfo[PlayerInfo[playerid][GangID]][TotalMembers]);
			format(eString, sizeof(eString), "%s{33AA33}- Captures: {FF0000}%d\n\
												{33AA33}- Gang Points: {FF0000}%d\n\
											    \n\
												{FFFFFF}Click on '{FF0000}Accept{FFFFFF}' button if you accept, or '{FF0000}Decline{FFFFFF}' if you decline invitation", eString, GangInfo[PlayerInfo[playerid][GangID]][Captures], GangInfo[PlayerInfo[playerid][GangID]][Points]);
			//--------------------------------------------------------------------------
			return ShowPlayerDialog(Player, DIALOG_GANGINVITE, DIALOG_STYLE_MSGBOX, "Gang Invite", eString, "Accept", "Decline");
		}
		else return SendError(playerid, "You need to be rank 2 to use this command");
	}	




	case DIALOG_GANGINVITE:
	    {
			if(response)
			{
				new inviter_id = PlayerInfo[playerid][Invite]; eString[0] = EOS;
				//--------------------------------------------------------------
			    PlayerInfo[playerid][GangID] = PlayerInfo[inviter_id][GangID], PlayerInfo[playerid][g_Rank] = 1, SetupPlayerForGang(playerid, PlayerInfo[playerid][GangID]);
	            //--------------------------------------------------------------
				format(eString, sizeof(eString), "{FF0000}%s {FFFF00}has joined your gang!", PlayerName(playerid)), SendGangMessage(PlayerInfo[playerid][GangID], eString);
			    //--------------------------------------------------------------
			    format(eString, sizeof(eString), "~w~You have joined ~g~~h~%s ~w~gang!", GangInfo[PlayerInfo[playerid][GangID]][GangName]);
				Announce(playerid, eString, 3000, 4), GangInfo[PlayerInfo[inviter_id][GangID]][TotalMembers]++, OnUpdate();
				format(eQuery, sizeof(eQuery), "UPDATE `Gangs` SET `GangMembers` = `GangMembers` WHERE `ID` = %d", PlayerInfo[playerid][GangID], GangInfo[PlayerInfo[playerid][GangID]][GangName]);
     			mysql_tquery(DB_Connect, eQuery, "", "" );
			}
			return 1;
	    }


Imagini / Video (optional):
Ati incercat sa rezolvati singur?: Desigur.

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 2

 Tot nu merge. Ma fac lider la un gang, ii dau invite. Da accept, si il baga in gang.
 Daca ies si intru in alt gang, ii dau dinnou invite si nu il mai adauga in niciun clan.
 A incercat sa ma ajute si un tip, si mi-a modificat asta:
 

				format(eQuery, sizeof(eQuery), "UPDATE `Gangs` SET `GangMembers` = '%d'  WHERE `ID` = %d", GangInfo[PlayerInfo[inviter_id][GangID]][TotalMembers] , PlayerInfo[playerid][GangID] );
     			mysql_tquery(DB_Connect, eQuery, "", "" );

 

A iesit din vechiul clan, ca sa intre in altu?

 

1859311972_BANNER-GIREADAcopy-min.thumb.png.48e5e420ae2185dce5b244965a1d2601.png

 

Link to comment
Share on other sites

  • 1

ID-ul gang-ului se stoca foarte prost pe 

PlayerInfo[playerid][Invite] = Player;

Ti l-am facut eu

CMD:invite(playerid, params[])
{
    eQuery[0] = EOS; eString[0] = EOS;
    //--------------------------------------------------------------------------
    if(PlayerInfo[playerid][GangID] != 0)
    {
		if(PlayerInfo[playerid][g_Rank] > 2)
		{
		    new Player;
		    //------------------------------------------------------------------
			if(sscanf(params, "u", Player)) return SendUsage(playerid, "/Invite [PlayerID]");
		    if(!IsPlayerConnected(Player)) return SendError(playerid, "Player not connected.");
			//if(PlayerInfo[Player][ClanID] != 0) return SendError(playerid, "Player is in a clan!");
			if(PlayerInfo[Player][GangID] != 0) return SendError(playerid, "The user is in other gang!");
			if(GangInfo[PlayerInfo[playerid][GangID]][TotalMembers] >= GangInfo[PlayerInfo[playerid][GangID]][MaxMembers]) return
			SendError(playerid, "Your gang way reached your maximum limit for members.");
		   	//--------------------------------------------------------------------------
			PlayerInfo[playerid][Invite] = Player;
			InvitedGang[Player] = PlayerInfo[playerid][GangID];
			//--------------------------------------------------------------------------
			format(eString, sizeof(eString), "{FFFFFF}You have been invited in {FF0000}%s {FFFFFF}gang, by {FF0000}%s.\n\
		  									    \n\
												{33AA33}- Members: {FF0000}%d\n", GangInfo[PlayerInfo[playerid][GangID]][GangName], PlayerName(playerid),GangInfo[PlayerInfo[playerid][GangID]][TotalMembers]);
			format(eString, sizeof(eString), "%s{33AA33}- Captures: {FF0000}%d\n\
												{33AA33}- Gang Points: {FF0000}%d\n\
											    \n\
												{FFFFFF}Click on '{FF0000}Accept{FFFFFF}' button if you accept, or '{FF0000}Decline{FFFFFF}' if you decline invitation", eString, GangInfo[PlayerInfo[playerid][GangID]][Captures], GangInfo[PlayerInfo[playerid][GangID]][Points]);
			//--------------------------------------------------------------------------
			return ShowPlayerDialog(Player, DIALOG_GANGINVITE, DIALOG_STYLE_MSGBOX, "Gang Invite", eString, "Accept", "Decline");
		}
		else return SendError(playerid, "You need to be rank 2 to use this command");
	}	
	case DIALOG_GANGINVITE:
	    {
			if(response)
			{
				new inviter_id = InvitedGang[playerid]; eString[0] = EOS;
				//--------------------------------------------------------------
			    PlayerInfo[playerid][GangID] = PlayerInfo[inviter_id][GangID], PlayerInfo[playerid][g_Rank] = 1, SetupPlayerForGang(playerid, PlayerInfo[playerid][GangID]);
	            //--------------------------------------------------------------
				format(eString, sizeof(eString), "{FF0000}%s {FFFF00}has joined your gang!", PlayerName(playerid)), SendGangMessage(PlayerInfo[playerid][GangID], eString);
			    //--------------------------------------------------------------
			    format(eString, sizeof(eString), "~w~You have joined ~g~~h~%s ~w~gang!", GangInfo[PlayerInfo[playerid][GangID]][GangName]);
				Announce(playerid, eString, 3000, 4), GangInfo[PlayerInfo[inviter_id][GangID]][TotalMembers]++, OnUpdate();
				format(eQuery, sizeof(eQuery), "UPDATE `Gangs` SET `GangMembers` = `GangMembers` WHERE `ID` = %d", PlayerInfo[playerid][GangID], GangInfo[PlayerInfo[playerid][GangID]][GangName]);
     			mysql_tquery(DB_Connect, eQuery, "", "" );
			}
			return 1;
	    }

 

Iar la inceputul gamemode-ului definesti o noua variabila

new InvitedGang[MAX_PLAYERS];

Iar la OnPlayerConnect pui 

InviteGang[playerid] = -1;

  

 

1859311972_BANNER-GIREADAcopy-min.thumb.png.48e5e420ae2185dce5b244965a1d2601.png

 

Link to comment
Share on other sites

  • -1
(596) : error 017: undefined symbol "InviteGang"
(596) : warning 215: expression has no effect
(596) : error 001: expected token: ";", but found "]"
(596) : error 029: invalid expression, assumed zero
(596) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664              Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.

 

Link to comment
Share on other sites

  • -1

 Tot nu merge. Ma fac lider la un gang, ii dau invite. Da accept, si il baga in gang.
 Daca ies si intru in alt gang, ii dau dinnou invite si nu il mai adauga in niciun clan.
 A incercat sa ma ajute si un tip, si mi-a modificat asta:
 

				format(eQuery, sizeof(eQuery), "UPDATE `Gangs` SET `GangMembers` = '%d'  WHERE `ID` = %d", GangInfo[PlayerInfo[inviter_id][GangID]][TotalMembers] , PlayerInfo[playerid][GangID] );
     			mysql_tquery(DB_Connect, eQuery, "", "" );

 

Link to comment
Share on other sites

  • -1

Desigur, daca nu ar fi iesit imi spunea "this player is in another gang". 

Comanda sa ma fac(sau sa fac pe cineva) lider merge perfect . Daca e nevoie de orice linie din cod, sau comanda makeleader o pun.

Edited by Reflex
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.