1-) Executar
Bandera do Windows + R
2-) Digite excel /safe Enter para iniciar o Excel 2013
Digite outlook /safe Enter para iniciar o Outlook 2013
Digite winword /safe Enter para iniciar o Word 2013
Digite powerpnt /safe Enter para iniciar o PowerPoint 2013
Digite mspub /safe Enter para iniciar o Publisher 2013
domingo, 17 de novembro de 2013
domingo, 13 de outubro de 2013
Windows 8 - Segura Então
Microsoft Windows [versão 6.2.9200]
(c) 2012 Microsoft Corporation. Todos os direitos reservados.
C:\Windows\system32>slmgr /skms kms-c.no-ip.org:1688
C:\Windows\system32>slmgr /ato
C:\Windows\system32>
C:\Windows\system32>slmgr /skms kms-c.no-ip.org
C:\Windows\system32>
C:\Windows\system32>slmgr /ato
C:\Windows\system32>
C:\Windows\system32>slmgr /dli
C:\Windows\system32>
C:\Windows\system32>
(c) 2012 Microsoft Corporation. Todos os direitos reservados.
C:\Windows\system32>slmgr /skms kms-c.no-ip.org:1688
C:\Windows\system32>slmgr /ato
C:\Windows\system32>
C:\Windows\system32>slmgr /skms kms-c.no-ip.org
C:\Windows\system32>
C:\Windows\system32>slmgr /ato
C:\Windows\system32>
C:\Windows\system32>slmgr /dli
C:\Windows\system32>
C:\Windows\system32>
quinta-feira, 10 de outubro de 2013
sábado, 5 de outubro de 2013
SolidWorks 2013 - Importa uma imagem de fundo
Ferramentas de esboço > Imagem de esboço > Inserir imagens de esboço
Inserir imagens de esboço
Para inserir uma imagem em um plano:
Em um esboço aberto,
clique em Imagem de esboço Tool_Sketch_Picture_Sketch.gif (barra de ferramentas Esboço)
ou em
Ferramentas > Ferramentas de esboço > Imagem de esboço.
Na caixa de diálogo, navegue até o arquivo da imagem e clique em Abrir.
A imagem é inserida.
Defina as propriedades na primeira página do PropertyManager de Imagem de esboço como necessário.
É possível redimensionar a imagem na área de gráficos arrastando suas alças.
É possível arrastar a imagem sem alterar seu tamanho quando o ponteiro muda para pointer_Move_View.gif.
Clique em PM_OK.gif.
PJT Mecatrônica: Semáforo com LEDs
PJT Mecatrônica: Semáforo com LEDs: O projeto seguinte é simples, mas útil pra quem quiser montar uma maquete de cidade, ferrovia etc. Consiste na utilização dos pulsos do ...
====================================
Lista de Componentes:
CI NE555 - 1
CI CD4017 - 1
Diodo 1N4148 - 10
LED Verde - 1
LED Amarelo - 1
LED Vermelho - 1
Resistor 10kΩ - 2
Resistor 220Ω - 3
Capacitor Eletrolítico 220uF/16v - 1
Lembrando ainda que é possível utilizar transistores para acionar lâmpadas ao invés de LEDs, podendo criar um semáforo em escala real.
Observação: Não esquecer de alimentar o pino 16 do CD4017 com os 9 ou 12V e o pino (8) ao negativo da bateria ou fonte.
====================================
Semáforo com LEDs
O projeto seguinte é simples, mas útil pra quem quiser montar uma maquete de cidade, ferrovia etc.
Consiste na utilização dos pulsos do CI 555 para a excitação do pino de CLOCK do CI 4017, com isso a cada pulso do 555 uma das dez saídas do 4017 é acionada. O circuito é o seguinte:
A alimentação (VCC) pode ser de 6 a 12V, garantindo um bom funcionamento do circuito e boa luminosidade em relação ao consumo de corrente e a tensão de funcionamento dos circuitos integrados.
Lista de Componentes:
CI NE555 - 1
CI CD4017 - 1
Diodo 1N4148 - 10
LED Verde - 1
LED Amarelo - 1
LED Vermelho - 1
Resistor 10kΩ - 2
Resistor 220Ω - 3
Capacitor Eletrolítico 220uF/16v - 1
Fiz uma simulação do circuito na plataforma PROTEUS (software de desenvolvimento, simulação e confecção de circuitos), para demonstrar o funcionamento:
Observação: Não esquecer de alimentar o pino 16 do CD4017 com os 9 ou 12V e o pino (8) ao negativo da bateria ou fonte.
Postado por Junior Silva às 20:01
domingo, 9 de junho de 2013
quinta-feira, 30 de maio de 2013
Agora
/////////////////////////////////////////////////////////////////////
=================================================================
***********************************************************************
**********************************************************************
sexta-feira, 17 de maio de 2013
Elgg – Acabando com o erro da morte!
Criar a sua própria Rede Social ficou muito fácil com o script PHP/MySQL de código aberto Elgg. Mas isso não quer dizer que o processo de instalação será feito sem nenhuma ocorrência de erro.
As vezes alguns módulos no Apache precisam ser ativados, ou desativados, para que a instalação ocorra bem e você consiga colocar no ar o seu próprio site social.
Neste post vou apresentar a solução para o problema mais comum na hora de instalar oElgg, principalmente em Localhost. Vamos utilizar como exemplo para a solução do problema o Wamp, por ser o mais utilizado entre os usuários do TekZoom. Mesmo assim acredito que pessoas que utilizam outras soluções não encontraram dificuldades para seguir o que mostramos aqui.
E para presentear nossos visitantes vamos falar também de outro assunto muito comentado, o de Templates Profissionais para o Elgg. Este é um artigo para todos os profissionais que pretendem criar suas Redes Sociais!
Elgg – Acabando com o erro da morte!
Se você tentou instalar o Elgg e a mensagem de erro abaixou surgiu, não seu preocupe, seus problemas irão acabar agora!
“We think your server is running the Apache web server.
The rewrite test failed and the most likely cause is that AllowOverride is not set to All for Elgg’s directory. This prevents Apache from processing the .htaccess file which contains the rewrite rules.
A less likely cause is Apache is configured with an alias for your Elgg directory and you need to set the RewriteBase in your .htaccess. There are further instructions in the .htaccess file in your Elgg directory.“
Este erro acontece quando a opção “REWRITE_MODULE” do Apache não está habilitada. Para resolver o problema é muito simples e rápido.
Com o Wamp rodando em seu computador, clique no ícone do programa (próximo do relógio do Windows), vá até Apache, Módulos e Habilite a opção REWRITE_MODULE.
quinta-feira, 9 de maio de 2013
O Programa "5S"
Programa 5S: É um conjunto de cinco conceitos simples
que, ao serem praticados,
são capazes de modificar o seu humor,
o seu ambiente de trabalho,
a maneira de conduzir suas atividades rotineiras
e as suas atitudes.
O seu objetivo é proporcionar a empresa um programa de melhorias baseado em conceitos de Qualidade.
O que significa os 5S :
1S - SEIRI - SENSO DE UTILIZAÇÃO
2S - SEITON - SENSO DE ORDENAÇÃO
3S - SEISOU - SENSO DE LIMPEZA
4S - SEIKETSU - SENSO DE SAÚDE
5S - SHITSUKE - SENSO DE AUTODISCIPLINA
que, ao serem praticados,
são capazes de modificar o seu humor,
o seu ambiente de trabalho,
a maneira de conduzir suas atividades rotineiras
e as suas atitudes.
O seu objetivo é proporcionar a empresa um programa de melhorias baseado em conceitos de Qualidade.
O que significa os 5S :
1S - SEIRI - SENSO DE UTILIZAÇÃO
2S - SEITON - SENSO DE ORDENAÇÃO
3S - SEISOU - SENSO DE LIMPEZA
4S - SEIKETSU - SENSO DE SAÚDE
5S - SHITSUKE - SENSO DE AUTODISCIPLINA
sábado, 4 de maio de 2013
terça-feira, 30 de abril de 2013
Rádio trans comercial
Click na imagem
A Rádio trans comercial tem como objetivo principal levar até você
Entretenimento musical diferenciado e variado
Agradando assim vários públicos
Direção do Locutor Goiano Silva
segunda-feira, 15 de abril de 2013
Quebrando a senha de um Roteador Cisco (reset de senha)
Caso você precise acessar o roteador e não souber a senha, existe um procedimento para “quebrar” a senha, muito simples, porém pouco conhecido entre os usuários iniciantes. Segue o passo-a-passo abaixo:
1) Abrir o Hiperterminal e reinicializar o router: Abra uma sessão do terminal com o cabo de console conectado ao roteador e reinicie-o fisicamente (no botão liga/desliga).
2) Fazer o roteador entar em Rommon: Após 5 segundos aproximadamente, pressionar simultaneamente as teclas ctrl + break. Este procedimento interrompe a seqüência normal do boot e inicia o Rom Monitor, no prompt conforme abaixo.
rommon 1 >
3) Alterar o registro de configuração para 0×2142: Em rommon é necessário trocar o registro de configuração para que o roteador seja reinicializado sem carregar sua configuração contida na NVRAM (startup-config), desta forma nenhuma senha será carregada e o roteador iniciará em modo setup como se estivesse “zerado”.
rommon 1 > confreg 0×2142
rommon 2 > reset
Em routers mais antigos o comando pode ser “o/r 0×2142“.
O comando “i” também tem a mesma função do “reset“.
4) Sair do modo setup: Após reinicializar o roteador, ele será carregado sem nenhuma configuração. Isso não significa que a configuração foi apagada, apenas significa que a mesma não foi carregada, ela continua presente na NVRAM e você pode verificar com o comando “show startup-config“.
Na inicialização, pelo motivo do roteador estar desconfigurado, ele vem com a pergunta para iniciar o setup dialog. Vamos responder que não para termos acesso ao CLI.
Would you like to enter the initial configuration dialog? [yes/no]:N
Digite “no”, “n” ou pressione as teclas control+C.
5) Em seguida vamos carregar o arquivo de configuração na memória RAM:
router>enable (o router não pedirá senha, pois ainda não foi carregada na configuração)
router#copy startup-config running-config
6) Trocar as senhas e tirar as interfaces de shutdown: Como o processo de copiar da NVRAM para a RAM faz um “merge”, além do procedimento acima, é necessário tirar as interfaces de shutdown. Também não podemos esquecer de alterar as senhas (enable, console e VTY) antes de gravar a configuração novamente na NVRAM.
7) Voltar o registro de configuração para o valor padrão (0×2102) e gravar a config: Após tirar as interfaces de shutdown, deveremos voltar o registro para o padrão normal para que ele desta vez carregue o arquivo de configuração.
O código de registro 0×2142 faz que o roteador ignore o arquivo de backup contido na NVRAM. O registro 0×2102 que é o padrão, carrega o arquivo de backup da NVRAM para a memória RAM.
router(config)#config-register 0×2102
router#copy running-config startup-config
router#reload
Para verificar se o valor do registro de configuração está correto após a inicialização utilize o comando “show version“.
Espero que vocês tenham gostado do post e até a próxima!
domingo, 14 de abril de 2013
Jogo Buguelo
*****************************************************
Buguelo
E desenvolvimento voltado aos Demos
Nos deselvolves em cima do projeto
Chamados de software livre
A pedido da galera colocamos o FullDemo a disposição
Obs: não samos criadores
Porrisso nao mandaremos o codigo aberto
*****************************************************
http://moisesmonteiro20xx.blogspot.com.br/
Link do Jogo para baixar : Buguelo
http://www.4shared.com/zip/kgbQPwW1/FullDemo001.html
quarta-feira, 10 de abril de 2013
O homem que nunca desistiu (175Kg Transformação em Massa)
The Man Who Never Gave Up (175 Pound Transformation)
quarta-feira, 3 de abril de 2013
RPGMAKERVXACE - Mostra icone do item
#==============================================================================
# ★ RGSS3_Popup Icon Ver1.2
#==============================================================================
=begin
Autor:tomoaky
website: Hikimoki (http://hikimoki.sakura.ne.jp/)
Mostra icone do item ao abrir baus ou coletar itens.
Mostra um icone sobre um evento ou Player.
Para mostar o icone use o seguinte comando no "Chamar Script"
pop_icon(event_id, icon_id, duration)
event_id é o Id do evento que ira sofrer a ação
icon_id é o index do icon a ser usado。
se o "event_id" for "0" será tratado como o evento que o invocou
-1 é o player
duration é a duração do evento ( em frames)
EX:)pop_icon(-1, 17, 300)
Isso ira exibir um icone no player por 5 segundos.
Um pop_icon Não será exibido seguido do outro
Use delete_icon com espera de alguns frames
para evibir pop_icon Seguidos。
EX)delete_icon(-1)
Para revover o icone do personagem
Variavéis usadas (padrão do Script)
0006
2012.01.19 Ver1.2
・Adicionado o comando delete_icon.
・Erro de popup corrigido.
2011.12.21 Ver1.11
・Corrigido o erro de exibição no evento demasiado "0"
2011.12.17 Ver1.1
・Adicionado tempo de exibição
2011.12.15 Ver1.0
Publicação.
=end
#==============================================================================
# □ Configuração.
#==============================================================================
module TMICPOP
GRAVITY = 24 # Gravidade de acordo com o Icone
SPEED = -320 # Velocidade
VN_TARGET = 6 # Variavel de atribuição do icone.
end
#==============================================================================
# □ コマンド
#==============================================================================
module TMICPOP
module Commands
#--------------------------------------------------------------------------
# ○ アイコンポップの開始
#--------------------------------------------------------------------------
def pop_icon(event_id, icon_id, duration = 120)
target = get_character(event_id)
return unless target
target.icpop_id = icon_id
target.icpop_duration = duration
end
#--------------------------------------------------------------------------
# ○ アイコンポップの削除
#--------------------------------------------------------------------------
def delete_icon(event_id)
target = get_character(event_id)
return unless target
target.icpop_delete_flag = true
end
end
end # module TMICPOP
#==============================================================================
# ■ Game_CharacterBase
#==============================================================================
class Game_CharacterBase
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :icpop_id # アイコンポップ ID
attr_accessor :icpop_duration # アイコンポップ 表示時間
attr_accessor :icpop_delete_flag # アイコンポップ 削除フラグ
#--------------------------------------------------------------------------
# ● 公開メンバ変数の初期化
#--------------------------------------------------------------------------
alias tmicpop_game_characterbase_init_public_members init_public_members
def init_public_members
tmicpop_game_characterbase_init_public_members
@icpop_id = 0
@icpop_duration = 0
@icpop_delete_flag = false
end
end
#==============================================================================
# ■ Sprite_Character
#==============================================================================
class Sprite_Character
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# character : Game_Character
#--------------------------------------------------------------------------
alias tmicpop_sprite_character_initialize initialize
def initialize(viewport, character = nil)
@icpop_duration = 0
tmicpop_sprite_character_initialize(viewport, character)
end
#--------------------------------------------------------------------------
# ● 解放
#--------------------------------------------------------------------------
alias tmicpop_sprite_character_dispose dispose
def dispose
dispose_icpop
tmicpop_sprite_character_dispose
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias tmicpop_sprite_character_update update
def update
update_icpop
tmicpop_sprite_character_update
end
#--------------------------------------------------------------------------
# ● 新しいエフェクトの設定
#--------------------------------------------------------------------------
alias tmicpop_sprite_character_setup_new_effect setup_new_effect
def setup_new_effect
tmicpop_sprite_character_setup_new_effect
if !@icpop_sprite && @character.icpop_id > 0
@icpop_id = @character.icpop_id
@character.icpop_id = 0
start_icpop
end
end
#--------------------------------------------------------------------------
# ○ アイコンポップ表示の開始
#--------------------------------------------------------------------------
def start_icpop
dispose_icpop
@icpop_duration = @icpop_duration_max = @character.icpop_duration
@icpop_sprite = ::Sprite.new(viewport)
@icpop_sprite.bitmap = Cache.system("IconSet")
@icpop_sprite.src_rect.set(@icpop_id % 16 * 24, @icpop_id / 16 * 24, 24, 24)
@icpop_sprite.ox = 12
@icpop_sprite.oy = 24
@icpop_y_plus = 0
@icpop_y_speed = TMICPOP::SPEED
update_icpop
end
#--------------------------------------------------------------------------
# ○ アイコンポップの解放
#--------------------------------------------------------------------------
def dispose_icpop
@character.icpop_delete_flag = false
if @icpop_sprite
@icpop_sprite.dispose
@icpop_sprite = nil
end
end
#--------------------------------------------------------------------------
# ○ アイコンポップの更新
#--------------------------------------------------------------------------
def update_icpop
if @icpop_duration > 0
@icpop_duration -= 1
if @character.icpop_delete_flag
@icpop_duration = 0
dispose_icpop
elsif @icpop_duration > 0
@icpop_sprite.x = x
@icpop_y_plus += @icpop_y_speed
@icpop_y_speed += TMICPOP::GRAVITY
if @icpop_y_plus > 0
@icpop_y_plus = 0 - @icpop_y_plus
@icpop_y_speed = 0 - @icpop_y_speed / 2
end
@icpop_sprite.y = y - height + (@icpop_y_plus / 256)
@icpop_sprite.z = z + 200
@icpop_sprite.opacity = (@icpop_duration < 16 ? @icpop_duration * 16 :
(@icpop_duration_max - @icpop_duration) * 32)
else
dispose_icpop
@character.icpop_id = 0
end
end
end
end
#==============================================================================
# ■ Game_Event
#==============================================================================
class Game_Event
include TMICPOP::Commands
#--------------------------------------------------------------------------
# ○ キャラクターの取得
# param : -1 ならプレイヤー、0 ならこのイベント、それ以外はイベント ID
#--------------------------------------------------------------------------
def get_character(param)
if param < 0
$game_player
else
$game_map.events[param > 0 ? param : @id]
end
end
end
#==============================================================================
# ■ Game_Interpreter
#==============================================================================
class Game_Interpreter
include TMICPOP::Commands
#--------------------------------------------------------------------------
# ● アイテムの増減
#--------------------------------------------------------------------------
alias tmicpop_game_interpreter_command_126 command_126
def command_126
tmicpop_game_interpreter_command_126
value = operate_value(@params[1], @params[2], @params[3])
if value > 0
if $game_variables[TMICPOP::VN_TARGET] >= -1 && !$game_party.in_battle
item = $data_items[@params[0]]
pop_icon($game_variables[TMICPOP::VN_TARGET], item.icon_index)
end
end
end
#--------------------------------------------------------------------------
# ● 武器の増減
#--------------------------------------------------------------------------
alias tmicpop_game_interpreter_command_127 command_127
def command_127
tmicpop_game_interpreter_command_127
value = operate_value(@params[1], @params[2], @params[3])
if value > 0
if $game_variables[TMICPOP::VN_TARGET] >= -1 && !$game_party.in_battle
item = $data_weapons[@params[0]]
pop_icon($game_variables[TMICPOP::VN_TARGET], item.icon_index)
end
end
end
#--------------------------------------------------------------------------
# ● 防具の増減
#--------------------------------------------------------------------------
alias tmicpop_game_interpreter_command_128 command_128
def command_128
tmicpop_game_interpreter_command_128
value = operate_value(@params[1], @params[2], @params[3])
if value > 0
if $game_variables[TMICPOP::VN_TARGET] >= -1 && !$game_party.in_battle
item = $data_armors[@params[0]]
pop_icon($game_variables[TMICPOP::VN_TARGET], item.icon_index)
end
end
end
end
RPGMAKERVXACE - Sistema Mouse
# ================================================= ==============================
# Sistema Mouse (RGSS3)
# Por Jet10985 (Jet)
# Código Alguns por: Woratana, Berka
# Usa: Caminho listra-92 de encontrar
# Super Teste Ajuda / Debug Heavy / Solicitado por: Nathaniel (Beleren)
# ========================== ================================================== ===
# Este script irá permitir a plena utilização do rato dentro de RMVX para vários
fins #.
# Este script tem:. 7 opções de personalização
# =================== ================================================== ==========
# Métodos sobrescritos:
# Game_Player: move_by_input
# ------------------------------- ------------------------------------------------
# alias métodos:
# Scene_Map: atualização, terminar, update_transfer_player
# Entrada:? atualização, gatilho, de imprensa, de repetição, dir4, dir8?
# Window_Selectable: atualização, top_row =
# Scene_File: update
# Window_NameInput: update
# Game_Temp: inicializar
# Game_Event: inicializar , atualização
# =============================================== ================================ = começar Mostrando texto acima evento quando mouse passa: Se você quer uma mensagem para aparecer mais cabeça de um evento quando o mouse está pairando sobre o evento, colocar este comentário no evento: MENSAGEM DE TEXTO mouse aqui tudo depois do texto será a exibição pairando. ------------------ -------------------------------------------------- ------------ imagem do mouse Alterar acima evento quando mouse passa: Se você quiser que a imagem do mouse para alterar temporariamente whne sobre um evento, coloque este comentário em caso MOUSE PIC nome / número , se você colocar um nome, o mouse torna-se esse quadro, mas se você colocar um número em seguida, o rato vai se tornar o ícone que é o número de identificação ----------------------- -------------------------------------------------- ------- específicos do mouse clique em vias de movimento: Se você quiser que o jogador pousar especificamente em um quadrado em torno de um evento quando eles clique para mover sobre o evento, coloque um desses comentários no evento: Mova o mouse para cima / esquerda / direita / baixo só colocar a direção que você quer que o jogador pousar. --------------------------------- ----------------------------------------------- Clique para ativar : Se você quiser que um evento para iniciar automaticamente quando é clicado, coloque isso em um comentário evento: clique do mouse -------------------------- -------------------------------------------------- ---- Não pare o jogador ao caminhar sobre um evento de toque: Por padrão, este script vai parar um rato causou movimento se o jogador anda acima / abaixo um evento de toque jogador touch / evento. Se você deseja que o evento para ativar, mas para o jogador a continuar caminhando ao seu destino, colocar este comentário no evento: MOUSE nostop ---------------------- -------------------------------------------------- -------- Ignorar Eventos: Para ter um evento ser ignorado quando o mouse faz seu caminho de movimento (como se o evento não está lá), colocar este comentário no evento: mouse através ------ -------------------------------------------------- ------------------------ Notas extras: Em janelas selecionáveis que têm mais itens do que o que é mostrado, os jogadores podem ou colocar o mouse abaixo da janela para rolar para baixo , ou usar o mouse de roda de rolagem para rolar para cima / para baixo. Você pode ativar eventos de botão de ação por estar ao lado do evento e clicando sobre ele com o mouse. = fim JetMouse módulo # Se você estiver usando um gráfico, é isso. # Deve ser no Gráficos / pasta System. CURSOR_PICTURE = "cursor do mouse" # Se você não estiver usando um gráfico, este ícone será o mouse. # Para usar o ícone, basta colocar uma imagem inexistente como o acima configuração ICON_INDEX = 387 # Você quer que o jogador seja capaz de se mover, clicando o mouse? ALLOW_MOUSE_MOVEMENT = true # Você quer o movimento do mouse para fazer 8-dir a pé? # Requer 8-Dir Walking pelo Jet. DO_8DIR_WALKING = false # Girar esta chave vai fazer o mouse invisível e unusuable até # o interruptor estiver desligado TURN_MOUSE_OFF_SWITCH = 20 # Você quer o mouse para verificar a rolagem da roda do mouse em selectbale # windows? Não usar isso pode reduzir alguns raros casos de defasagem. USE_WHEEL_DETECTION = false # Você quer usar a fórmula de Dijkstra para pathfinding? # Este é mais preciso, mas mais lento. USE_DIJKSTRA = true end # ========== ================================================== =================== # NÃO edite mais se você não sabe o que fazer. # ================= ================================================== ============ módulo Rato Get_Message = Win32API.new ('user32', 'GetMessage', 'plll', 'l') GetAsyncKeyState = Win32API.new ("user32", "GetAsyncKeyState", 'i', 'i') = GetKeyState Win32API.new ("user32", "GetKeyState", 'i', 'i') = SetCursorPos Win32API.new ('user32', 'SetCursorPos', 'nn', 'n ') = GetCursorPo Win32API.new ('user32', 'GetCursorPos', 'p', 'i') = ScreenToClient Win32API.new ('user32', 'ScreenToClient', 'lp', 'i') = FindWindowA Win32API. novo ('user32', 'FindWindowA', 'PP', 'l') GetClientRect = Win32API.new ('user32', 'GetClientRect', 'lp', 'i') = GetWindowRect Win32API.new ('user32', 'GetWindowRect', 'lp', 'i') = conteúdo File.open ('Game.ini', 'r') {| f | f.read} q = conteúdo [Título / = (+) /.]. nulo? ? "Cccc": US $ 1 = @ alça FindWindowA.call ('RGSS jogador', q) module_function Ponto = Struct.new (: x,: y) = Mensagem Struct.new (: mensagem,: wparam,: lparam,: pt) Param = Struct.new (: x,: y,: scroll) Scroll = 0x0000020A def HIWORD (dword); retorno ((dword & 0xFFFF0000) >> 16) &0x0000ffff; final def LOWORD (dword); dword retorno &0x0000ffff; final def word2signed_short (valor ) valor de retorno if (value & 0x8000) == 0 retorno -1 * ((valor ~ & 0x7fff) + 1) end def unpack_dword (buffer, offset = 0) ret = buffer [deslocamento + 0] & 0x000000FF ret | = buffer ([deslocamento + 1 ] << (8 * 1)) & 0x0000ff00 ret | = (buffer [deslocamento + 2] << (8 * 2)) & 0x00ff0000 ret | = (buffer [deslocamento + 3] << (8 * 3)) & 0xff000000 ret retorno final def unpack_msg (buffer) msg = Message.new; msg.pt = Point.new msg.message = unpack_dword (buffer, 4 * 1) = msg.wparam unpack_dword (buffer, 4 * 2) = msg.lparam unpack_dword (tampão , 4 * 3) = msg.pt.x unpack_dword (buffer, 4 * 5) = msg.pt.y unpack_dword (buffer, 4 * 6) retorno msg final def wmcallback (msg) o retorno a menos msg.message == Vá param = Param.new param.x = word2signed_short (LOWORD (msg.lparam)) = param.y word2signed_short (HIWORD (msg.lparam)) = param.scroll word2signed_short (HIWORD (msg.wparam)) retorno param [param.x, . y, param.scroll] final clique def? (botão) return false se $ game_switches [JetMouse :: TURN_MOUSE_OFF_SWITCH] verdadeiro retorno if@keys.include? (botão) return false end def imprensa? (botão) return false se $ game_switches [JetMouse :: TURN_MOUSE_OFF_SWITCH] retorno if@press.include verdade? (botão) return false end def set_pos (x_pos = 0, y_pos = 0) largura, altura = client_size if (x_pos.between? (0, largura) && y_pos. entre? (0, altura)) SetCursorPos.call (client_pos [0] + x_pos, client_pos [1] + y_pos) final final de atualização def retorno se $ game_switches [JetMouse :: TURN_MOUSE_OFF_SWITCH] @ pos = Mouse.pos @ chaves, @ pressione = [], [] @ keys.push (1) se GetAsyncKeyState.call (1) & 0x01 == 1 @ keys.push (2) se GetAsyncKeyState.call (2) & 0x01 == 1 @ keys.push (3) se GetAsyncKeyState.call (4) & 0x01 == 1 @ press.push (1) se pressionado? (1) @ press.push (2) se pressionado? (2) @ press.push (3) se pressionado? (4) final def pressionado? (key) return true menos GetKeyState.call (chave). entre? (0, 1) return false end def global_pos pos = [0, 0] embalagem. ('ll') GetCursorPo.call (pos)! ? = 0 (retorno pos.unpack ('ll')): (retorno [0, 0]) end def pos retorno 0, 0 se $ game_switches [JetMouse :: TURN_MOUSE_OFF_SWITCH] x, y = screen_to_client (* global_pos) , largura height = client_size começam x = 0 se x <= 0, y = 0 se y <= 0 x = largura if x> = largura; y = altura se y> = altura retorno x, y final fim def screen_to_client (x, y ) retornar zero, a menos que x && y pos = [x, y] embalagem. ('ll') ) ScreenToClient.call (@ punho, pos) = 0 (retorno pos.unpack ('ll'!?): (retorno [0 , 0]) end def client_size rect = [0, 0, 0, 0]. pack ('l4') GetClientRect.call (@ alça, rect) inferior direito, rect.unpack = ('l4') [2 .. 3] retorne para a direita, de baixo final def client_pos rect = [0, 0, 0, 0]. pack ('l4') GetWindowRect.call (@ alça, rect) à esquerda, superior = rect.unpack ('l4') [0 .. 1] retorno deixaram + 4, superior + 30 final grade def retorno [-1, -1] se $ game_switches [JetMouse :: TURN_MOUSE_OFF_SWITCH] retorno [-1, -1] if@pos.nil? retorno [(@ pos [0] / 32), (@ pos [1] / 32)] end def true_grid retorno [grid [0] + $ game_map.display_x / 256, grade [1] + $ game_map.display_y / 256] final área def ? (x, y, largura, altura) return false se $ game_switches [JetMouse :: TURN_MOUSE_OFF_SWITCH] voltar if@pos.nil falso? retorno @ pos [0]. entre? (x, x + largura) && @ pos [1 .?] entre (y, altura + y) end def rolagem msg = "\ 0" * 32; Get_Message.call (msg, 0,0,0), r = wmcallback (unpack_msg (msg)) r retorno se r! . nulo? final final Sprite_Cursor classe <Sprite_Base attr_accessor: current_cursor,: not_default incluem JetMouse def initialize super- current_cursor @ = "" @ not_default = false Win32API.new ('user32', 'ShowCursor', 'i', 'i'). chamar (0) self.z = 5004 create_cursor (CURSOR_PICTURE) $ game_switches = [] atualização final create_cursor def (cursor = "") self.bitmap.dispose menos self.bitmap.nil? self.bitmap = nil começar self.bitmap = Cache.system (cursor) @ = current_cursor cursor salvamento self.bitmap Bitmap.new = (24, 24) = bitmap Cache.system ("Iconset") = rect Rect.new (ICON_INDEX% 16 * 24, ICON_INDEX / 16 * 24 , 24, 24) self.bitmap.blt (0, 0 bitmap, rect) @ current_cursor = ICON_INDEX final @ not_default = false final change_cursor def (cursor) self.bitmap.dispose menos self.bitmap.nil? self.bitmap = nil começar self.bitmap = Cache.system (cursor) @ current_cursor = cursor @ not_default = true resgate começar self.bitmap = Bitmap.new (24, 24) = bitmap Cache.system ("Iconset") rect = Rect.new ( cursor 16% * 24 cursor, / 16 * 24, 24, 24) self.bitmap.blt (0, 0 bitmap, rect) @ current_cursor = cursor @ not_default = true resgate create_cursor (CURSOR_PICTURE) final final final de atualização def retorno se self.disposed? se $ game_switches [TURN_MOUSE_OFF_SWITCH] self.opacity = 0 a menos self.opacity == 0 final self.opacity = 255 a menos self.opacity == 255 Super x = self.x y = self.y self.x, self.y = Mouse.pos self.x - = 8 se @ not_default self.y - = 8 se @ not_default final fim $ cursor = Sprite_Cursor.new módulo de entrada classe << auto jet5888_press alias? pressionar? unless $ @ def imprensa? (arg) Se arg == Input :: C return true se Mouse.press? (1) elsif arg == Entrada B :: return true se Mouse.press? (2) final jet5888_press? (arg ) final jet5888_repeat alias? repetir? unless $ @ def repetição? (arg) Se arg == Input :: C return true se Mouse.click? (1) elsif arg == Entrada B :: return true se Mouse.click? (2) final jet5888_repeat? (arg ) final jet5888_trigger alias? gatilho? unless $ @ def gatilho? (arg) Se arg == Input :: C return true se Mouse.click? (1) elsif arg == Entrada B :: return true se Mouse.click? (2) final jet5888_trigger? (arg ) final apelido atualização jet8432_update unless $ @ def update (* args, bloco &) jet8432_update (* args, bloco &) se $ game_switches [JetMouse :: TURN_MOUSE_OFF_SWITCH] && $ cursor.opacity! = 0 = 0 $ cursor.opacity final cursor $. atualizar a menos que $ game_switches [JetMouse :: TURN_MOUSE_OFF_SWITCH] Mouse.update a menos que $ game_switches [JetMouse :: TURN_MOUSE_OFF_SWITCH] finais apelido jet1626_dir4 dir4 unless $ @ def dir4 (* args, bloco &) se! $ game_temp.nil? se game_temp.move_because_of_mouse $ se ! $ game_temp.mouse_path.empty? && $ Game_player.movable? && ! $ game_map.interpreter.running? && SceneManager.scene_is? (Scene_Map) && jet1626_dir4 (* args, bloco e) == 0 f = $ game_temp.mouse_path.reverse!. pop $ game_temp.mouse_path.reverse! retorno f * 2 mais game_temp.move_because_of_mouse $ = false $ game_temp . mouse_path = [] end end end jet1626_dir4 (* args, bloco &) end apelido jet1626_dir8 dir8 unless $ @ def dir8 (* args, bloco &) se! $ game_temp.nil? se $ game_temp.move_because_of_mouse se! $ game_temp.mouse_path.empty ? && $ Game_player.movable? && ! $ game_map.interpreter.running? && SceneManager.scene_is? (Scene_Map) && jet1626_dir8 (* args, bloco e) == 0 f = $ game_temp.mouse_path.reverse!. pop $ game_temp.mouse_path.reverse! se [1, 2, 3, 4]. incluir? (f) de retorno f * 2 mais f caso quando 5 return 1 quando seis retorno 3 , quando sete retorno 7 quando 8 9 retorno final final mais game_temp.move_because_of_mouse $ = false $ game_temp.mouse_path = [] final final final jet1626_dir8 (* args, & bloco) final final final classe Game_Player def move_by_input retornar se! móvel? | Game_map.interpreter.running $ |? move = Input.dir4 move_straight (movimento) se movimento> 0 final final classe Game_Character def find_mouse_path (trgt_x, trgt_y) fake_char = Game_Character.new fake_char.moveto (self.x, self.y) fake_char.set_direction (self.direction) path = [] g = MGraph.new (JetMouse :: DO_8DIR_WALKING 8: 4) até fake_char.x == && trgt_x fake_char.y == trgt_y se JetMouse :: USE_DIJKSTRA path.push ( g.Dijkstra (fake_char.x, fake_char.y, trgt_x, trgt_y)) mais path.push (g.AStar (fake_char.x, fake_char.y, trgt_x, trgt_y)) final se o caminho [-1]! = 0 fake_char . move_straight (caminho [-1] * 2) mais path = [] pausa final final Graphics.frame_reset retorno path.reverse final final classe PQueue <Matriz def addEl (ii) iii = 0 enquanto iii <auto && self.comprimento [iii ] <ii iii + = 1 fim self.insert (III, II) final def REMEL (ii) iii = 0 enquanto iii <auto && self.comprimento [iii] <ii iii + = 1 fim self.delete_at (iii) final def encontrado? (ii) i = 0 j = self.comprimento-1 ss = false enquanto (não ss) && i <= j mid = (i + j) / 2 se auto [meados] == ii ff = true mais se auto [meados] <ii i = meio uma outra j = meio-1 final final final retorno ff final final classe MGraph attr_accessor: w,: h attr_accessor: vizinhos attr_accessor: passage_table def initialize (nh, char = $ game_player) @ w = $ game_map.width @ h = $ game_map.height @ vizinhos = nh @ passage_table = Table.new (@ w @ h, nh) for i in 0 .. @ w para j em 0 .. @ h para k em 1 .. nh @ passage_table [i, j, k-1] = char.passable? (i, j, k * 2)? 1: 0 se não neighborExist (nodeOf (i, j), k)? @ passage_table [i, j, k - 1] = 0 final final final final final def nodeOf (x, y) retorno y * @ w + x + um fim def XNode (idxNode) retorno (idxNode-1)% @ w final def yNode (idxNode) retorno (idxNode-1) / @ w final def neighborOf (idxNode, dir) caso dir quando um retorno (idxNode + @ w) quando 2 retorno (idxNode-1) , quando três de retorno (idxNode +1) quando 4 retorno (idxNode-@ w) final final neighborExist def? (idxNode, dir) caso dir quando um retorno (yNode (idxNode) <@ h-1) quando 2 retorno (XNode (idxNode)> 0) quando 3 retorno (XNode (idxNode) <@ w-1) , quando quatro retorno (yNode (idxNode)> 0) end end def reconstruct_path (s, t, vertices_prev) u = t enquanto vertices_prev [u]! = s && vertices_prev [u]! = 0 u = vertices_prev [u] final caso u quando s + w @ return 1 quando s-1 return 2 s quando um retorno 3 quando s-w @ retorno 4 acabar retornar 0 final def heuristic_dist (u, v) dx = XNode (v)-XNode (u) dy = yNode (v)-yNode (u) retorno (dx.abs + dy.abs) final def Dijkstra (x1, y1 , x2, y2) s = nodeOf (x1, y1) = t nodeOf (x2, y2) q = PQueue.new (1, 0) q.addEl (s) = vertices_dist Array.new (@ w * @ h + 1 , 9999) vertices_prev = Array.new (@ w * @ h + 1, 0) vertices_dist [s] = 0 , enquanto q.length> 1 d = vertices_dist [q [1]] u = q [1] se q.length > 2 para ii em 2 .. q.length-1 se vertices_dist [q [ii]] <d d = vertices_dist [q [ii]] u = q [ii] final final final se u == t retorno reconstruct_path (s , t, vertices_prev) final q.remEl (u) for i in 1 .. @ vizinhos se @ passage_table [XNode (u), yNode (u), i - 1] == 1 v = neighborOf (u, i) alt = vertices_dist [u] + 1 se alt <vertices_dist [v] q.addEl (v) vertices_dist [v] = alt vertices_prev [v] = u final final final final return 0 end def AStar (x1, y1, x2, y2) s = nodeOf (x1, y1) = t nodeOf (x2, y2) q = PQueue.new (1, 0) q.addEl (s) q1 = Array.new (@ w * @ h + 1, false) vertices_prev = Array.new (@ w * @ h + 1, 0) = vertices_dist Array.new (@ w * @ h + 1, 9999) = h_score Array.new (@ w * @ h + 1, 0) = Array f_score. novo (@ w * @ h + 1, 9999) vertices_dist [s] = 0 h_score [s] = heuristic_dist (s, t) f_score [s] = h_score [s] enquanto q.length> 1 d = f_score [q [ 1]] u = q [1] se q.length> 2 para ii em 2 .. q.length-1 se f_score [q [ii]] <d d = f_score [q [ii]] u = q [ii ] final final final se u == t retorno reconstruct_path (s, t, vertices_prev) final q.remEl (u) q1 [u] = true for i in 1 .. @ vizinhos se @ passage_table [XNode (u), yNode ( u), i - 1] == 1 v = neighborOf (u, i) ! se q1 [v] = tentative_g_score vertices_dist [u] + 1 !? se q.found (v) q.addEl (v) tentative_is_better = true elsif tentative_g_score <vertices_dist [v] = true tentative_is_better mais tentative_is_better = false final se tentative_is_better se vertices_prev [v]! = 0 se f_score [u] <f_score [vertices_prev [v]] vertices_prev [v] = u final mais vertices_prev [v] = u final vertices_dist [v] = tentative_g_score h_score [v] = heuristic_dist (v, t) f_score [v] = vertices_dist [v] + h_score [v] final final final final final return 0 end end classe Game_Temp attr_accessor: move_because_of_mouse attr_accessor: mouse_controlled_object attr_accessor: making_path attr_accessor: mouse_path attr_accessor: did_mouse_change apelido jet6742_initialize inicializar a menos que $ @ def initialize (* args, bloco &) jet6742_initialize (* args, bloco &) @ move_because_of_mouse = false @ making_path = false @ mouse_path = [] end final classe Window_Selectable apelido jet6742_update atualizar a menos que $ @ def update (* args, bloco &) jet6742_update (* args, bloco &) && update_mouse se self.active self.visible finais apelido jet7222_top_row top_row = unless $ @ def top_row = (* args, bloco &) @ last_cursor_move = 0 se @ last_cursor_move.nil? @ last_cursor_move - = 1 retorno se in_rect_loop @ | | @ last_cursor_move> 0 jet7222_top_row (* args, bloco &) @ = 10 last_cursor_move final update_mouse def se JetMouse USE_WHEEL_DETECTION :: f = Mouse.scroll ! se f.nil? se f [2] <0 se contents.height> self.oy && self.height - contents.height <-self.height + 32 = self.top_row self.top_row + 1 final mais self.top_row = self.top_row - 1 se contents.height> self.height final final final original_index = @ índice fake_index = -2 add_x = self.viewport.nil? ? 0: self.viewport.ox add_y = self.viewport.nil? ? 0: self.viewport.oy self.item_max.times {| i | rect = item_rect (i) ? se Mouse.area (self.x - self.ox + rect.x + 16 + add_x, self.y - auto. oy + rect.y + 16 + add_y, rect.width, rect.height) fake_index = i final } @ index = fake_index == -2? original_index: fake_index update_cursor final final classe Scene_File atualização wor_scefil_upd_mouse apelido unless $ @ def update (* args, bloco &) (0 .. self.item_max - 1) cada um do | i |. ix = @ savefile_windows [i] x. iy = @ savefile_windows [i]. y + 48 = iw @ savefile_windows [i] largura. ih = @ savefile_windows [i] altura. Mouse.area se? (ix, iy, iw, ih) @ savefile_windows [@ index]. selecionado = false @ savefile_windows [i]. selecionado = true @ index = i final final wor_scefil_upd_mouse (* args, bloco &) final final classe Window_NameInput atualização wor_winnam_upd_mouse apelido unless $ @ def update (* args, bloco &) wor_winnam_upd_mouse (* args, bloco &) se auto. ativo e self.visible (0 .. self.table [@ page] tamanho - 1). cada um fazer |. i | espirre = item_rect (i) = IRX self.x + 16 + irect.x - self.ox Iry = self.y + 16 + irect.y - self.oy @ index = i se Mouse.area (IRX, Iry, irect.width, irect.height)? final final final final classe Window_PartyCommand def update_mouse (0 .. self.item_max - 1) cada um fazer | i |. espirre = item_rect (i) = IRX self.viewport.ox + 16 + irect.x - auto.
IRX = self.viewport.ox + 288 + 16 + 96 + irect.x
Iry = 288 + 16 + 64 + irect.y
self.index = i se Mouse.area? (IRX, Iry, irect.width, irect.height )
final
final
final classe Window_EventPopUp <Window_Base def initialize (x, y, largura, altura, texto) super (x, y, largura, altura) self.opacity = 0 @ texto = texto atualização final def refresh self.contents.clear auto . contents.draw_text (0, 0, self.width, 24, @ texto) final final classe Game_Event attr_accessor: popup_window,: Página def check_for_comment (regexp) retornar if@list.nil falso? para o item na lista @ se item.code == 108 ou 408 item.code == se! item.parameters [0] [regexp]. nulo? retornar $ 1.nil? ? verdade: $ 1 final final final return false end def através verdadeiro retorno se check_for_comment (Rato / POR / i) && $ game_temp.making_path @ return através final de atualização jet2734_update apelido unless $ @ def update (* args, & bloco) jet2734_update (* args, & bloco) update_mouse_popup update_mouse_change final def update_mouse_popup interruptor = $ game_switches [JetMouse :: TURN_MOUSE_OFF_SWITCH] se Mouse.true_grid == [self.x, self.y] &&! && interruptor! @ apagados f self.check_for_comment = (/ MOUSE texto (. +) / i) , se f = falso! Bitmap.new q = (1, 1) = tamanho q.text_size (f) x = self.screen_x - 16 - Size.Width / 2 tamanho - y = self.screen_y - 52 . altura / 2 se self.popup_window! = nil self.popup_window.dispose self.popup_window = nil final self.popup_window Window_EventPopUp.new = (x, y, Size.Width + 34, Size.Height + 34, f) q. dispor q = nil final mais se self.popup_window! = nil self.popup_window.dispose self.popup_window = nil final final final update_mouse_change def se Mouse.true_grid == [self.x, self.y] f = self.check_for_comment (( / salvamento MOUSE PIC (. +) / i) falso) se f! = false se f.to_i! = 0 $ cursor.change_cursor (f.to_i) a menos $ cursor.current_cursor == f.to_i mais $ cursor.change_cursor ( f) a menos que $ cursor.current_cursor == f final game_temp.did_mouse_change $ = true final final final final classe Scene_Map apelido atualização jet6742_update unless $ @ def update (* args, bloco &) se! $ game_message.visible update_mouse_left_click final jet6742_update (* args, & bloco) check_mouse_change finais apelido jet7811_terminate encerrar a menos que $ @ def encerrar (* args, bloco &) para o evento em $ game_map.events.values próximos se event.popup_window.nil? event.popup_window.dispose menos event.popup_window.disposed? event.popup_window = nil end $ cursor.create_cursor (JetMouse CURSOR_PICTURE ::) se! [JetMouse :: CURSOR_PICTURE, JetMouse :: ICON_INDEX]. incluir? (cursor.current_cursor $) $ cursor.opacity = 0 jet7811_terminate (* args, bloco &) $ cursor . opacidade = 255 a menos que $ game_switches [JetMouse :: TURN_MOUSE_OFF_SWITCH] final update_transfer_player jet8887_update_transfer_player apelido unless $ @ def update_transfer_player (* args, bloco &) se $ game_player.transfer? $ cursor.create_cursor (JetMouse CURSOR_PICTURE ::) se & Bloco) final check_mouse_change def retorno se $ game_switches [JetMouse :: TURN_MOUSE_OFF_SWITCH] se $ game_message.visible | |? $ game_player.transfer cursor.create_cursor $ (JetMouse CURSOR_PICTURE ::) se se $ game_temp.did_mouse_change.nil? && ! [JetMouse :: CURSOR_PICTURE, JetMouse :: ICON_INDEX]. incluir? (cursor.current_cursor $) $ game_temp.did_mouse_change = nil end def update_mouse_left_click retorno se $ game_map.interpreter.running? | Game_player.transfer $ |? se Mouse.click (1)? event_activated = false para o evento em $ game_map.events_xy (* Mouse.true_grid) se event.check_for_comment (CLIQUE / MOUSE / i) event.start event_activated = true elsif ( event.x -. $ game_player.x) ABS + (event.y -. $ game_player.y) abs == 1 !.? se [3, 4] incluem (event.trigger) && ! ([0, 2] . include (event.priority_type) | | event.trigger == 0) &&? [0, 1] incluem (event.page.list.size)!.? se (event.y - $ game_player.y) abs>. (event.x - $ game_player.x). abs se event.y - $ game_player.y> 0 game_player.set_direction $ (2) mais game_player.set_direction $ (8) fim mais se event.x - $ game_player.x> 0 game_player.set_direction $ (6) mais game_player.set_direction $ (4) fim fim event.start event_activated = true pausa final final se! event_activated for i in ["UP", "DOWN", "direita", "LEFT"] if (MOVE / MOUSE # {i} / i) event.check_for_comment event_activated = true caso eu quando "UP" x, y = event.x, event.y - 1 quando "DOWN" x, y = event.x evento, . y + 1 quando "LEFT" x, y = event.x - 1, event.y quando "DIREITO" x, y = event.x + 1, event.y final pausa final final final final ! se event_activated x, y = * Mouse.true_grid final se! x.nil? $ game_temp.move_because_of_mouse = true g = $ game_player.find_mouse_path (x, y) = g $ game_temp.mouse_path final final final final
RPGMAKERVXACE - Sombra de characters
#Sombra nos chars e Eventos
#O nome do script já diz tudo, adicione este script abaix o Sprite Reflection(script postado pela nossa atiradora(Hat)) assim o jogo fica mais profissa....
#@edit = Screenshot adicionada
#Screem do Efeito
################################################################################
# Sombra de characters #
################################################################################
#-----------------------------Características----------------------------------#
################################################################################
# Deixa todos os characters, eventos e veículos com sombra. #
################################################################################
#------------------------------Configurações-----------------------------------#
################################################################################
module Config
# Um tile possui 32 pixels.
X = 0 # Dinstância da sombra em relação ao
# character no eixo x (horizontal), em pixels.
Y = 32 # Dinstância da sombra em relação ao
# character no eixo y (vertical), em pixels.
X_Comment = "X" # Comentário que deve-se colocar em um evento
# para mudar a distância entre ele e sua
# sombra em relação ao eixo x.*
Y_Comment = "Y" # Comentário que deve-se colocar em um evento
# para mudar a distância entre ele e sua
# sombra em relação ao eixo y.*
No_Shadow_Comment = "No Shadow" # Comentário que deve-se colocar em um evento
# para que esta não possua sombra.
Invert = true # Inverte a sombra (true ou false).
Invert_Comment = "Invert" # Comentário que deve-se colocar em um evento
# para inverter ou desinverter a sombra.
# * Como usar: Colocar a quantidade desejada após o cometário, separado por um
# espaço.
end
################################################################################
class Game_Event < Game_Character
def read_comment(comment)
for command in @list
next if command.code != 108
return command.parameters[0] if command.parameters[0].include?(comment)
end
return nil
end
def has_comment?(comment)
for command in @list
next if command.code != 108
return true if command.parameters[0].include?(comment)
end
return false
end
end
class Sprite_Shadow < Sprite_Base
def initialize(viewport, invert, character = nil, x = 0, y = 0)
super(viewport)
@x = x
@y = y
@character = character
@invert = invert
update
end
def dispose
super
end
def update
super
update_bitmap
update_src_rect
update_position
update_other
end
def tileset_bitmap(tile_id)
Cache.tileset($game_map.tileset.tileset_names[5 + tile_id / 256])
end
def update_bitmap
if graphic_changed?
@tile_id = @character.tile_id
@character_name = @character.character_name
@character_index = @character.character_index
if @tile_id > 0
set_tile_bitmap
else
set_character_bitmap
end
end
end
def graphic_changed?
@tile_id != @character.tile_id ||
@character_name != @character.character_name ||
@character_index != @character.character_index
end
def set_tile_bitmap
sx = (@tile_id / 128 % 2 * 8 + @tile_id % * 32
sy = @tile_id % 256 / 8 % 16 * 32
self.bitmap = tileset_bitmap(@tile_id)
self.src_rect.set(sx, sy, 32, 32)
self.ox = 16
self.oy = 32
end
def set_character_bitmap
self.bitmap = Cache.character(@character_name)
self.tone = Tone.new(-255,-255,-255)
if @invert
self.angle = 270
self.mirror = true
self.angle = 180
self.mirror = false
end
sign = @character_name[/^[\!\$]./]
if sign && sign.include?('$')
@cw = bitmap.width / 3
@ch = bitmap.height / 4
else
@cw = bitmap.width / 12
@ch = bitmap.height / 8
end
self.ox = @cw / 2 - Config::X - @x
self.oy = @invert ? (@ch + 32 - Config::Y + @y) : @ch - Config::Y - @y
end
def update_src_rect
if @tile_id == 0
index = @character.character_index
pattern = @character.pattern < 3 ? @character.pattern : 1
sx = ((index % 4 * 3 + pattern) * @cw)
if @invert
sy = ((index / 4 * 4 + (10 - @character.direction - 2) / 2) * @ch)
else
sy = ((index / 4 * 4 + (@character.direction - 2) / 2) * @ch)
end
self.src_rect.set(sx, sy, @cw, @ch)
end
end
def update_position
self.x = @character.screen_x
self.y = @character.screen_y
self.z = @character.screen_z
end
def update_other
self.opacity = @character.opacity/2
self.blend_type = @character.blend_type
self.bush_depth = @character.bush_depth
self.visible = !@character.transparent
end
end
class Spriteset_Map
def create_characters
@character_sprites = []
$game_map.events.values.each do |event|
if !event.has_comment?(Config::No_Shadow_Comment)
x = 0
y = 0
invert = event.has_comment?(Config::Invert_Comment)
if invert
if Config::Invert
invert = false
end
else
invert = Config::Invert
end
x = event.read_comment(Config::X_Comment)[Config::X_Comment.size..event.read_comment(Config::X_Comment).size].to_i if event.has_comment?(Config::X_Comment)
y = event.read_comment(Config::Y_Comment)[Config::Y_Comment.size..event.read_comment(Config::Y_Comment).size].to_i if event.has_comment?(Config::Y_Comment)
@character_sprites.push(Sprite_Shadow.new(@viewport1, invert, event, x, y))
end
@character_sprites.push(Sprite_Character.new(@viewport1, event))
end
$game_map.vehicles.each do |vehicle|
invert = Config::Invert
@character_sprites.push(Sprite_Shadow.new(@viewport1, invert, vehicle))
@character_sprites.push(Sprite_Character.new(@viewport1, vehicle))
end
$game_player.followers.reverse_each do |follower|
invert = Config::Invert
@character_sprites.push(Sprite_Shadow.new(@viewport1, invert, follower))
@character_sprites.push(Sprite_Character.new(@viewport1, follower))
end
invert = Config::Invert
@character_sprites.push(Sprite_Shadow.new(@viewport1, invert, $game_player))
@character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
@map_id = $game_map.map_id
end
end