Ir para conteúdo

AlphaLove

Visconde
  • Total de itens

    408
  • Registro em

  • Última visita

  • Dias Ganhos

    2

Histórico de Reputação

  1. Upvote
    AlphaLove deu reputação a Maximaah em Background   
    Fico feliz por ter te ajudado, =D
  2. Upvote
    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..
     

  3. Upvote
    AlphaLove deu reputação a Alexclusive em Background   
    Que tal:
     
     
     

  4. Upvote
    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]
  5. Upvote
    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; }
  6. Upvote
    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
     
     
     
  7. Upvote
    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.
     
     
     
  8. Upvote
    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.
     
     
     
  9. Upvote
    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"
  10. Upvote
    AlphaLove deu reputação a LordroL em Sou lindo né   
    o cara acima é retardado.
  11. Upvote
    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..
  12. Upvote
    AlphaLove deu reputação a Noninhouh em OTClient   
    tente fazendo esse tutorial do slicer, creio que seja para essa versão...
    http://www.xtibia.com/forum/topic/203495-ajuda-como-mudar-o-cliente-de-login-otclient-poketibia/page__view__findpost__p__1432579
  13. Upvote
    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
  14. Upvote
    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.
  15. Upvote
    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  
  16. Upvote
    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.
  17. Upvote
    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:








  18. Upvote
    AlphaLove deu reputação a Gabrieltxu em [Modern acc Template] OTpokemon   
    Conteudo Retirado.
  19. Upvote
    AlphaLove deu reputação a Gabrieltxu em [Video Aula - Completa] Como Add Novos Pokemons no PDA   
    Conteudo Retirado.
  20. Upvote
    AlphaLove deu reputação a SkyLigh em Peça Sua Design   
    Desculpe a demora
     
    Avatar.
     

     
    Assinatura.

     
     
    Cade os pedidos ??
  21. Upvote
    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 +
  22. Upvote
    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
  23. Upvote
    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
  24. Upvote
    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)


  25. Upvote
    AlphaLove deu reputação a VictorWEBMaster em [GESIOR] VictorWEBMaster 2019v   
    REMOVIDO
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...