[Ajuda] Sistema de Frase de Entrada
#1

Olб galera do fуrum-samp.
Tudo bem?
Bom, estava aqui de boas pensando em fazer um sistema de frase de entrada

Mas oque й frase de entrada?

Como a maioria sabe, frase de entrada, й uma mensagem que o jogador escolhe para aparecer quando o jogador entrar no servidor.
Por exemplo:

Code:
O Jogador DjonathaTM  Estб Conectado ao Servidor. DjonathaTM Aprendiz em Pawn/Pawno '-'
A Frase de Entrada, й "DjonathaTM Aprendiz em Pawn/Pawno"

Bom, estava pensando...

COMO FAZER ISSO? '-'

Й FACIL? (Acho que й)

Bom eu acho que й facil. Mas nгo sei por onde comeзar...

Que eu saiba, tem que criar uma variavel no enum nй?

Dai fazer o salvamento (O meu serб em DOF2)

E Fazer o comando de /MudarFrase

E mais umas coisas...

Entгo, oque serб esse "E mais umas coisas..."?

Nгo sei oque fazer...

Estou certo que tem que fazer a variavel no enum, dai o salvamento, o comando?

Se estou, oque mais precisa fazer?

Preciso de ajuda, pra desenvolver isso.

Se nгo entender me fale.

Thank's.
Reply
#2

Qual sua enum de salvamento das informaзхes do player e sua variбvel?

Seu sistema de registro e login й igual ao desse tуpico? https://sampforum.blast.hk/showthread.php?tid=350855
Reply
#3

Sim Galhardin
Й igual a esse acima sim.

enum Informacoes

new pInfo[MAX_PLAYERS][Informacoes];
Reply
#4

Beleza. Entгo vocк vai ter que adicionar isso tudo no seu gamemode.

Adicionar na enum, coloque assim:
PHP Code:
enum Informacoes
{
    
FraseEntrada

Na dialog que o player registrou e quando cria os arquivos, vocк adiciona isso:
PHP Code:
DOF2_SetInt(arquivo"FraseEntrada"" "); 
Na dialog que o player loga coloque isso:
PHP Code:
new string[256], playername[25];
Player[playerid][FraseEntrada] = DOF2_GetInt(arquivo"FraseEntrada");
GetPlayerName(playeridplayername25);
format(stringsizeof(string), "O jogador %s estб conectado ao servidor. %s"playernamePlayer[playerid][FraseEntrada]);
SendClientMessageToAll(-1string); 
Agora o comando:
Caso for zcmd:
PHP Code:
CMD:mudarfrase(playeridparams[])
{
    new 
texto[50], string[100];
    if(
sscanf(params"s[50]"texto))
        return 
SendClientMessage(-1"[USO] /mudarfrase [frase]");
    if(
strlen(texto) > 50)
        return 
SendClientMessage(-1"[ERRO] Seu texto pode ter no mбximo 50 caracteres.");
    
Player[playerid][FraseEntrada] = texto;
    
format(stringsizeof(string), "Vocк modificou sua frase de entrada para: %s." Player[playerid][FraseEntrada]);
    
SendClientMessage(playerid, -1string);
    return 
1;

Se for strcmp:
PHP Code:
if (strcmp("/mudarfrase"cmdtexttrue11) == 0)
{
    new 
texto[50];
    if(
sscanf(params"s[50]"texto))
        return 
SendClientMessage(-1"[USO] /mudarfrase [frase]");
    if(
strlen(texto) > 50)
        return 
SendClientMessage(-1"[ERRO] Seu texto pode ter no mбximo 50 caracteres.");
    
Player[playerid][FraseEntrada] = texto;
    
format(stringsizeof(string), "Vocк modificou sua frase de entrada para: %s." Player[playerid][FraseEntrada]);
    
SendClientMessage(playerid, -1string);
    return 
1;

Agora coloque no OnPlayerDisconnect e no OnGameModeExit:
PHP Code:
DOF2_SetInt(arquivo"FraseEntrada"Player[playerid][FraseEntrada]); 
Testa ai, nгo testei aqui, qualquer erro me avise aqui.
Reply
#5

Pow, vlw ai Galhardгo! Eu sу pedi ajuda pra saber fazer, mas jб que vocк fez, vou aperfeiзoar um pouquinho, e vou testar.
+Rep!! Obrigado.

Deu bug, nгo to conseguindo arrumar '-
Reply
#6

PHP Code:
enum Informacoes 

    
FraseEntrada[80]

Salvamento
PHP Code:
DOF2_SetString(arquivo"FraseEntrada"Player[playerid][FraseEntrada]); 
No comando..
PHP Code:
format(Player[playerid][FraseEntrada],80,texto); 
Tente assim...
Reply
#7

Quote:
Originally Posted by NicK_
View Post
PHP Code:
enum Informacoes 

    
FraseEntrada[80]

Salvamento
PHP Code:
DOF2_SetString(arquivo"FraseEntrada"Player[playerid][FraseEntrada]); 
No comando..
PHP Code:
format(Player[playerid][FraseEntrada],80,texto); 
Tente assim...
Funcionou nгo. SetString/GetString, sempre fica (null)
tem algo errado. '-'
Reply
#8

Comando pra vc:
PHP Code:
#define DialogDefinirFrase 5000
CMD:mudarfrase(playerid,params[])return cmd_frase(playerid,params);
CMD:frase(playerid,params[])
{
    new 
String[128];
    if(
pInfo[playerid][FraseEntrada]!=0){format(String,128,"Sua frase de entrada atual й: {BEBEBE}%s",pInfo[playerid][FraseEntrada]);SendClientMessage(playerid,-1,String);}
    
ShowPlayerDialog(playerid,DialogDefinirFrase,DIALOG_STYLE_INPUT,"{FFFF00}#{FFFFFF}Frase de entrada...","{FFFFFF}Digite abaixo uma frase para ser sua {00FF00}Frase de entrada{FFFFFF}.\nVocк tambйm pode adicionar cores, use {FFFF00}/Cores{FFFFFF} para ver algumas.\n","Definir","Cancelar");
    return 
1;

Dialog:
PHP Code:
if(dialogid==DialogDefinirFrase)
    {
        if(!
response)return 1;
        if(
strlen(inputtext)<1)return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: Tamanho incorreto (Minimo 1 caractere)");
        if(
strlen(inputtext)>200)return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: Tamanho incorreto (Mбximo 200 caractйres)");
        new 
str[128];
        
format(pinfo[playerid][FraseEntrada],128,inputtext);
        
format(str,128,"{808080}Nova frase: {ffffff}%s",inputtext);
        
SendClientMessage(playerid,-1,str);
        
//Recomendo chamar o salvamento aki :p
    

O resto bem dizendo vocк tem, que seria o salvamento da conta, o carregamento da conta e na enum do player.

Abraзos.
Reply
#9

Quote:
Originally Posted by matheusspohr
View Post
Comando pra vc:
PHP Code:
#define DialogDefinirFrase 5000
CMD:mudarfrase(playerid,params[])return cmd_frase(playerid,params);
CMD:frase(playerid,params[])
{
    new 
String[128];
    if(
pInfo[playerid][FraseEntrada]!=0){format(String,128,"Sua frase de entrada atual й: {BEBEBE}%s",pInfo[playerid][FraseEntrada]);SendClientMessage(playerid,-1,String);}
    
ShowPlayerDialog(playerid,DialogDefinirFrase,DIALOG_STYLE_INPUT,"{FFFF00}#{FFFFFF}Frase de entrada...","{FFFFFF}Digite abaixo uma frase para ser sua {00FF00}Frase de entrada{FFFFFF}.\nVocк tambйm pode adicionar cores, use {FFFF00}/Cores{FFFFFF} para ver algumas.\n","Definir","Cancelar");
    return 
1;

Dialog:
PHP Code:
if(dialogid==DialogDefinirFrase)
    {
        if(!
response)return 1;
        if(
strlen(inputtext)<1)return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: Tamanho incorreto (Minimo 1 caractere)");
        if(
strlen(inputtext)>200)return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: Tamanho incorreto (Mбximo 200 caractйres)");
        new 
str[128];
        
format(pinfo[playerid][FraseEntrada],128,inputtext);
        
format(str,128,"{808080}Nova frase: {ffffff}%s",inputtext);
        
SendClientMessage(playerid,-1,str);
        
//Recomendo chamar o salvamento aki :p
    

O resto bem dizendo vocк tem, que seria o salvamento da conta, o carregamento da conta e na enum do player.

Abraзos.
Vlw matheusspohr. Tentando ainda, sem sucesso ainda

Vou ver seu code...
+REP
Reply
#10

Problema resolvido?
Reply
#11

Nгo Cidiei.

To com problemas no salvamento, e na hora de pegar a frase, nгo estб mostrando qual й a frase do jogador
Por exemplo, na mensagem que estб conectado a frase nгo aparece...
Reply
#12

Mostre-nos seu cуdigo para uma melhor avaliaзгo e resoluзгo dos problemas.
Reply
#13

Irei refazer novamente o code. Se nгo der de novo eu peзo ajuda aqui.
Reply
#14

Ainda nгo estou conseguindo... Alguem pra ajudar? Ja fiz um monte de vez e nгo dб certo '-'
Alguem ajuda, passo a passo? Pfv
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)