Batch Paint

Iniciado por binary_death, Septiembre 01, 2013, 04:26:16 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Septiembre 01, 2013, 04:26:16 AM Ultima modificación: Septiembre 01, 2013, 02:12:02 PM por binary_death


Código: php

@Echo Off
SETLOCAL ENABLEDELAYEDEXPANSION
:_START
MODE CON COLS=80 LINES=25
MEM/C | FIND /I "ANSI">NUL || ((
ECHO.DEVICE=%SystemRoot%\System32\ANSI.SYS /X
)>>%SystemRoot%\System32\CONFIG.NT
IF "%~1" NEQ "1" (
START "" %0 1 && EXIT/B 0
) ELSE ( EXIT/B 1))
:INI
Set Colors=X3Y3,X5Y3,X3Y5,X5Y5,^
X3Y7,X5Y7,X3Y9,X5Y9,^
X3Y11,X5Y11,X3Y13,X5Y13,^
X3Y15,X5Y15,X3Y17,X5Y17
Set Cursors=X69Y10,X71Y10,X73Y10,X75Y10,X77Y10
Set "Cursor_Icon=Û²±°R"
Set/A "CurCol=8","CurCap=0","BACK=0","LastColVal=8"
Set "CurColPos=X5Y9"
Set "CurCur=Û"
Set "LastCurVal=Û"
Set "LastCurPos=X69Y10"
Call:LOAD_SCR
:_MAIN

TITLE BatchPaint BETA [CRD: %MOUSE[XY]% - LYR: %CurCap% - COL: %CurCol%]
CALL:_MOUSE[GET]
CALL:_CMP

GOTO:_MAIN

:_CMP
::Comp. Extern Cordinates.
If "%MOUSE[XY]%" EQU "X76Y6" (
If %CurCap% LSS 9 Set/A "CurCap+=1"
Command/C Echo.!CurCap!
GoTo:EoF
)
If "%MOUSE[XY]%" EQU "X69Y6" (
If %CurCap% GTR 0 Set/A "CurCap-=1"
Command/C Echo.!CurCap!
GoTo:EoF
)
::Comp. Cursors table cordinates.
Set/A "CursorCount=0"
For %%b in (%Cursors%) do (
If "%MOUSE[XY]%" EQU "%%b" (
Call:__WRITE_COLOR %LastCurPos% %LastCurVal% 8
Call:__WRITE_COLOR %%b %%Cursor_Icon:~!CursorCount!,1%% 10
Call Set "CurCur=%%Cursor_Icon:~!CursorCount!,1%%"
Set "LastCurPos=%%b"
Call Set "LastCurVal=%%Cursor_Icon:~!CursorCount!,1%%"
GoTo:EoF
)
Set/A "CursorCount+=1"
)
::Comp. Colors table cordinates.
For /l %%x in (2,1,7) do (
For /l %%y in (2,1,19) do (
If "%MOUSE[XY]%" EQU "X%%xY%%y" (
Echo.%Colors%|Find/I "%MOUSE[XY]%">NUL && (
Set "CurCol=!%MOUSE[XY]%!"
Call:__WRITE_COLOR %CurColPos% Û %LastColVal%
Call:__WRITE_COLOR %MOUSE[XY]% ° !%MOUSE[XY]%!
Set "CurColPos=%MOUSE[XY]%"
Set "LastColVal=!%MOUSE[XY]%!"
)
GoTo:EoF
)))
::Comp. Limits.
For /F "Tokens=1,2 Delims=X,Y" %%x in ("%MOUSE[XY]%") do (
If %%x LEQ 2 GoTo:EoF
If %%x GEQ 67 GoTo:EoF
If %%y LEQ 2 GoTo:EoF
If %%y GEQ 24 GoTo:EoF
)
::Paint on coordinate
If "%CurCur%" EQU "R" (GoTo:_DltLYR) ELSE (GoTo:_PntLYR)
:_DltLYR
Set "%MOUSE[XY]%[%CurCap%]="
If %CurCap% EQU 0 CALL:__WRITE_COLOR %MOUSE[XY]% Û 1&GoTo:EoF
Set/A "Tmp_Lyr=%CurCap%-1"
For /l %%i in (%Tmp_Lyr%,-1,0) do (
Set "Nxt_LYR=%MOUSE[XY]%[%%i]"
Call Set "INxt_LYR=%%!Nxt_LYR!%%"
If "%%i" EQU "0" (If Not Defined INxt_LYR Set "INxt_LYR=Û$1")
If Defined INxt_LYR (
For /F "Tokens=1,2 Delims=$" %%p in ("!INxt_LYR!") do (
CALL:__WRITE_COLOR %MOUSE[XY]% %%p %%q
Set "!Nxt_LYR!=%%p$%%q"
GoTo:EoF
)))
:_PntLYR
CALL:__WRITE_COLOR %MOUSE[XY]% %CurCur% %CurCol%
Set "%MOUSE[XY]%[%CurCap%]=%CurCur%$%CurCol%"
GoTo:EoF
:LOAD_SCR
More/C<NUL
Echo.                          Batch Paint                           ^(C^)Binary_Death
Echo. ÉÍËÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍ»
Echo. º º º                                                            º           º
Echo. ÌÍÎ͹                                                            º  Layers   º
Echo. º º º                                                            ºÚÄ¿ÚÄÄ¿ÚÄ¿ º
Echo. ÌÍÎ͹                                                            º³^<³³  ³³^>³ º
Echo. º º º                                                            ºÀÄÙÀÄÄÙÀÄÙ º
Echo. ÌÍÎ͹                                                            ºÄÄÄÄÄÄÄÄÄÄĺ
Echo. º º º                                                            º  Cursors  º
Echo. ÌÍÎ͹                                                            º Û ² ± ° R º
Echo. º º º                                                            ºÄÄÄÄÄÄÄÄÄÄĺ
Echo. ÌÍÎ͹                                                            º           º
Echo. º º º                                                            º           º
Echo. ÌÍÎ͹                                                            º           º
Echo. º º º                                                            º           º
Echo. ÌÍÎ͹                                                            º           º
Echo. º º º                                                            º           º
Echo. ÌÍÊͼ                                                            º           º
Echo. º                                                                º           º
Echo. º                                                                º           º
Echo. º                                                                º           º
Echo. º                                                                º           º
Echo. º                                                                º           º
Echo. ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍͼ
Command/C Echo.%CurCap%%CurCur%
CALL:LOAD_COLORS
GoTo:EoF
:LOAD_COLORS
Set/A "Count=1"
For %%f in (!Colors!) do (
Call:__WRITE_COLOR %%f Û !Count!
Set "%%f=!Count!"
Set/A "Count+=1"
)
GoTo:EoF
:__WRITE_COLOR
Set ColList=0;30$0;31$0;32$0;33$0;34$^
0;35$0;36$0;37$1;30$1;31$1;32$1;33$^
1;34$1;35$1;36$1;37
For /f "Tokens=%~3 Delims=$" %%c in ("%ColList%") do (
For /f "Tokens=1,2 Delims=X,Y" %%x in ("%~1") do (
Command/C Echo.[%%y;%%xH[%%cm%~2
))
GoTo:EoF
:_MOUSE[GET]
(echo.e100 B8 1 0'3'DB CD'3'B0 3'C'CD'3'B DB't'FA 91 D3 EA D3 E8 91 C3
echo.g116
echo.q)>%tmp%\mouse.dat
Debug<%tmp%\mouse.dat|Find /I "X">%tmp%\tmp.dat
for /f "tokens=2,3,4" %%x in (%tmp%\tmp.dat) do (
set "%%x"&set/a BX=0x!BX!
set "%%y"&set/a CX=0x!CX!+1
set "%%z"&set/a DX=0x!DX!+1
set "MOUSE[XY]=X!CX!Y!DX!"
)
GoTo:EoF


El picasso de la imagen es cortesía de 79137913, que en su día hizo arte en 8 bits con este script  ;D

PD: Se me olvidó mencionar que al igual que con el tetris es necesaria una primera ejecución con privilegios de administrador. Además, no funciona en windows de 64 bits.

HOLA!!!

Jajaja que buena onda! ya me habia olvidado de esa imagen!

GRACIAS POR LEER!!!
"Algunos creen que soy un bot, puede que tengan razon"
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

*Shadow Scouts Team*                                                No tienes permitido ver los links. Registrarse o Entrar a mi cuenta