SA-MP Forums Archive
[Include] Citation - Citando jogadores - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Include] Citation - Citando jogadores (/showthread.php?tid=656570)



Citation - Citando jogadores - F1N4L - 18.07.2018

Mention.inc
Sobre:
Referente a um tуpico de ajuda resolvi fazer esta include, pois achei interessante o propуsito da mesma e... nгo tinha nada melhor para fazer.


Objetivo:
Esta include tem como objetivo realizar citaзхes no chat como o Discord.


Configuraзгo:
Код:
MAX_MENTION = Nъmero mбximo de citaзхes que serгo processadas em uma string.
BLOCKED_MENTION_TEXT = String/Char que serб mostrado na citaзгo de um jogador que  foi bloqueado por outro.
Funзхes:
Realiza a citaзгo.
PHP код:
GetMention(str[], out_str[], playerid INVALID_PLAYER_ID
Parвmetros:
str = String que contenha citaзхes.
out_str = String que serб passada por referкncia com as modificaзхes de citaзгo.
playerid = Parвmetro opcional. Caso este parвmetro seja utilizado, a callback OnPlayerCitePlayer serб chamada.

Bloqueia um jogador, impedindo que o mesmo o mencione na mensagem.
PHP код:
PlayerBlockPlayerMention(playeridtargetidbool:toggle
Parвmetros:
playerid = ID do jogador que irб bloquear.
targetid = ID do jogador que serб bloqueado.
bool:toggle = True para bloquear um jogador e False para desbloquear.

Retorna True se o playerid bloqueou o targetid e False caso contrбrio.
PHP код:
IsPlayerBlockedMentionForPlayer(playeridtargetid
Parвmetros:
playerid = ID do jogador que bloqueou.
targetid = ID do jogador que foi bloqueado.


Callback's:
Chamado quando um jogador cita outro. (Apenas os jogadores que nгo foram bloquados.)
PHP код:
OnPlayerMentionPlayer(playeridcitedidbool:blocked
Parвmetros:
playerid = ID do jogador que realizou a citaзгo.
citedid = ID do jogador citado.
bool:blocked = True caso o jogador (citedid) esteja bloqueado e False caso contrбrio.


Download:
Link

Crйditos:
SAMP Team
F1N4L


Re: Citation - Citando jogadores - BrunoBM23 - 18.07.2018

PHP код:
static stock IsNumber(str[]) 
A funзгo й interna e й utilizada, vocк nгo precisa da keyword stock. https://sampforum.blast.hk/showthread.php?tid=570635

PHP код:
forward OnPlayerCitePlayer(playeridcitedid);
forward OnPlayerCiteBlockedPlayer(playeridcitedid);
if(
playerid != INVALID_PLAYER_ID)
{
    if(
blockedPlayer[id][playerid])
        
OnPlayerCiteBlockedPlayer(playeridid);
    else
        
OnPlayerCitePlayer(playeridid);

Nгo vejo a necessidade de duas callbacks. Vocк mesmo jб providenciou uma funзгo para verificar se o jogador estб bloqueado.

O nome da include e das callbacks й meio ambнguo, OnPlayerTagPlayer ou OnPlayerMentionPlayer ficaria melhor.


Re: Citation - Citando jogadores - F1N4L - 18.07.2018

Quote:
Originally Posted by BrunoBM23
Посмотреть сообщение
PHP код:
static stock IsNumber(str[]) 
A funзгo й interna e й utilizada, vocк nгo precisa da keyword stock. https://sampforum.blast.hk/showthread.php?tid=570635
Keyword removida.


Quote:
Originally Posted by BrunoBM23
Посмотреть сообщение
PHP код:
forward OnPlayerCitePlayer(playeridcitedid);
forward OnPlayerCiteBlockedPlayer(playeridcitedid);

if(
playerid != INVALID_PLAYER_ID)
{
    if(
blockedPlayer[id][playerid])
        
OnPlayerCiteBlockedPlayer(playeridid);
    else
        
OnPlayerCitePlayer(playeridid);

Nгo vejo a necessidade de duas callbacks. Vocк mesmo jб providenciou uma funзгo para verificar se o jogador estб bloqueado.
Tem razгo. Reformulei e fiz em uma sу, adicionando um parвmetro booleano que retorna se o jogador estб bloqueado para outro.


Quote:
Originally Posted by BrunoBM23
Посмотреть сообщение
O nome da include e das callbacks й meio ambнguo, OnPlayerTagPlayer ou OnPlayerMentionPlayer ficaria melhor.
Juro que pensei em usar 'Mention', mas por alguma razгo nгo o fiz.
Reformulei as nomenclaturas.