24.02.2014, 21:23
Sistema de Lemas
- Descriзгo
- Mнdia(Vнdeo/Print)
- Download
- Mudanзas
- Observaзхes
- Crйditos
Descriзгo
Este й um simples FilterScript, feito em poucos minutos!
Nгo vн em servidores, filterscript desse modo. O unico jeito que vi eram frases ao se conectar.
Mнdia
- Vнdeo
Download
pawn Код:
/*
____ ____
| \ / |
| \/ |
| |
| |
| |
| | > Sistema de lemas
*/
// Includes
#include a_samp
#include zcmd
// Variaveis
new
my_lema[MAX_PLAYERS][65],
bool:pLiberado[MAX_PLAYERS],
corselect[MAX_PLAYERS],
Text3D:Myam_Lema[MAX_PLAYERS]
;
// Dialogs ID's
#define myamMeuLema 100
#define myamAltLema 101
#define myamAltCor 102
// Letras
#define MIN_LETRAS 5
#define MAX_LETRAS 30
// Distвncia do lema
#define MAX_RAIO 25.0
// Cores
new NomeCores[][] =
{
{"{FFFFFF}Branco"},
{"{000000}Preto"},
{"{FF0000}Vermelho"},
{"{FFFF00}Amarelo"},
{"{FFA500}Laranja"},
{"{7D03FF}Roxo"},
{"{FF1493}Rosa"},
{"{228B22}Verde"},
{"{00FF00}Verde Claro"},
{"{0000FF}Azul"},
{"{00FFFF}Azul Claro"},
{"{A9A9A9}Cinza"}
};
new CodeCores[][11] =
{
{"FFFFFF"},
{"000000"},
{"FF0000"},
{"FFFF00"},
{"FFA500"},
{"7D03FF"},
{"FF1493"},
{"228B22"},
{"00FF00"},
{"0000FF"},
{"00FFFF"},
{"A9A9A9"}
};
// Code
public OnFilterScriptInit() return print("[Myam - Sistema de lemas] Carregado com sucesso.");
public OnFilterScriptExit() return print("[Myam - Sistema de lemas] Descarregado com sucesso.");
public OnPlayerConnect(playerid)
{
my_lema[playerid] = "{1E90FF}Nenhum";
pLiberado[playerid] = false;
corselect[playerid] = 0;
return 0;
}
public OnPlayerDisconnect(playerid)
{
Delete3DTextLabel(Myam_Lema[playerid]);
return 0;
}
// Comandos
CMD:plema(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xF58282AA, "Myam_ERRO: Vocк nгo й um administrador rcon.");
if(!strlen(params) || !isNumeric(params)) return SendClientMessage(playerid, 0x8EFF8EAA, "Myam_INFO: /pLema [playerid]");
if(!IsPlayerConnected(strval(params))) return SendClientMessage(playerid, 0xF58282AA, "Myam_ERRO: Jogador offlime.");
static
playerNome[MAX_PLAYER_NAME], String[100]
;
if(pLiberado[strval(params)] == true)
{
GetPlayerName(playerid, playerNome, MAX_PLAYER_NAME);
format(String, sizeof(String), "Myam_INFO: O administrador %s bloqueou o uso do seu lema.", playerNome);
SendClientMessage(strval(params), 0x8EFF8EAA, String);
GetPlayerName(strval(params), playerNome, MAX_PLAYER_NAME);
format(String, sizeof(String), "Myam_INFO: Vocк bloqueou o uso do lema de %s.", playerNome);
SendClientMessage(playerid, 0x8EFF8EAA, String);
pLiberado[strval(params)] = false;
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
PlayerPlaySound(strval(params), 1056, 0.0, 0.0, 0.0);
Delete3DTextLabel(Myam_Lema[strval(params)]);
}
else if(pLiberado[strval(params)] == false)
{
GetPlayerName(playerid, playerNome, MAX_PLAYER_NAME);
format(String, sizeof(String), "Myam_INFO: O administrador %s liberou o uso do seu lema.", playerNome);
SendClientMessage(strval(params), 0x8EFF8EAA, String);
GetPlayerName(strval(params), playerNome, MAX_PLAYER_NAME);
format(String, sizeof(String), "Myam_INFO: Vocк liberou o uso do lema de %s.", playerNome);
SendClientMessage(playerid, 0x8EFF8EAA, String);
pLiberado[strval(params)] = true;
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
PlayerPlaySound(strval(params), 1056, 0.0, 0.0, 0.0);
if(strcmp(my_lema[strval(params)], "{1E90FF}Nenhum", false) != 0)
{
new create3dtext[80];
format(create3dtext, sizeof(create3dtext), "{%s}%s", CodeCores[corselect[strval(params)]], my_lema[strval(params)]);
Myam_Lema[strval(params)] = Create3DTextLabel(create3dtext, -1, 0.0, 0.0, 0.0, MAX_RAIO, GetPlayerVirtualWorld(strval(params)));
Attach3DTextLabelToPlayer(Myam_Lema[strval(params)], strval(params), 0.0, 0.0, 0.4);
}
}
return 1;
}
CMD:meulema(playerid)
{
if(pLiberado[playerid] == false) return SendClientMessage(playerid, 0xF58282AA, "Myam_ERRO: Vocк nгo estб liberado para usar este comando.");
new
DialogString[250]
;
strcat(DialogString, "Alterar meu lema\n");
strcat(DialogString, "Alterar cor do meu lema\n");
strcat(DialogString, "Retirar lema");
ShowPlayerDialog(playerid, myamMeuLema, DIALOG_STYLE_LIST, "Myam_MeuLema", DialogString, "Selecionar", "Cancelar");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new
myam_String[358],
String_myam[358]
;
if(dialogid == myamMeuLema)
{
if(response)
{
if(listitem == 0)
{
format(myam_String, sizeof(myam_String), "*** Lema atual: %s\n\n", my_lema[playerid]);
strcat(String_myam, myam_String);
format(myam_String, sizeof(myam_String), "{DCDCDC}Mнnimo de letras: %d | Mбximo de letras: %d\n\n", MIN_LETRAS, MAX_LETRAS);
strcat(String_myam, myam_String);
strcat(String_myam, "- Digite abaixo o novo lema que vocк queira:");
ShowPlayerDialog(playerid, myamAltLema, DIALOG_STYLE_INPUT, "Myam_Alt. De Lema", String_myam, "Concluir", "Cancelar");
}
if(listitem == 1)
{
for(new x = 0; x < sizeof(NomeCores); x++)
{
format(myam_String, sizeof(myam_String), "%s\n", NomeCores[x]);
strcat(String_myam, myam_String);
}
ShowPlayerDialog(playerid, myamAltCor, DIALOG_STYLE_LIST, "Myam_Alt. Cor", String_myam, "Selecionar", "Cancelar");
}
if(listitem == 2)
{
my_lema[playerid] = "{1E90FF}Nenhum";
SendClientMessage(playerid, 0x8EFF8EAA, "Myam_INFO: Seu lema foi retirado com sucesso.");
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
Delete3DTextLabel(Myam_Lema[playerid]);
corselect[playerid] = 0;
}
}
}
if(dialogid == myamAltLema)
{
if(response)
{
if(!strlen(inputtext) || strval(inputtext) && isNumeric(inputtext))
return ShowPlayerDialog(playerid, myamAltLema, DIALOG_STYLE_INPUT, "Myam_Alt. De Lema", "- Somente letras:", "Concluir", "Cancelar");
if(strlen(inputtext) < MIN_LETRAS || strlen(inputtext) > MAX_LETRAS)
return ShowPlayerDialog(playerid, myamAltLema, DIALOG_STYLE_INPUT, "Myam_Alt. De Lema", "- Lema muito curto/grande.\n\nTente outro:", "Concluir", "Cancelar");
new newlema[64];
format(newlema, sizeof(newlema), "%s", inputtext);
my_lema[playerid] = newlema;
format(myam_String, sizeof(myam_String), "Myam_INFO: Seu lema foi alterado para: %s", my_lema[playerid]);
SendClientMessage(playerid, -1, myam_String);
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
Delete3DTextLabel(Myam_Lema[playerid]);
if(strcmp(my_lema[playerid], "{1E90FF}Nenhum", false) != 0)
{
new create3dtext[80];
format(create3dtext, sizeof(create3dtext), "{%s}%s", CodeCores[corselect[playerid]], my_lema[playerid]);
Myam_Lema[playerid] = Create3DTextLabel(create3dtext, -1, 0.0, 0.0, 0.0, MAX_RAIO, GetPlayerVirtualWorld(playerid));
Attach3DTextLabelToPlayer(Myam_Lema[playerid], playerid, 0.0, 0.0, 0.4);
}
}
}
if(dialogid == myamAltCor)
{
if(response)
{
corselect[playerid] = listitem;
new newlema[64];
format(newlema, sizeof(newlema), "{%s}%s", CodeCores[corselect[playerid]], my_lema[playerid]);
my_lema[playerid] = newlema;
format(myam_String, sizeof(myam_String), "{%s}A cor do seu lema foi alterado.", CodeCores[corselect[playerid]]);
SendClientMessage(playerid, -1, myam_String);
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
Delete3DTextLabel(Myam_Lema[playerid]);
if(strcmp(my_lema[playerid], "{1E90FF}Nenhum", false) != 0)
{
new create3dtext[80];
format(create3dtext, sizeof(create3dtext), "{%s}%s", CodeCores[corselect[playerid]], my_lema[playerid]);
Myam_Lema[playerid] = Create3DTextLabel(create3dtext, -1, 0.0, 0.0, 0.0, MAX_RAIO, GetPlayerVirtualWorld(playerid));
Attach3DTextLabelToPlayer(Myam_Lema[playerid], playerid, 0.0, 0.0, 0.4);
}
}
}
return 0;
}
// Nгo conheзo o autor do cуdigo:
stock isNumeric(const string[])
{
new length=strlen(string);
if (length==0) return false;
for (new i = 0; i < length; i++)
{
if (
(string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+')
|| (string[i]=='-' && i!=0)
|| (string[i]=='+' && i!=0)
) return false;
}
if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
return true;
}
Mudanзas
Em caso de conflitos de dialogs(clicar em uma e aparecer outra), mude o id dos dialogs:
pawn Код:
#define myamMeuLema 100
#define myamAltLema 101
#define myamAltCor 102
pawn Код:
#define MIN_LETRAS 5
#define MAX_LETRAS 30
pawn Код:
#define MAX_RAIO 25.0
Nгo encontrei bugs, sу foi testado com dois jogadores!
Ou sejб, nгo tive como verificar cada detalhe..
Um bug, que eu imagino que aconteзa й que as Text3D buguem as vezes(nгo mexo muito com o mesmo).
Crйditos
- Developer: Myam
- Teste's: Apollo
- Vнdeo(gravaзгo/ediзгo): Myam