Mensajes: 165
Temas: 17
Registro en: Oct 2013
Reputación:
4
Tengo una duda si yo tengo que devolver un valor con return se hace de la siguiente manera
Código PHP: public funcion() { new variable = 1; return variable }
para usarlo de la siguiente manera
Código PHP: if(funcion() == 1) { //realizamos la accion }
hay alguna posibilidad de devolver mas de una variable por un retunr
Código PHP: public funcion() { new variable = 1; new variable2 = 1; return variable, variable2 }
Alguien que sepa me podría orientar un poco
Mensajes: 4,247
Temas: 94
Registro en: Mar 2014
Reputación:
58
22/05/2018, 06:42 PM
(Última modificación: 22/05/2018, 06:44 PM por totopizza.)
si se puede, usando el & como un parámetro
Código PHP: public test() { new r1, r2; r1 = 50; r2 = 12 server_print("DEBUG1: r1=%d | r2=%d", r1, r2); if(funcion(r1, r2)) server_print("DEGUG2: r1=%d | r2=%d", r1, r2); } public funcion(&return1, &return2) { return1 = 500; return2 = 99; return 1; }
Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando. (08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck
Mis aportes
PLUGINSMAPAS
Menú LANG
[SF] Sistema de Frags
Say System (Admin Prefix)
Mensajes: 165
Temas: 17
Registro en: Oct 2013
Reputación:
4
a ver si entendí bien lo que necesito saber cuanto tiempo lleva jugado el player guardando la menor cantidad de variables posibles, por eso solo guardo la variable segundos.
Quiero saber si esta bien así o hay alguna función para obtener días horas minutos y segundos solo guardando los segundos jugados
Código PHP: public tiempo_jugado(id) { new segundos, minutos, horas, dias; get_tiempo(segundos, minutos, horas, dias) client_print(id, print_chat, "Llevas %d Segundos %d Minutos %d Horas %d Dias", segundos, minutos, horas, dias) } public get_tiempo(&segundos, &minutos, &horas, &dias) { segundos = g_tiempo[id] while( segundos >= 60 ) { segundos -= 60 minutos++ } while( minutos >= 60 ) { minutos -= 60 horas++ } while( horas >= 24 ) { horas -= 24 dias++ } return 1; }
Mensajes: 4,247
Temas: 94
Registro en: Mar 2014
Reputación:
58
No lo probé, pero debería de funcionar
Código PHP: public test(id) { new iSecs, iMins, iHrs, iDays; iSecs = 4241425; get_time_played(iSecs, iMins, iHrs, iDays) client_print(id, print_chat, "Llevas %d Segundos %d Minutos %d Horas %d Dias", iSecs, iMins,iHrs, iDays) } public get_time_played(&iSeconds, &iMinutes, &iHours, &iDays) { iMinutes = 0; iHours = 0; iDays = 0; new iPlayed; iPlayed = iSeconds; if(iPlayed >= 86400) { iDays = ((iSeconds / 60) / 60) / 24; iSeconds -= (86400 * iDays); goto get_hours; } else if(iPlayed >= 3600) { get_hours: iHours = (iSeconds / 60) / 60; iSeconds -= (3600 * iHours); goto get_minutes; } else if(iPlayed >= 60) { get_minutes: iMinutes = iSeconds / 60; iSeconds -= (60 * iMinutes); } }
Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando. (08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck
Mis aportes
PLUGINSMAPAS
Menú LANG
[SF] Sistema de Frags
Say System (Admin Prefix)
Mensajes: 1,902
Temas: 35
Registro en: Jan 2014
Reputación:
28
22/05/2018, 09:37 PM
(Última modificación: 22/05/2018, 11:42 PM por Chamo..)
No es posible 'devolver' más de un resultado desde una función en este contexto. Lo que si es posible, y necesario para lo anterior, es modificar una o más variables externas a la función que realiza el trabajo, y asignarle a esas variables los valores que desees (lo que se conoce como pasar parámetros por referencia).
Dado el caso que tienes/quieres sobre devolver Días/Horas/Segundos desde una variable, necesitarías 3 variables auxiliares donde almacenaras cada resultado, respectivamente.
Mensajes: 2,094
Temas: 59
Registro en: Feb 2015
Reputación:
15
(22/05/2018, 09:01 PM)totopizza escribió: No lo probé, pero debería de funcionar
Código PHP: public test(id) { new iSecs, iMins, iHrs, iDays; iSecs = 4241425; get_time_played(iSecs, iMins, iHrs, iDays) client_print(id, print_chat, "Llevas %d Segundos %d Minutos %d Horas %d Dias", iSecs, iMins,iHrs, iDays) } public get_time_played(&iSeconds, &iMinutes, &iHours, &iDays) { iMinutes = 0; iHours = 0; iDays = 0; new iPlayed; iPlayed = iSeconds; if(iPlayed >= 86400) { iDays = ((iSeconds / 60) / 60) / 24; iSeconds -= (86400 * iDays); goto get_hours; } else if(iPlayed >= 3600) { get_hours: iHours = (iSeconds / 60) / 60; iSeconds -= (3600 * iHours); goto get_minutes; } else if(iPlayed >= 60) { get_minutes: iMinutes = iSeconds / 60; iSeconds -= (60 * iMinutes); } }
hace meses que no veía el goto.. que funcion hace alli?
(18/11/2014, 05:47 PM)Neeeeeeeeeel.- escribió: Por qué necesitan una guía para todo? Meté mano y que salga lo que salga... es la mejor forma de aprender.
(16/05/2016, 11:08 PM)kikizon2 escribió: No cabe duda que tienen mierda en vez de cerebro, par de pendejos v:
Mensajes: 1,902
Temas: 35
Registro en: Jan 2014
Reputación:
28
22/05/2018, 11:28 PM
(Última modificación: 23/05/2018, 12:28 AM por Chamo..)
Transfiere el flujo de control de la función/programa desde el punto de encuentro de la instrucción hasta la declaración del punto de llegada de la misma (parámetro de la instrucción goto).
Mensajes: 165
Temas: 17
Registro en: Oct 2013
Reputación:
4
(22/05/2018, 07:34 PM)iGznOth escribió: Código PHP: public tiempo_jugado(id) { new segundos, minutos, horas, dias; get_tiempo(segundos, minutos, horas, dias) client_print(id, print_chat, "Llevas %d Segundos %d Minutos %d Horas %d Dias", segundos, minutos, horas, dias) } public get_tiempo(&segundos, &minutos, &horas, &dias) { segundos = g_tiempo[id] while( segundos >= 60 ) { segundos -= 60 minutos++ } while( minutos >= 60 ) { minutos -= 60 horas++ } while( horas >= 24 ) { horas -= 24 dias++ } return 1; }
estoy probando este tipo de funcion y funciona perfecto. ahora me gustaria saber si esta bien eso que estoy haciendo....
Mensajes: 1,902
Temas: 35
Registro en: Jan 2014
Reputación:
28
Mientras funcione para ti y este programado de la mejor manera, estará bien.
Mensajes: 1,015
Temas: 42
Registro en: Feb 2016
Reputación:
13
23/05/2018, 01:14 AM
(Última modificación: 23/05/2018, 01:15 AM por Exertency.)
(23/05/2018, 12:18 AM)iGznOth escribió: (22/05/2018, 07:34 PM)iGznOth escribió: Código PHP: public tiempo_jugado(id) { new segundos, minutos, horas, dias; get_tiempo(segundos, minutos, horas, dias) client_print(id, print_chat, "Llevas %d Segundos %d Minutos %d Horas %d Dias", segundos, minutos, horas, dias) } public get_tiempo(&segundos, &minutos, &horas, &dias) { segundos = g_tiempo[id] while( segundos >= 60 ) { segundos -= 60 minutos++ } while( minutos >= 60 ) { minutos -= 60 horas++ } while( horas >= 24 ) { horas -= 24 dias++ } return 1; }
estoy probando este tipo de funcion y funciona perfecto. ahora me gustaria saber si esta bien eso que estoy haciendo.... Lo único que llegó a ver qué está mal o que no está bien es el return 1; En este tipo de funciones (void o vacías) el retorno no es necesario, porqué el valor que devuelve la función no se utiliza para nada sino que se utilizan las variables modificadas.
Si querés podés hacer que retorne un valor booleano para verificar que el cálculo se hizo correctamente, pero en tu caso no es necesario
Mensajes: 1,902
Temas: 35
Registro en: Jan 2014
Reputación:
28
(23/05/2018, 01:14 AM)Exertency escribió: Lo único que llegó a ver qué está mal o que no está bien es el return 1; En este tipo de funciones (void o vacías) el retorno no es necesario, porqué el valor que devuelve la función no se utiliza para nada sino que se utilizan las variables modificadas.
Si querés podés hacer que retorne un valor booleano para verificar que el cálculo se hizo correctamente, pero en tu caso no es necesario
Estaría de acuerdo si programara en C++, pero no lo hace. Es indiferente devolver un valor o no (a menos que quiera hacerlo).
Mensajes: 165
Temas: 17
Registro en: Oct 2013
Reputación:
4
(23/05/2018, 12:30 AM)Chamo. escribió:
Mientras funcione para ti y este programado de la mejor manera, estará bien.
eso me gustaría saber de funcionar funciona ahora sera la mejor manera..
(23/05/2018, 01:14 AM)Exertency escribió: Lo único que llegó a ver qué está mal o que no está bien es el return 1; En este tipo de funciones (void o vacías) el retorno no es necesario, porqué el valor que devuelve la función no se utiliza para nada sino que se utilizan las variables modificadas.
Si querés podés hacer que retorne un valor booleano para verificar que el cálculo se hizo correctamente, pero en tu caso no es necesario
el return 1; se me quedo dado que cuando me dijo totopizza, lo iba a usar en un if por lo tanto necesitaba que devolviera 1 para seguir con la acción pero ahora como decís vos no es necesario que devuelva ningún valor ya que la función se ejecuta para modificar variables.
Mensajes: 2,094
Temas: 59
Registro en: Feb 2015
Reputación:
15
23/05/2018, 01:42 PM
(Última modificación: 23/05/2018, 01:43 PM por OsweRRR.)
sii ahora que recuerdo #Sugisaki hacia bucles que aumentaban el procesador pero no tumbaba el sv con el goto
(18/11/2014, 05:47 PM)Neeeeeeeeeel.- escribió: Por qué necesitan una guía para todo? Meté mano y que salga lo que salga... es la mejor forma de aprender.
(16/05/2016, 11:08 PM)kikizon2 escribió: No cabe duda que tienen mierda en vez de cerebro, par de pendejos v:
|