BuscarEntrar al ChatboxPortal del foroÍndiceSpellsRegistrarseConectarseGrupos de Usuarios
Eventos Actuales
¡ Bienvenido Invitado!

Editar Perfil

Tus temas
Tus Mensajes ()

Enlaces rápidos








Comparte | .
 

 Ayuda con (call create txt file)

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
GolemdePolen
Aprendiz


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 27
Reputación Reputación : 1
Monedas de oro : 74
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Ayuda con (call create txt file) Miér Mar 26, 2014 10:28 am

Buenas de nuevo a todo lector!
Ante todo decir que en esto de JASS soy bastante nuevo.

Llebo tiempo intentando mejorar mi save/load system, Creando un documento de texto en la carpeta de origen del Warcraft 3 que contenga los -save del jugador, como el que usan los mapas como GoH: ("Guilds of Hyppos"), Googleando y explorando por otros mapas encontre una función para generar este documento en mi sistema Save/load system:

EL CUAL SERIA:
1) Implementar esta función en el cabecero del Script del mapa.

Código:
[jass]function CreateTextFile takes string saveCode returns nothing
    local integer p = GetPlayerId(GetTriggerPlayer())+1
    local string heroName = GetUnitName(udg_TempUnit)
    local integer heroLevel = GetHeroLevel(udg_TempUnit)
    
    call PreloadGenClear()
    call PreloadGenStart()
    
    // The line below creates the log
    // Right now, this is:
    //      Hero: (hero name)
    //      Level: (hero level)
    //      Code: -load XXXX
    call Preload("\r\n\t\t\t\tHero: " + heroName + "\r\n\t\t\t\t" + "Level: " + I2S(heroLevel) + "\t\t\r\n\t\t\t\t" + "Code: -load " + udg_Code + "\r\n\n\t\t    ")
    
    // The line below creates the file at the specified location
    // Right now, this is:
    //      "Warcraft III\MapName\(hero name) - (hero level)"
    call PreloadGenEnd("MapName\\" + heroName + " - " + I2S(heroLevel) + ".txt")
endfunction[/jass]

2) Buscar en el Script del mapa, el Return c dentro de la función save_Encode y encima escribir call CreateTextFile(c) quedando la funcion tal que así:

Código:

[jass]function SaveLoad_EncodeValues takes nothing returns string
    local integer i
    local integer j
    local integer k
    local integer l
    local integer m
    local integer CodeLength = StringLength(udg_SaveLoad_Alphabet)
    local integer array a
    local string buffer = ""
    local string c = ""
    local integer skip = 0
    local integer CONST = 1000000
    local string abc = "0123456789"

    set i = 0
    loop
        set i = i + 1
        exitwhen i > udg_SaveCount
        set buffer = buffer + I2S(udg_Save[i]) + "-"
    endloop
    set buffer = buffer + I2S(SaveLoad_EncodeVerify(buffer))
    if udg_Save[1] == 0 then
        set buffer = "-" + buffer
    endif

    set i = 0
    loop
        set a[i] = 0
        set i = i + 1
        exitwhen i >= 100
    endloop

    set m = 0
    set i = 0
    loop
        set j = 0
        loop
            set a[j] = a[j] * 11
            set j = j + 1
            exitwhen j > m
        endloop

        set l = 0
        set c = SubString(buffer,i,i + 1)
        loop
            exitwhen SubString(abc,l,l + 1) == c
            set l = l + 1
            exitwhen l > 9
        endloop
        set a[0] = a[0] + l

        set j = 0
        loop
            set k = a[j] / CONST
            set a[j] = a[j] - k * CONST
            set a[j + 1] = a[j + 1] + k
            set j = j + 1
            exitwhen j > m
        endloop
        if k > 0 then
            set m = m + 1
        endif
        set i = i + 1
        exitwhen i >= StringLength(buffer)
    endloop

    set buffer = ""
    loop
        exitwhen m < 0
        set j = m
        loop
            exitwhen j <= 0
            set k = a[j] / CodeLength
            set a[j - 1] = a[j - 1] + (a[j] - k * CodeLength) * CONST
            set a[j] = k
            set j = j - 1
        endloop
        set k = a[j] / CodeLength
        set i = a[j] - k * CodeLength
        set buffer = buffer + SubString(udg_SaveLoad_Alphabet,i,i + 1)
        set a[j] = k
        if a[m] == 0 then
            set m = m - 1
        endif
    endloop

    set i = StringLength(buffer)
    set skip = 0
    set c = ""
    loop
        set i = i - 1
        set c = c + SubString(buffer,i,i + 1)
        set skip = skip + 1
        if skip == 4 and i > 0 then
            set c = c + "-"
            set skip = 0
        endif
        exitwhen i <= 0
    endloop
    [color=#ff0000]call CreateTextFile(c)[/color]
    return c
endfunction[/jass]

3) Y por ultimo creando un "Custom Script" de llamada justo después de que se muestra el mensaje de código. el cual seria:
Código:
Custom Script: call CreateTextFile()
.

MI PROBLEMA!
Despues de explicar todo esto,Necesito ayuda con el disparador de llamada del Custom Script: call CreateTextFile. Por que lo coloque donde lo coloque me el siguiente error:


Y ya no se si es de el script de la llamada ó que en la función create txt file e de cambiar udg_Code por otro valor.
Puede alguien ayudarme con este ERROR parece que soy demasiado Noob en JASS para esto.
Y no me gusta sentirme limitado a la hora de crear un mapa. Ante todo gracias por tu tiempo por leer mi post, puedan ayudarme o no. Y por ultimo si fuera de ayuda podria enviar una copia de mi save/load + Create txt file si fuera de ayuda para solucionar esto.

"GRACIAS"
Volver arriba Ir abajo
Marcos_M

avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 2713
Reputación Reputación : 414
Monedas de oro : 8313
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Ayuda con (call create txt file) Miér Mar 26, 2014 10:40 am

Analizando desde arriba(estoy en celular)

Te falta colocar una string(cadena, texto) a la hora de llamar tu función

Puedes hacer

Set string = blablabla

call CreateTextFile(udg_string)

Pero no estás usando ese parámetro..

Reemplaza takes string saveCode por takes nothing

Eso debería solucionar la llamada a la función
Volver arriba Ir abajo
En línea
GolemdePolen
Aprendiz


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 27
Reputación Reputación : 1
Monedas de oro : 74
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Ayuda con (call create txt file) Miér Mar 26, 2014 11:33 am

Gracias Marcos_M por tu atención! siempre eres el primero y ultimo en contestar a mis problemas.
PERO: No consigo hacer esto como me dijiste porque como dije ¡soy un paquete en JASS.!
y no entendi eso bien, si no es molestia...

1) Set string = blablabla - te refieres a ¿ que tengo crear una variable tipo string y la seteo como quiera o como algun valor especifico? o  en call CreateTextFile(udg_String) he de poner el nombre de la variable en String de Ugd_"nombre de variable".

2)Reemplaza takes string saveCode por takes nothing- al hacer esto me surjen muchos nuevos errores, de los cuales no tengo ni idea.

Siento ser tan noob con esto, se que debería entender un poco mas de jass antes de plantear estos problemas, pero se me estanco el mapa con esto y llebo mucho trabajandolo como para detener el desarrollo ahora.


Otras dudas no relacionadas.
- Que tutorial o pagina me recomendarias para empezar aprender JASS desde 0
Volver arriba Ir abajo
Marcos_M

avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 2713
Reputación Reputación : 414
Monedas de oro : 8313
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Ayuda con (call create txt file) Miér Mar 26, 2014 2:09 pm

[jass]function CreateTextFile takes nothing returns nothing
local integer p = GetPlayerId(GetTriggerPlayer())+1
local string heroName = GetUnitName(udg_TempUnit)
local integer heroLevel = GetHeroLevel(udg_TempUnit)

call PreloadGenClear()
call PreloadGenStart()

// The line below creates the log
// Right now, this is:
// Hero: (hero name)
// Level: (hero level)
// Code: -load XXXX
call Preload("\r\n\t\t\t\tHero: " + heroName + "\r\n\t\t\t\t" + "Level: " + I2S(heroLevel) + "\t\t\r\n\t\t\t\t" + "Code: -load " + udg_Code + "\r\n\n\t\t ")

// The line below creates the file at the specified location
// Right now, this is:
// "Warcraft III\MapName\(hero name) - (hero level)"
call PreloadGenEnd("MapName\\" + heroName + " - " + I2S(heroLevel) + ".txt")
endfunction
[/jass]

Reemplazaste y quedó así tu función??
Volver arriba Ir abajo
En línea
GolemdePolen
Aprendiz


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 27
Reputación Reputación : 1
Monedas de oro : 74
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Ayuda con (call create txt file) Miér Mar 26, 2014 2:28 pm

¡¡¡¡¡¡¡¡¡¡Yeah!!!!!! ya tengo el generador de txt y funciona perfecto!, Ya lo solucione el fallo estaba en otro gatillo que me sobraba, cosas que pasan cuando te pasas horas tocando y retocando el sistema para que funcione jejeje, muchas gracias por todo no sabes cuanto me has ayudado. no esperaba menos  Wink




Editado:Se me olvidaba si no te importa responderme a lo de por donde empezar a aprender JASS, por mi puedes Cerrar el tema Smile. te doy los puntitos esos
Volver arriba Ir abajo
Marcos_M

avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 2713
Reputación Reputación : 414
Monedas de oro : 8313
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Ayuda con (call create txt file) Miér Mar 26, 2014 2:39 pm

Volver arriba Ir abajo
En línea
Contenido patrocinado




Mensaje(#) Tema: Re: Ayuda con (call create txt file)

Volver arriba Ir abajo
 

Ayuda con (call create txt file)

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

 Temas similares

-
» Ayuda con (call create txt file)
» call of duty modern warfare (ayuda)
» Resident Evil Outbreak Ayuda Urgente
» Call of duty ghost
» Ayuda para Matar a Gigginox y Capturar a Uragan (3 Estrellas)

Permisos de este foro:No puedes responder a temas en este foro.
Warcraft III - WorldEditor :: Zona de Aprendizaje(Dudas) :: Jass (Detonadores)-