-
Total de itens
408 -
Registro em
-
Última visita
-
Dias Ganhos
2
Histórico de Reputação
-
-
AlphaLove deu reputação a Maximaah em Background
Bom, eu fiz o meu aqi, espero q goste, ai se quizer dps q eu passe o logo do meio q eu fiz pra vc é só avisar..
-
-
AlphaLove deu reputação a Nibelins em [MODERN ACC/POKETIBIA]WebSite PokeTibia 3.0 [template]
boa novas pessoal venho aqui pra posta a minha versão mais nova v 3.0
nem muitas delonga
Download [template]
download [versao completa]
-
AlphaLove deu reputação a Slicer em Programação em C
oia... eu n sei como eh C... soh mexo com C++... entao esse codigo pode, ou n, funcionar ae para ti... mas no minimo ja pode lhe dar uma base...
#include <stdio.h> #include <stdlib.h> int main() { float sBruto, IR = 26.6/100, previdencia = 8.5/100; printf("Informe o salario bruto do funcionario: "); scanf("%f", &sBruto); float sLiquido = sBruto-(sBruto*previdencia); sLiquido = sLiquido-(sLiquido*IR); printf("O salario liquido do funcionario eh de: %1.2f\n\n", sLiquido); return 0; } -
AlphaLove recebeu reputação de kttallan em OTClient
Galera, tenho um OTClient aqui à algum tempo, mas não consigo usa-lo, por quando mudo o ip dele, a parte onde coloca login e senha simplesmente some.
Se alguém puder me ajudar eu fico grato.
entergame.lua
Achava que mudando essa parte:
function EnterGame.setUniqueServer(host, port, protocol, windowWidth, windowHeight)
para:
function EnterGame.setUniqueServer(MEUIP, 7171, 854, windowWidth, windowHeight)
já iria funcionar, mas não funciona :s
entergame.otui
entergame.otmod
-
AlphaLove deu reputação a Roksas em Cast [TV] System 1.0
Cast System 1.0
Como vãao galera? Há quanto tempo não? Hoje eu vim trazer para vocês um sisteminha bem simples e legal, aonde você pode assistir os outros jogadores e vice-versa.
Versão testada: TFS 8.6 0.4 and TFS 0.3.6 8.6
Comandos utilizados in-game:
!cast on -- Ativa o seu Cast System, e permite os outros jogadores te assistirem; !cast off -- Desativa o seu Cast System; !cast exit -- Você sai do Cast no qual está assistindo; !cast NAME -- Começa a assistir um jogador (NAME). Instalação
Vá em data/talkactions/scripts crie um arquivo chamado castSys.lua e adicione o seguinte código dentro do mesmo:
--[[ Perfect Cast System 1.0 by Roksas Acesse ja XTibia.com =) ]]-- function onSay(cid, words, param) local player = getPlayerByName(param) if not isInArray({"list", "exit", "off", "on"}, param) and not param or param == "" then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "Enter the name of the player, which you want to cast in parameters.") return true end if param == "on" then if getPlayerStorageValue(cid, 10359) >= 1 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "Your Cast System is already running ONLINE!") return true end castOn(cid) doSendMagicEffect(getThingPos(cid), 39) doPlayerSendTextMessage(cid, 20, "You have activated your Cast System, now others can cast you, to disable this feature, use the parameter '!cast off'.") return true end if param == "off" then if getPlayerStorageValue(cid, 10359) < 1 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "Your Cast System is already OFFLINE!") return true end castOff(cid) doSendMagicEffect(getThingPos(cid), 39) doPlayerSendTextMessage(cid, 20, "You have disabled your Cast System, from now on no one can watch you, unless you turn on the Cast, using the parameter '!cast on'.") return true end if param == "exit" then if getPlayerStorageValue(cid, 12269) < 1 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "You no are casting players.") return true end cancelCast(cid) doSendMagicEffect(getThingPos(cid), 39) doPlayerSendTextMessage(cid, 20, "You stopped casting, use the parameter '!cast list' to see who can be casted.") return true end if param == "list" then if #whoCasted() < 1 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "At this time, no player can be casted, try again later.") return true end doPlayerSendTextMessage(cid, 20, "Players can be casteds:\n\n") for k, v in ipairs(whoCasted()) do doPlayerSendTextMessage(cid, 20, " - "..getCreatureName(v).."") end return true end if not isPlayer(player) then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "This player is offline or does not exist. Use the parameter '!cast list' to see who can be casted.") return true end if getPlayerStorageValue(player, 10359) < 1 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "You can only cast one person with the Cast System is activated, use the parameter '!cast list' to see who can be assisted.") return true end if getPlayerStorageValue(cid, 10359) >= 1 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "To cast a player, you must first disable your Cast System using the parameter '!cast off'.") return true end if not getTileInfo(getThingPos(cid)).protection then return doPlayerSendTextMessage(cid, 20, "You need enter in Protection Zone to use the Cast System.") and true end setPlayerStorageValue(cid, 12269, 1) castPlayer(cid, player) doSendMagicEffect(getThingPos(cid), 39) doPlayerSendTextMessage(cid, 20, "You are casting the player "..getCreatureName(player)..", to exit just use the command '!cast exit'.") doPlayerSendTextMessage(player, 20, "You are casted by "..getCreatureName(cid).." player to disable your Cast, simply use the parameter '!cast off'.") return true end function cancelCast(uid) mayNotMove(uid, false) doCreatureSetHideHealth(uid, false) setPlayerStorageValue(uid, 12269, -1) doRemoveCondition(uid, CONDITION_OUTFIT) return doTeleportThing(uid, getTownTemplePosition(getPlayerTown(uid))) or doTeleportThing(uid, getPlayerMasterPos(uid)) and true end function castOn(uid) return setPlayerStorageValue(uid, 10359, 1) and true end function castOff(uid) return setPlayerStorageValue(uid, 10359, -1) and true end function castPlayer(uid, player) if not isPlayer(player) then cancelCast(uid) return true end if getPlayerStorageValue(player, 10359) < 1 then cancelCast(uid) return true end if getPlayerStorageValue(uid, 12269) < 1 then cancelCast(uid) return true end mayNotMove(uid, true) doSetItemOutfit(uid, 1934, -1) doCreatureSetHideHealth(uid, true) doTeleportThing(uid, getThingPos(player)) return addEvent(castPlayer, 1 * 1000, uid, player) and true end function whoCasted() local casteds = {} for _, pid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(pid, 10359) >= 1 then table.insert(casteds, pid) end end return #casteds > 0 and casteds or {} end Volte uma pasta (data/talkaction) abra com algum editor de texto o arquivo talkactions.xml e adicione essa tag em qualquer lugar:
<talkaction words="!cast;/cast" event="script" value="castSys.lua"/> Muito bem, após isso siga para a pasta data/creaturescripts/scripts, faça o mesmo, crie um arquivo chamado castSys.lua e adicione isso dentro:
function onLogout(cid) if getPlayerStorageValue(cid, 12269) > 0 then doPlayerSendCancel(cid, "To logout, you need to exit the Cast System first. Use the parameter '!cast exit'.") return false end setPlayerStorageValue(cid, 10359, -1) return true end function onStatsChange(cid, attacker, type, combat, value) if not isCreature(cid) then return true end if getPlayerStorageValue(cid, 12269) >= 1 and isMonster(attacker) or isPlayer(attacker) then return false end return true end function onAttack(cid, target) if not isPlayer(cid) or not isPlayer(target) then return true end if getPlayerStorageValue(cid, 12269) > 0 then doRemoveCondition(cid, CONDITION_INFIGHT) return false end return true end Já no arquivo creaturescripts.xml, você vai adicionar essa tag:
<event type="attack" name="castAttack" event="script" value="castSys.lua"/> <event type="statschange" name="castHits" event="script" value="castSys.lua"/> <event type="logout" name="castLogout" event="script" value="castSys.lua"/> E no arquivo login.lua você vai adicionar essas 3 linhas:
registerCreatureEvent(cid, "castAttack") registerCreatureEvent(cid, "castHits") registerCreatureEvent(cid, "castLogout") Para que o player que está assitindo ao outro não use magias enquanto está assistindo, coloque essas linhas abaixo dentro de cada script das magias, debaixo da linha:
function onCastSpell(cid, var) Coloque:
if getPlayerStorageValue(cid, 12269) >= 1 then return doPlayerSendCancel(cid, "You is casting, not is possible.") and false end Faça a mesma coisa com as quests, embaixo de:
function onUse(cid, item, frompos, item2, topos) Prontinho galera, basta reiniciar o servidor e usar, é isto por hoje, espero que tenham gostado, ideias/sugestões para futuras versões, bugs ou críticas sobre o sistema, basta deixar um simples comentário aí no tópico, estarei aqui para atendê-los.
Obrigado pela atenção, façam bom uso.
-
AlphaLove recebeu reputação de Kempaichi em #ChangeBrazil
Te digo uma coisa, se quer protestar alguma coisa, vá pras ruas e faça a diferença, ficar na frente do pc repassando vídeo e achando que ta fazendo algo não vai ajudar em nada. Quanta gente está lá protestando, dando a cara pra bater, realmente ajudando.
Sim, vídeo ajuda na conscientização, mas só estar ciente do que está acontecendo não basta. Ressaltando o que eu já disse, 'se quer protestar alguma coisa, vá pras ruas e faça a diferença', mostre que realmente se importa.
-
AlphaLove recebeu reputação de kttallan em [Encerrado] Porque Aconteceu Esse Erro
sqlType = "mysql"
sqlHost = "localhost"
sqlPort = 3306
sqlUser = "root"
sqlPass = "COLOCA A SENHA SQL"
sqlDatabase = "NOME DA TUA DATABASE DO XAMPP"
sqlFile = "forgottenserver.s3db"
sqlKeepAlive = 0
mysqlReadTimeout = 10
mysqlWriteTimeout = 10
encryptionType = "sha1"
-
-
AlphaLove deu reputação a Slicer em Ajuda Como mudar o cliente de login otclient Poketibia
ae consegui fazer aki...
baixem esse arquivo \/, e coloquem os arquivos certinhu nas pastas q tao indiicadas...
Pack.rar
e dai pra vc mudar o ip, porta e versao do client eh soh ir em mods/server.otmod e editar aki..
EnterGame.setDefaultServer("127.0.0.1", 7171, 854)
("ip", porta, versao)
OBS: baixem o arquivo e substituam pelos antigos! n tentem copiar de um e passar pra outro q pode da debug!
/\
esse eh o OTClient, eh uma client 'novo' q esta sendo desenvolvido...
OTclient
baixe a versao 0.5.5..
-
-
AlphaLove deu reputação a PxNzMariaLongo em [Encerrado][Projeto] Pokemon Online
Bom, @Jobby, no dia em que você ter trabalhos bons, você contata a equipe, blz? Cara, eu não aguento mais você, namoral, vou expor seus "Mapas" no fórum, nem que eu seja banido aqui. Fod@-se.
Você diz que isso tem sucesso? Cara, BOA SORTE! Se você chama isso de Mapa, estás muito bem hein.
@Enself, deixe ele ver o tópico, e depois reporte e peça para alguém tirar essas postagem minha...
Att. PxNzMariaLongo
-
AlphaLove deu reputação a WilliaMapper em [NOVATO] Meu Templo
Ola galerinha do Xtibia sou novato no Forum e na Area de Mappear
quero cria um mapa Próprio Então ai vai meu templo, Não esta totalmente pronto mais to casse la
aceito criticas, elogios e dicas pode manda.
1° Anda
2° Anda
3° Anda
4° Anda
Obs: Não tava querendo aceitar as imagem Então coloquei pelo link mesmo se Alguém Quiser concerta pra mim Agradeço.
Desculpe qualquer erro de portugues
Obrigado ao vital900 pelo seus tutorial Incrivel
Att+ galera do xtibia.
-
AlphaLove deu reputação a BananaFight em [C++] Opcode versão 8.54+
Adaptação pra source 8.54+
LEMBRE-SE, ISSO É NA SOURCE DO SERVIDOR
Vamos ao código.
protocolgame.h
Embaixo de
void AddShopItem(NetworkMessage_ptr msg, const ShopInfo item);
Adicione
void parseExtendedOpcode(NetworkMessage& msg);void sendExtendedOpcode(uint8_t opcode, const std::string& buffer);
protocolgame.cpp
Embaixo de
uint32_t key[4] = {msg.GetU32(), msg.GetU32(), msg.GetU32(), msg.GetU32()};enableXTEAEncryption();setXTEAKey(key);
Adicione
// notifies to otclient that this server can receive extended game protocol opcodesif(operatingSystem >= CLIENTOS_OTCLIENT_LINUX)sendExtendedOpcode(0x00, std::string());
Embaixo de
void ProtocolGame::AddShopItem(NetworkMessage_ptr msg, const ShopInfo item){const ItemType& it = Item::items[item.itemId];msg->AddU16(it.clientId);if(it.isSplash() || it.isFluidContainer())msg->AddByte(fluidMap[item.subType % 8]);else if(it.stackable || it.charges)msg->AddByte(item.subType);elsemsg->AddByte(0x01);msg->AddString(item.itemName);msg->AddU32(uint32_t(it.weight * 100));msg->AddU32(item.buyPrice);msg->AddU32(item.sellPrice);}
Adicione
void ProtocolGame::parseExtendedOpcode(NetworkMessage& msg){uint8_t opcode = msg.GetByte();std::string buffer = msg.GetString();// process additional opcodes via lua script eventaddGameTask(&Game::parsePlayerExtendedOpcode, player->getID(), opcode, buffer);}void ProtocolGame::sendExtendedOpcode(uint8_t opcode, const std::string& buffer){// extended opcodes can only be send to players using otclient, cipsoft's tibia can't understand themNetworkMessage_ptr msg = getOutputBuffer();if(msg){TRACK_MESSAGE(msg);msg->AddByte(0x32);msg->AddByte(opcode);msg->AddString(buffer);}}
Embaixo de
case 0x1E: // keep alive / ping responseparseReceivePing(msg);break;
Adicione
case 0x32: // otclient extended opcodeparseExtendedOpcode(msg);break;
enums.h
Embaixo de
enum GuildLevel_t{GUILDLEVEL_NONE = 0,GUILDLEVEL_MEMBER,GUILDLEVEL_VICE,GUILDLEVEL_LEADER};
Substitua o OperatingSystem por este
enum OperatingSystem_t{CLIENTOS_LINUX = 0x01,CLIENTOS_WINDOWS = 0x02,CLIENTOS_OTCLIENT_LINUX = 0x0A,CLIENTOS_OTCLIENT_WINDOWS = 0x0B,CLIENTOS_OTCLIENT_MAC = 0x0C,};/
player.h
Embaixo de
void sendCreatureShield(const Creature* creature)
Adicione
void sendExtendedOpcode(uint8_t opcode, const std::string& buffer){if(client) client->sendExtendedOpcode(opcode, buffer);}
luascript.cpp
Embaixo de
void LuaScriptInterface::registerFunctions(){
Adicione
//doSendPlayerExtendedOpcode(cid, opcode, buffer)lua_register(m_luaState, "doSendPlayerExtendedOpcode", LuaScriptInterface::luaDoSendPlayerExtendedOpcode);
Embaixo de
SHIFT_OPERATOR(int32_t, LeftShift, <<)SHIFT_OPERATOR(int32_t, RightShift, >>)SHIFT_OPERATOR(uint32_t, ULeftShift, <<)SHIFT_OPERATOR(uint32_t, URightShift, >>)#undef SHIFT_OPERATOR
Adicione
int32_t LuaScriptInterface::luaDoSendPlayerExtendedOpcode(lua_State* L){//doSendPlayerExtendedOpcode(cid, opcode, buffer)std::string buffer = popString(L);int opcode = popNumber(L);ScriptEnviroment* env = getEnv();if(Player* player = env->getPlayerByUID(popNumber(L))) {player->sendExtendedOpcode(opcode, buffer);lua_pushboolean(L, true);}lua_pushboolean(L, false);return 1;}
luascript.h
Embaixo de
virtual void registerFunctions();
Adicione
static int32_t luaDoSendPlayerExtendedOpcode(lua_State* L);
creatureevent.h
.
Substitua
CREATURE_EVENT_PREPAREDEATH
Por isso
CREATURE_EVENT_PREPAREDEATH,CREATURE_EVENT_EXTENDED_OPCODE // otclient additional network opcodes
Embaixo de
uint32_t executePrepareDeath(Creature* creature, DeathList deathList);
Adicione
uint32_t executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer);
creatureevent.cpp
Embaixo de
else if(tmpStr == "death")m_type = CREATURE_EVENT_DEATH;
Adicione
else if(tmpStr == "extendedopcode")m_type = CREATURE_EVENT_EXTENDED_OPCODE;
Embaixo de
case CREATURE_EVENT_DEATH:return "onDeath";
Adicione
case CREATURE_EVENT_EXTENDED_OPCODE:return "onExtendedOpcode";
Embaixo de
case CREATURE_EVENT_DEATH:return "cid, corpse, deathList";
Adicione
case CREATURE_EVENT_EXTENDED_OPCODE:return "cid, opcode, buffer";
Embaixo de
std::cout << "[Error - CreatureEvent::executeFollow] Call stack overflow." << std::endl;return 0;}}
Adicione
uint32_t CreatureEvent::executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer){//onExtendedOpcode(cid, opcode, buffer)if(m_interface->reserveEnv()){ScriptEnviroment* env = m_interface->getEnv();if(m_scripted == EVENT_SCRIPT_BUFFER){env->setRealPos(creature->getPosition());std::stringstream scriptstream;scriptstream << "local cid = " << env->addThing(creature) << std::endl;scriptstream << "local opcode = " << (int)opcode << std::endl;scriptstream << "local buffer = " << buffer.c_str() << std::endl;scriptstream << m_scriptData;bool result = true;if(m_interface->loadBuffer(scriptstream.str())){lua_State* L = m_interface->getState();result = m_interface->getGlobalBool(L, "_result", true);}m_interface->releaseEnv();return result;}else{#ifdef __DEBUG_LUASCRIPTS__char desc[35];sprintf(desc, "%s", player->getName().c_str());env->setEvent(desc);#endifenv->setScriptId(m_scriptId, m_interface);env->setRealPos(creature->getPosition());lua_State* L = m_interface->getState();m_interface->pushFunction(m_scriptId);lua_pushnumber(L, env->addThing(creature));lua_pushnumber(L, opcode);lua_pushlstring(L, buffer.c_str(), buffer.length());bool result = m_interface->callFunction(3);m_interface->releaseEnv();return result;}}else{std::cout << "[Error - CreatureEvent::executeRemoved] Call stack overflow." << std::endl;return 0;}}
game.h
Embaixo de
int32_t getLightHour() {return lightHour;}void startDecay(Item* item);
Adicione
void parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer);
game.cpp
Embaixo de
player->sendTextMessage(MSG_INFO_DESCR, buffer);}
Adicione
void Game::parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer){Player* player = getPlayerByID(playerId);if(!player || player->isRemoved())return;CreatureEventList extendedOpcodeEvents = player->getCreatureEvents(CREATURE_EVENT_EXTENDED_OPCODE);for(CreatureEventList::iterator it = extendedOpcodeEvents.begin(); it != extendedOpcodeEvents.end(); ++it)(*it)->executeExtendedOpcode(player, opcode, buffer);}
/creaturescripts/creaturescrips.xml
<event type="extendedopcode" name="ExtendedOpcode" event="script" value="extendedopcode.lua"/>
/creaturescripts/extendedopcode.lua
OPCODE_LANGUAGE = 1function onExtendedOpcode(cid, opcode, buffer)if opcode == OPCODE_LANGUAGE then-- otclient languageif buffer == 'en' or buffer == 'pt' then-- example, setting player language, because otclient is multi-language...--doCreatureSetStorage(cid, CREATURE_STORAGE_LANGUAGE, buffer)endelse-- other opcodes can be ignored, and the server will just work fine...endend
Créditos : MaXwEllDeN 100% por adaptar o código
-
AlphaLove deu reputação a BananaFight em Char Maker
Esse Mod faz com que seja possível criar novos char na sua acc usando apenas o client.
OBS: Ele usa Opcode, e com isso só é possível criar char com um personagem online, Porem o sistema é foi totalmente feito para funcionar com um personagem off, então a menos que você consiga editar as source do server, só será possível criar novos personagens na conta com um char logado, Pois os opcodes só funcionam com um char logado.
Nome: Char MakerDescrição: Criado de charAutor: Eduardo Vicente (Banana Fight)Website: www.xtibia.com
Client Side
Client_Entergame/Entergame.lua
Procure por:
if modules.game_things.isLoaded() thenprotocolLogin:login(G.host, G.port, G.account, G.password)
e embaixo adicione:
accountName = G.account
Client_Entergame/Characterlist.lua
procure por :
-- public functions[function CharacterList.init()connect(g_game, { onLoginError = onGameLoginError })connect(g_game, { onUpdateNeeded = onGameUpdateNeeded })connect(g_game, { onConnectionError = onGameConnectionError })connect(g_game, { onGameStart = CharacterList.destroyLoadBox })connect(g_game, { onLoginWait = onLoginWait })connect(g_game, { onGameEnd = CharacterList.showAgain })if G.characters thenCharacterList.create(G.characters, G.characterAccount)endend
E substitua por :
-- public functions[function CharacterList.init()connect(g_game, { onLoginError = onGameLoginError })connect(g_game, { onUpdateNeeded = onGameUpdateNeeded })connect(g_game, { onConnectionError = onGameConnectionError })connect(g_game, { onGameStart = CharacterList.destroyLoadBox })connect(g_game, { onLoginWait = onLoginWait })connect(g_game, { onGameEnd = CharacterList.showAgain })if G.characters thenCharacterList.create(G.characters, G.characterAccount)endnewChar = g_ui.displayUI('newchar')newChar:hide()endfunction sendAll()local msg = newChar:getChildById('msg')local name = newChar:getChildById('name'):getText()local sex = newChar:getChildById('sex'):getText()local voc = newChar:getChildById('vocation'):getText()local protocol = g_game.getProtocolGame()local sendSexlocal sendVocif sex == "male" thensendSex = 0elsesendSex = 1endif voc == "Sorcerer" thensendVoc = 1elseif voc == "Druid" thensendVoc = 2elseif voc == "Paladin" thensendVoc = 3elsesendVoc = 4endprotocol:sendExtendedOpcode(152, string.format("%s,%s,%d,%d", accountName, name, sendVoc, sendSex))msg:setColor("green")msg:setText("Character "..name.." Created")end
Agora Crie um arquivo com o nome newchar.lua, e adiciona isso dentro :
MainWindowid: characterCreator!text: tr('New Char')size: 210 250@onEnter: sendAll()Labelid: labelNametext: Choose your name:color: whitetext-auto-resize: trueanchors.top: parent.topanchors.left: parent.leftmargin-top: 2TextEditid: nameanchors.left: parent.leftanchors.right: parent.rightanchors.top: prev.bottommargin-top: 5Labelid: labelSextext: Chose your sextext-auto-resize: truecolor: whiteanchors.left: parent.leftanchors.top: name.bottommargin-top: 10ComboBoxid: sexanchors.left: parent.leftanchors.top: labelSex.bottommargin-top: 5width: 75options:- Male- FemaleLabelid: labelVocationtext: Chose your vocationtext-auto-resize: truecolor: whiteanchors.left: parent.leftanchors.top: sex.bottommargin-top: 10ComboBoxid: vocationanchors.left: parent.leftanchors.top: labelVocation.bottommargin-top: 5width: 100options:- Knight- Paladin- Sorcerer- DruidLabelid: msgtext-auto-resize: trueanchors.left: parent.leftanchors.top: vocation.bottommargin-top: 20Buttonid: creatChartext: Creat Charactercolor: whiteanchors.left: parent.leftanchors.bottom: parent.bottom@onClick: sendAll()Buttonid: canceltext: Cancelcolor: whiteanchors.left: creatChar.rightanchors.right: parent.rightanchors.bottom: parent.bottommargin-left: 10@onClick: newChar:hide()
E no chartacterlist.otui, lá no final você apaga os 2 botões de "cancel" e "ok" e substituto por estes :
Buttonid: newChartext: New Charwidth: 64anchors.left: parent.leftanchors.bottom: parent.bottom@onClick: newChar:show()Buttonid: buttonOk!text: tr('Ok')width: 64anchors.left: newChar.rightanchors.right: buttonCancel.leftanchors.bottom: parent.bottommargin-right: 10margin-left: 10@onClick: CharacterList.doLogin()Buttonid: buttonCancel!text: tr('Cancel')width: 64anchors.right: parent.rightanchors.bottom: parent.bottom@onClick: CharacterList.hide(true)
Server Side
Data/Creaturescritps/scripts
crie um arquivo chamado exetendedopcode.lua, e adicione isso dentro :
local QUERY = "INSERT INTO `players` VALUES (NULL, '%s', 0, 1, %d, 1, %d, 150, 150, 0, 0, 0, 0, 0, 221, 0, 0, 50, 50, 0, 0, 1, 95, 127, 7, 0, 400, %d, 0, 0, 1, 0, 0, 0, '', 0, 0, 0, 151200000, 2, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '');"NEW_ACCOUNT_CHAR = 152function onExtendedOpcode(cid, opcode, buffer)if opcode == NEW_ACCOUNT_CHAR thenlocal info = string.explode(buffer, ",")for a = 1, #info doif tonumber(info[a]) theninfo[a] = tonumber(info[a])endenddb.executeQuery(string.format(QUERY, info[2], getAccountIdByAccount(info[1]), info[3], info[4]))endreturn trueend
E dentro do creaturescripts.xml adicione :
<event type="extendedopcode" name="ExtendedOpcode" event="script" value="extendedopcode.lua"/>
O sistema ainda não esta 100% completo, falta a parte que envia uma mensagem de erro quando o char não é criado, Porem eu não irei atualizar esse sistema pelo fato de só funcionar com char online.
-
AlphaLove deu reputação a Alexclusive em O Primeiro Photoshop 1.0
A primeira versão do Photoshop.
Os criadores do Photoshop, Thomas e John Knoll começaram a desenvolver o programa em 1987.
A 1º versão foi lançada pela Adobe em 1990. O programa havia sido desenvolvido com a intenção de manipular arquivos digitalizados por Scanners,
que eram raros e caros comparados aos dias atuais onde praticamente a maioria das pessoas possui um Scanner em casa.
Dando uma olhada nas fotos da versão 1 do Adobe Photoshop vemos que comparado as exigências dos dias atuais a
versão é primitiva mas mesmo assim surpreende por ter muitas ferramentas que ainda possuem a mesma função no programa.
O suporte a layers só foi incorporado ao programa em sua versão 3.0 em 1993.
PS 1.0 incluía ferramentas básicas de seleção e alguns filtros de ajustes para imagens.
Nesta foto podemos ver duas caixas com opções de brush, cores e patterns para serem escolhidos.
Esta era a aparência da caixa de preferencias do Photoshop 1.0.
Aqui acredite ou não você podia definir separações de cores, métodos de interpolação, tamanho das colunas entre outras coisas.
Para escrever no Photoshop 1.0 era necessário abrir um box onde era oferecida as opções de tamanho de fonte,
espaçamento, estilo e alinhamento, e era preciso escrever em um espaço dentro deste mesmo box,
e só depois o texto era aplicado ao documento ou imagem.
E aqui uma comparação lado a lado do Photoshop 1.0 e o Photoshop CS6.
Ps 1.0:
Ps Cs6:
-
-
AlphaLove deu reputação a Gabrieltxu em [Video Aula - Completa] Como Add Novos Pokemons no PDA
Conteudo Retirado.
-
AlphaLove deu reputação a SkyLigh em Peça Sua Design
Desculpe a demora
Avatar.
Assinatura.
Cade os pedidos ??
-
AlphaLove recebeu reputação de kaldito em [Encerrado] Erro com SQL.
vai no teu config.lua, apaga TUDO o que tem la dentro e cola isso..
Ajudei ? Rep +
-
AlphaLove deu reputação a Roksas em Erros no console
Menos, se não me engano são milesegundos. Ali são 2 horas. Vá dividindo *-*
7200 = 2 horas
3600 = 1 hora
1800 = meia hora
900 = 15 min
E assim vai
-
AlphaLove deu reputação a RomarinhoO em Magia Chuva De Dinheiro
Este Script,E Um Tipo De Rain,Mais Quando Cai Ele Faz Tipo Uma Chuva De Dinheiro.Segue O Script
Va Em Spells/scripts E Crie Um Arquivo Chamado RainMoney.lua
Em Spells.xml coloque
<instant name="Crystal Coins" words="/rainmoney" lvl="" mana="0" prem="1" selftarget="1" exhaustion="0" needlearn="0" script="rainmoney.lua">
<vocation name="None"/>
</instant>
Em Vocation Name,Não Mude,Pois Vocatio Nome Quase Em Todos Os Servidor,Players Nao Podem Fazer Esta Vocation,Intao Só GOD Podera Usar
-
AlphaLove deu reputação a BrenoNeto em Primeira Sprite
Se você quiser fazer sprites maiores, as sprites tem que ser assim por exemplo, 32x32, 32x64,64x64... você tem que sempre ir somando 32x32 pixels para aumentar a imagem. para colocar no client, você terá de cortar as imagens, em partes iguais de 32x32 pixels, adicioná-las no tibia.spr usando o sprite editor, e montar a sprite para vela ingame com o dat editor.
(Fiz rapidinho aki... pra ver uq saia kkk)
-
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.