clickedplayerid
#1

So I want to use clickedplayerid outside the onplayerclickplayer thing. but how?
red color = error

Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(response)//Ze hebben op ok gedrukt
    {
        switch(dialogid)//als je maar 1 dialog gebruikt is dit niet nodig, maar je weet maar nooit
        {
	    case 1://onze dialog
    	    {
           	switch(listitem)//welk item is gekozen
        	{
        	    case 0://Kick
        	    {
					Kick(clickedplayerid);
        	    }
        	    case 1://Ban
        	    {
        	        if(GetPlayerMoney(playerid) < 2) return SendClientMessage(playerid, 0xFFFFFF, "Je hebt niet genoeg geld.");
        	        GivePlayerMoney(playerid, -2);
        	        SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
        	    }
        	    case 2://Mute
        	    {
        	        if(GetPlayerMoney(playerid) < 3) return SendClientMessage(playerid, 0xFFFFFF, "Je hebt niet genoeg geld.");
        	        GivePlayerMoney(playerid, -3);
        	        SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE);
        	    }
        	}
    	    }
	}
    }
return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    if(IsPlayerAdmin(playerid)) ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Dialog Admin by PhantomCraft", "Kick\nBan\nMute", "Confirm", "Cancel7");
	else SendClientMessage (playerid, -1, "ERROR: You are not an admin.");
	return 1;
}
Reply
#2

store in a var!
Reply
#3

Quote:
Originally Posted by [ISS]jumbo
Посмотреть сообщение
store in a var!
How?
Reply
#4

pawn Код:
// top

new ClickedPlayer[MAX_PLAYERS];

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(response)//Ze hebben op ok gedrukt
    {
        switch(dialogid)//als je maar 1 dialog gebruikt is dit niet nodig, maar je weet maar nooit
        {
        case 1://onze dialog
            {
            switch(listitem)//welk item is gekozen
            {
                case 0://Kick
                {
                    Kick(ClickedPlayer[playerid]); // we use our (ClickedPlayer) varible were is saved player id from OnPlayerClickPlayer
                }
                case 1://Ban
                {
                    if(GetPlayerMoney(playerid) < 2) return SendClientMessage(playerid, 0xFFFFFF, "Je hebt niet genoeg geld.");
                    GivePlayerMoney(playerid, -2);
                    SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
                }
                case 2://Mute
                {
                    if(GetPlayerMoney(playerid) < 3) return SendClientMessage(playerid, 0xFFFFFF, "Je hebt niet genoeg geld.");
                    GivePlayerMoney(playerid, -3);
                    SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE);
                }
            }
            }
    }
    }
return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    if(IsPlayerAdmin(playerid)
    {
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Dialog Admin by PhantomCraft", "Kick\nBan\nMute", "Confirm", "Cancel7");
        ClickedPlayer[playerid] = clickedplayerid;
    }
    else SendClientMessage (playerid, -1, "ERROR: You are not an admin.");
    return 1;
}
Edit: thanks [ISS]jumbo for point it , but both way works but :
  • mine have downside that will overwrite old value when other admin use onplayerclick callback
  • Your save it on playerid wich is great and wil not conflict wich other admins online
  • ... as he need that var only to show clicked id for dialog and not everyone is admin there is noo need to use max_players varible and mine should do same work as your
Reply
#5

Example

when you click player you store clickedplayerid in a player variable

pawn Код:
PlayerVar[playerid] = clickedplayerid;
in dialog you kick the player by reading the playervar
pawn Код:
Kick(PlayerVar[playerid]);

you can create the playervar like this
pawn Код:
new PlayerVar[MAX_PLAYERS];



dear Doreto.. your var is not per player var
Reply
#6

Or you format it into the dialog
pawn Код:
public OnPlayerClickPlayer(playerid, clickedplayerid, source) {
    if(IsPlayerAdmin(playerid) {
        new
            tmp[64]
        ;
        format(tmp, sizeof tmp, "Kick %d\nBan %d\nMute %d", clickedplayerid, clickedplayerid, clickedplayerid);
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Dialog Admin by PhantomCraft", tmp, "Confirm", "Cancel");
    }
    return true;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
    switch(dialogid) {
        case 1: {
            if(response) {
                switch(listitem) {
                    case 0: Kick(strval(inputtext[5]));
                    case 1: Ban(strval(inputtext[4]));
                    case 2: Mute(strval(inputtext[5])); // fictional function
                }
            }
        }
    }
    return true;
}
Reply
#7

Quote:
Originally Posted by Nero_3D
Посмотреть сообщение
Or you format it into the dialog
pawn Код:
public OnPlayerClickPlayer(playerid, clickedplayerid, source) {
    if(IsPlayerAdmin(playerid) {
        new
            tmp[64]
        ;
        format(tmp, sizeof tmp, "Kick %d\nBan %d\nMute %d", clickedplayerid, clickedplayerid, clickedplayerid);
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Dialog Admin by PhantomCraft", tmp, "Confirm", "Cancel");
    }
    return true;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
    switch(dialogid) {
        case 1: {
            if(response) {
                switch(listitem) {
                    case 0: Kick(strval(inputtext[5]));
                    case 1: Ban(strval(inputtext[4]));
                    case 2: Mute(strval(inputtext[5]));
                }
            }
        }
    }
    return true;
}
what about if playerid is more than 1 chars or 2 chars?
Reply
#8

Quote:
Originally Posted by [ISS]jumbo
Посмотреть сообщение
what about if playerid is more than 1 chars or 2 chars?
There shouldn't be a problem since tmp is 64 cells big...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)