[Ayuda] Duda sobre Strings.
#1

Saludos gente de samp, tengo una duda y espero explicarme claro. Hace poco empece a scriptear y no tengo mucho conocimiento y solo hacia lo bбsico pero hoy fui forzado a usar strings ya que querнa poner muchas cosas en una sola linea para un dialogo y empece a buscar y encontrй con un ejemplo que les dejare a continuaciуn:
Код:
new string[952];
if(dialogid == DIALOGO_ADMININFO)
    {
        if(response) // si hacen click en "seleccionar" o hacen doble click
        {
            if(listitem == 0)
            {
            strcat(string, "A continuacion veras una lista de comandos asignados especialmente para la administracion, porfavor uselos con {FF0000}precaucion\n");
            strcat(string, "\n{FFFF00}/vspawner{FFFFFF}- Sirve para aparecer cualquier carro enfrente de usted.");
            strcat(string, "\n{FFFF00}/skinchange{FFFFFF}- Sirve para cambiar su skin al gusto.");
            strcat(string, "\n{FFFF00}/adminskin{FFFFFF}- Sirve para ponerte la skin oficial del staff del server.");
            strcat(string, "\n{FFFF00}/dinero{FFFFFF}- Sirve para establecer tu dinero.");
	    ShowPlayerDialog(playerid, 11, DIALOG_STYLE_MSGBOX, "Comandos de Administracion", string, "Salir", "");
            }
        }
        return 1;
    }
Bueno vallamos al grano, lo que quiero saber si es posible nombrar los strings por ejemplo que el string se llame info y que en showplayerdialog ponga info en ves de string. Espero y me entiendan saludos y gracias de antemano espero sus respuestas.
Reply
#2

pawn Код:
new info[952]; // calcula el string....
if(dialogid == DIALOGO_ADMININFO)
    {
        if(response) // si hacen click en "seleccionar" o hacen doble click
        {
            if(listitem == 0)
            {
            strcat(info, "A continuacion veras una lista de comandos asignados especialmente para la administracion, porfavor uselos con {FF0000}precaucion\n");
            strcat(info, "\n{FFFF00}/vspawner{FFFFFF}- Sirve para aparecer cualquier carro enfrente de usted.");
            strcat(info, "\n{FFFF00}/skinchange{FFFFFF}- Sirve para cambiar su skin al gusto.");
            strcat(info, "\n{FFFF00}/adminskin{FFFFFF}- Sirve para ponerte la skin oficial del staff del server.");
            strcat(info, "\n{FFFF00}/dinero{FFFFFF}- Sirve para establecer tu dinero.");
        ShowPlayerDialog(playerid, 11, DIALOG_STYLE_MSGBOX, "Comandos de Administracion", info, "Salir", "");
            }
        }
        return 1;
    }
їEso quieres tu? Recuerda calcular las celdas necesarias que utiliza eso.. con solo imprimir el texto sabiendo su longitud.. y poniendolo debajo despuйs de que se muestre el dialogo

pawn Код:
printf("este dialogo tiene %d de celdas(string)", strlen(info));
el resultado que te de allн, lo cambias por 952 (en este caso: new info[952])

y si es necesario usar char para comprimir celdas (Si quieres)
Reply
#3

Quote:
Originally Posted by armandozetaxx
Посмотреть сообщение
Saludos gente de samp, tengo una duda y espero explicarme claro. Hace poco empece a scriptear y no tengo mucho conocimiento y solo hacia lo bбsico pero hoy fui forzado a usar strings ya que querнa poner muchas cosas en una sola linea para un dialogo y empece a buscar y encontrй con un ejemplo que les dejare a continuaciуn:
Код:
new string[952];
if(dialogid == DIALOGO_ADMININFO)
    {
        if(response) // si hacen click en "seleccionar" o hacen doble click
        {
            if(listitem == 0)
            {
            strcat(string, "A continuacion veras una lista de comandos asignados especialmente para la administracion, porfavor uselos con {FF0000}precaucion\n");
            strcat(string, "\n{FFFF00}/vspawner{FFFFFF}- Sirve para aparecer cualquier carro enfrente de usted.");
            strcat(string, "\n{FFFF00}/skinchange{FFFFFF}- Sirve para cambiar su skin al gusto.");
            strcat(string, "\n{FFFF00}/adminskin{FFFFFF}- Sirve para ponerte la skin oficial del staff del server.");
            strcat(string, "\n{FFFF00}/dinero{FFFFFF}- Sirve para establecer tu dinero.");
	    ShowPlayerDialog(playerid, 11, DIALOG_STYLE_MSGBOX, "Comandos de Administracion", string, "Salir", "");
            }
        }
        return 1;
    }
Bueno vallamos al grano, lo que quiero saber si es posible nombrar los strings por ejemplo que el string se llame info y que en showplayerdialog ponga info en ves de string. Espero y me entiendan saludos y gracias de antemano espero sus respuestas.
Hola, si es posible poner el nombre que tu quieras (Sуlo del teclado ingles), lo ъnico que tienes que cambiar es donde dice:
pawn Код:
new string[952];
a
pawn Код:
new info[952];
Y luego remplazas los que decнan "string" por "info", quedarнa asн tu cуdigo:
pawn Код:
new info[952];
if(dialogid == DIALOGO_ADMININFO)
    {
        if(response) // si hacen click en "seleccionar" o hacen doble click
        {
            if(listitem == 0)
            {
            strcat(info, "A continuacion veras una lista de comandos asignados especialmente para la administracion, porfavor uselos con {FF0000}precaucion\n");
            strcat(info, "\n{FFFF00}/vspawner{FFFFFF}- Sirve para aparecer cualquier carro enfrente de usted.");
            strcat(info, "\n{FFFF00}/skinchange{FFFFFF}- Sirve para cambiar su skin al gusto.");
            strcat(info, "\n{FFFF00}/adminskin{FFFFFF}- Sirve para ponerte la skin oficial del staff del server.");
            strcat(info, "\n{FFFF00}/dinero{FFFFFF}- Sirve para establecer tu dinero.");
            ShowPlayerDialog(playerid, 11, DIALOG_STYLE_MSGBOX, "Comandos de Administracion", info, "Salir", "");
            }
        }
        return 1;
    }
PD: Los cуdigos pawn metelos dentro del bbcode [ PAWN ] cуdigo [ /PAWN ] (Sin los espacios)


EDIT:
Quote:
Originally Posted by Adoniiz
Посмотреть сообщение
[pawn]
їEso quieres tu? Recuerda calcular las celdas necesarias que utiliza eso.. con solo imprimir el texto sabiendo su longitud.. y poniendolo debajo despuйs de que se muestre el dialogo

pawn Код:
printf("este dialogo tiene %d de celdas(string)", strlen(info));
el resultado que te de allн, lo cambias por 952 (en este caso: new info[952])

y si es necesario usar char para comprimir celdas (Si quieres)
Me ganaste jб..

Tambiйn puedes usar el sitio web www.contadordecaracteres.com
Reply
#4

Muchнsimas gracias amigos, ahora lo del 952 lo tenia el ejemplo donde lo agarre y no le entendнa pero al parecer son los caracteres del texto de la cadena cierto?
Reply
#5

Quote:
Originally Posted by armandozetaxx
Посмотреть сообщение
Muchнsimas gracias amigos, ahora lo del 952 lo tenia el ejemplo donde lo agarre y no le entendнa pero al parecer son los caracteres del texto de la cadena cierto?
Exacto, tienes que usar lo necesario o usar lo exacto para no evitar largas cadenas innecesarias y lag's en el servidor, te recomiendo leer:

https://sampforum.blast.hk/showthread.php?tid=170427
Reply
#6

pawn Код:
/*
    * el nombre de la variable lo colocas tu con el ke kieras.
    * para utilizar lo necesario de string, cuentas los caracteres  ke tiene el strcat y lo multiplicas a la cantidad de strcat ke tienes.
    * o directamente le colocas la cantidad de caracteres ke tiene en el strcat ejemplo: strcat(info, " texto aqui \n", cantidad de caracteres);

    * https://sampwiki.blast.hk/wiki/Strcat
*/

new nombre[15*3]; //14 caracteres x 3 strcat + 1 celda = 45 string's.
strcat(nombre, " texto aqui \n"); //14 caracteres
strcat(nombre, " texto aqui \n");
strcat(nombre, " texto aqui ");
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)