MA

[Função Lua] Clipboardcopy(Text) - Funciona Com Coordenadas

Por MatheusEnjoy, 19 de jul. de 2012 em Linguagens de Programação

script
4
1k
MatheusEnjoyM
19 de julho de 2012 às 21:58
arhPioO.png

Nome: Clipboardcopy(Text)
Versão: 1.0
Código: Doggynub
Forum Origem: OTLand.net
Versão: Não testado ainda.
Descrição: Esta função copia para a área de transferência (clipboard) as coordenadas do player, como se estive feito um Ctrl+C..
Bom vamos ao tutorial:

 

luascript.h:

Procure por:

static int32_t luaStdSHA512(lua_State* L);

E adicione isso abaixo:
static int32_t luaClipboardCopy(lua_State* L);

luascript.cpp:
Procure por:
//setCreatureMaxMana(cid, mana)

Cole isso abaixo:

//clipboardCopy(text)
lua_register(m_luaState, "clipboardCopy", LuaInterface::luaClipboardCopy);

Então encontre:
int32_t LuaInterface::luaSetCreatureMaxMana(lua_State* L)

E adicione isso abaixo:
int32_t LuaInterface::luaClipboardCopy(lua_State* L)
{
//clipboardCopy(text)
std::string text = popString(L);
if(text != "")
{
const char* output = text.c_str();
const size_t len = strlen(output) + 1;
HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, len);
memcpy(GlobalLock(hMem), output, len);
GlobalUnlock(hMem);
OpenClipboard(0);
EmptyClipboard();
if(SetClipboardData(CF_TEXT, hMem) != NULL)
lua_pushboolean(L,true);
else
lua_pushboolean(L,false);


CloseClipboard();
}

return 1;
}


Exemplo de utilização:

function onLook(cid, thing, position, lookDistance)
if getPlayerGroupId(cid) >= 4 then
local str = string.gsub("{x = |x|, y = |y|, z = |z|, stackpos = |stackpos|}","|(.-)|",function(a) return position[a] end)
if not clipboardCopy(str) then
print("error in copying to clipboard, no data copied.")
end
end
return true
end

Editado Abril 21 por MatheusEnjoy

vital900V
20 de julho de 2012 às 09:44

interessante.. !_!

2 semanas depois...
SnowszS
29 de julho de 2012 às 14:45

@MatheusEnjoy

 

vei um concelho quando fizer tópicos COLOQUE OQUE A FUNÇÃO FAZ, assim todos saberão sem precisar entrar em outro forum concorrente.

MatheusEnjoyM
02 de agosto de 2012 às 12:01

@MatheusEnjoy

 

vei um concelho quando fizer tópicos COLOQUE OQUE A FUNÇÃO FAZ, assim todos saberão sem precisar entrar em outro forum concorrente.

 

E um pouco complexo explicar o que a função faz. Igual esta e um "Ctrl+c / Ctrl +v"