Foro especializado en Warcraft III y su editor
 
BuscarEntrar al ChatboxPortal del foroÍndiceSpellsRegistrarseConectarse
Eventos Actuales
¡ Bienvenido Invitado !

Editar Perfil

Tus temas
Tus Mensajes ()

Enlaces rápidos








Comparte
 

 [Snipet] TerrainSkin

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Trigger.edge

Trigger.edge


Barra de Salud : Este usuario es invulnerable ¿Será que es fiel a las normas?

Mensajes Mensajes : 978
Reputación Reputación : 111
Monedas de oro : 1245
Monedas de Platino : 0 [Snipet] TerrainSkin Empty

Inventario :
Cetro del Rey Armadura Mágica Daga Mística
[Snipet] TerrainSkin Empysl10 [Snipet] TerrainSkin Empysl10 [Snipet] TerrainSkin Empysl10

[Snipet] TerrainSkin Empty
Mensaje(#) Tema: [Snipet] TerrainSkin [Snipet] TerrainSkin Clock10Vie Mayo 06, 2016 6:13 pm

Cambia el skin del terreno sin perder el conjunto original Wink

[jass]library TerrainSkin/*
****************************************************************************************************************
*
* ************************************************************************************************************
*
* */ uses /*
* */ DimensionalArray /* hiveworkshop.com/forums/submissions-414/snippet-dimensional-array-265011/
* */ WorldBounds /* github.com/nestharus/JASS/blob/master/jass/Systems/WorldBounds/script.j
*
* ************************************************************************************************************
*
* TerrainSkin
* ___________
* v1.0.1.1
* by Trigger.edge
*
* Change the terrain texture without lost the original set.
*
* API:
* ____
* struct TerrainSkin extends array
* - static method create takes real x, real y, integer terrainType, boolean permanent returns TerrainSkin
* - creates a TerrainSkin.
* - method destroy takes nothing returns nothing
* - destroy it.
* - static method getDefault takes real x, real y returns integer
* - get default terrain set.
*
* Credits:
* ________
* - Nestharus: WorldBounds
*
***************************************************************************************************************/
struct TerrainSkin extends array
private static Array data=0

private static method getTile takes real xy, real mincord, real maxcord returns integer
local integer tile
if(xy<0)then
set tile=R2I(mincord)
loop
exitwhen(tile>=0 or tile>=xy-64)
set tile=tile+128
endloop
else
set tile=R2I(maxcord)
loop
exitwhen(tile<=0 or tile<=xy+64)
set tile=tile-128
endloop
endif
return tile
endmethod

static method getDefault takes real x, real y returns integer
local integer ix=getTile(x,WorldBounds.minX,WorldBounds.maxX)
local integer iy=getTile(y,WorldBounds.minY,WorldBounds.maxY)
local integer i=data[ix][iy].integer
if(0==i)then
set data[ix][iy].integer=GetTerrainType(ix,iy)
return data[ix][iy].integer
endif
return i
endmethod

private method changeSkin takes real x, real y, integer terrainType returns nothing
local integer ix=getTile(x,WorldBounds.minX,WorldBounds.maxX)
local integer iy=getTile(y,WorldBounds.minY,WorldBounds.maxY)
if(not data[ix][iy].has.integer)then
set data[ix][iy].integer=GetTerrainType(ix,iy)
endif
call SetTerrainType(ix,iy,terrainType,-1,1,0)
endmethod

static method create takes real x, real y, integer terrainType, boolean permanent returns TerrainSkin
local thistype this=data[0].integer
if(0==data[this].integer)then
set data[0].integer=this+1
else
set data[0].integer=data[this].integer
call data[this].remove.integer()
endif
set data[0][this].real=x
set data[1][this].real=y
set data[-1][this].integer=terrainType
call .changeSkin(x,y,terrainType)
return this
endmethod

method destroy takes nothing returns nothing
call .changeSkin(data[0][this].real,data[1][this].real,data[-1][this].integer)
call data[0][this].remove.real()
call data[1][this].remove.real()
call data[-1][this].remove.integer()
set data[this].integer=data[0].integer
set data[0].integer=this
endmethod

private static method onInit takes nothing returns nothing
set data=Array.create()
set data[0].integer=1
endmethod
endstruct
endlibrary[/jass]


[Snipet] TerrainSkin Wc3scr10
Volver arriba Ir abajo
Moises08x
Peón


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

Mensajes Mensajes : 35
Reputación Reputación : 2
Monedas de oro : 41
Monedas de Platino : 0 [Snipet] TerrainSkin Empty

Inventario :
[Snipet] TerrainSkin Empysl10 [Snipet] TerrainSkin Empysl10 [Snipet] TerrainSkin Empysl10
[Snipet] TerrainSkin Empysl10 [Snipet] TerrainSkin Empysl10 [Snipet] TerrainSkin Empysl10

[Snipet] TerrainSkin Empty
Mensaje(#) Tema: Re: [Snipet] TerrainSkin [Snipet] TerrainSkin Clock10Miér Jun 29, 2016 5:19 am

y como se instala eso?
Volver arriba Ir abajo
 

[Snipet] TerrainSkin

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

Permisos de este foro:No puedes responder a temas en este foro.
Warcraft III - WorldEditor :: Aportes :: Librerías-