Ir para conteúdo

honux

Campones
  • Total de itens

    71
  • Registro em

  • Última visita

Tudo que honux postou

  1. @BlackMetalOT Ele simplismente volta ao level 10 e com a Exp do level 10. se você quiser fazer ele ser kickado, perder itens do corpo é outra história , ai é só falar que eu faço para vcs.... Kyo ~*
  2. Joao.p Ficam na Source, leia um Tutorial de Como compilar um OtServ para mais detalhes. Kyo ~*
  3. Sim, mais lembrando que o Cliente tem um 'limite', até o 7.1 era 352, hoje eu não sei precisa verificar Kyo ~*
  4. Ghoust Exite uma maneria 'especial' de compilar o Yurots, que pelo jeito vc não sabia disso Irei procurar o tutorial certo e postar aqui Este erro ( da compilação ) ocorre porque o Yurots não foi compilado no Dev-C++ que nem a maioria dos OtServers... enquanto isso use outro OtServer O Link pro tutorial está aqui : http://www.xtibia.com/forum/index.php?showtopic=4536 Kyo ~*
  5. Heliton Acabar com o reset manual code inútil né? xD Kyo ~*
  6. 1ª Como assim em sources separadas? É na mesma source do seu OTServ! 2° Você leu o Tutorial de Compilação? Pois isso não é normal não! Kyo ~*
  7. Ghoust Após de adicionar qualquer code em C++ é necessário compilar novamente Kyo ~*
  8. Créditos : Me ( Kyo ) Tinha um kra pedindo o code em php, como eu só sei C++ eu fiz no Player.cpp Procure por lvMsg << "You advanced from level " << lastLv << " to level " << level << "."; em seguida adicione : this->doReset(); no final adicione : void Player::doReset(){int lvl;lvl = (g_config.getGlobalNumber("resetlvl")); if(level == (lvl-1)) { std::stringstream reMsg; reMsg << "Atenção, seu char será resetado no level seguinte, tome cuidado."; sendTextMessage(MSG_ADVANCE,reMsg.str().c_str()); } if(level >= lvl) { level = 10; experience = 9300; std::stringstream lvMsg; lvMsg << "You advanced from level " << lvl << " to level 10. Your skills still the same."; sendTextMessage(MSG_ADVANCE,lvMsg.str().c_str()); } else { return; }} Agora em Player.h Debaixo de Public adicione void doReset(); Agora no Config.lua adicione: -- resetlvl-- Reset the player when he gots this lvlresetlvl = "350" Eu botei assim, quando o player atinge um lvl a menos do que o indicado no config.lua manda um aviso, e quando ele atinge o lvl é resetado Configure no Config.lua o lvl desejado do reset.... code bem simples q vai facilitar a vida d uma gente ai Kyo ~*
  9. e como vxs tem esse nuke? Oo num da pra passa non? =P Kyo ~*
  10. @Brizola já tem os npcs ali em cima que vende pros players =P ai é só adicionar a modificação em baxo.... simples :~ Qalker duvida pergunta ai... Kyo ~*
  11. num são 5 bless? Oo eu botei coo se fosse 5! kyo ~*
  12. Oo nunca jogo tibia? =P Bless é tipo assim, se o player é blessed ele perde menos exp, menos skills e menos ml qdo ele morre, tipo, se o player tiver 4 blesses, ele perderá apenas 6% da experiência no lugar de 10 =P é mto simples x) em relação a essa parte do 'não tem bla bla bla' era só uma coisa q eu esqueci de retirar =P
  13. u.u vo fz um meu sozinho, até lá no bless por grana pra ngm :~ --------------------------------- Fiz uma modificação e agora está funfando ( New CVS - 0.4.1 )
  14. @Escman ^^ Agora adicionei uma função praticamente que 'específica' para esta ocasião =P como não tive mto tempo hj copiei do TLM, qdo der tempo eu faço uma só minha.... Kyo ~*
  15. @Brizola ---------------------- Testando com os meus NPCS nunca vaum da errado né? Corrigido ( tava testando com os npcs do meu pc e não com o do download. ) http://www.megaupload.com/pt/?d=CZL8GPOF NPCS Arrumados :~
  16. Sinceramente não entendi teu problema kra... aki qdo eu copio e colo em qalker arkivo sai exatamente do mesmo modo que está lá em cima! Oo
  17. Ahh Héliton... eu so nb em C++ =P só bateu a vontade, vi que ninguem tinha esse code, aproveitei q meu migo pediu ai fiz ^^ num zua eu =[
  18. Bom... ontem conversando com um amigo eu disse pra ele que podia faze esse code pra ele... e tá ai eu fiz não permito o post deste code em outros fóruns tirando o OtFans. Créditos : Kyo ( me ;~* ) em ioplayerxml.cpp em "bool IOPlayerXML::loadPlayer(Player* player, std::string name)" Após : else if(str=="health") { nodeValue = (char*)xmlGetProp(p, (const xmlChar *) "now"); if(nodeValue) { player->health=atoi(nodeValue); xmlFreeOTSERV(nodeValue); } else isLoaded = false; nodeValue = (char*)xmlGetProp(p, (const xmlChar *) "max"); if(nodeValue) { player->healthmax=atoi(nodeValue); xmlFreeOTSERV(nodeValue); } else isLoaded = false; nodeValue = (char*)xmlGetProp(p, (const xmlChar *) "food"); if(nodeValue) { player->food=atoi(nodeValue); xmlFreeOTSERV(nodeValue); } else isLoaded = false; } Adicione : else if(str=="bless") { nodeValue = (char*)xmlGetProp(p, (const xmlChar *) "now"); if(nodeValue) { player->bless=atoi(nodeValue); xmlFreeOTSERV(nodeValue); } else isLoaded = false; nodeValue = (char*)xmlGetProp(p, (const xmlChar *) "bless1"); if(nodeValue) { player->blessa=atoi(nodeValue); xmlFreeOTSERV(nodeValue); } else isLoaded = false; nodeValue = (char*)xmlGetProp(p, (const xmlChar *) "bless2"); if(nodeValue) { player->blessb=atoi(nodeValue); xmlFreeOTSERV(nodeValue); } else isLoaded = false; nodeValue = (char*)xmlGetProp(p, (const xmlChar *) "bless3"); if(nodeValue) { player->blessc=atoi(nodeValue); xmlFreeOTSERV(nodeValue); } else isLoaded = false; nodeValue = (char*)xmlGetProp(p, (const xmlChar *) "bless4"); if(nodeValue) { player->blessd=atoi(nodeValue); xmlFreeOTSERV(nodeValue); } else isLoaded = false; nodeValue = (char*)xmlGetProp(p, (const xmlChar *) "bless5"); if(nodeValue) { player->blesse=atoi(nodeValue); xmlFreeOTSERV(nodeValue); } else isLoaded = false; } Em "bool IOPlayerXML::savePlayer(Player* player)" Após : void Player::die() { //Magic Level downgrade unsigned long sumMana = 0; long lostMana = 0; for (int i = 1; i <= maglevel; i++) { //sum up all the mana sumMana += getReqMana(i, vocation); } sumMana += manaspent; lostMana = (long)(sumMana * 0.1); //player loses 10% of all spent mana when he dies while(lostMana > manaspent){ lostMana -= manaspent; manaspent = getReqMana(maglevel, vocation); maglevel--; } manaspent -= lostMana; //End Magic Level downgrade //Skill loss long lostSkillTries; unsigned long sumSkillTries; for (int i = 0; i <= 6; i++) { //for each skill lostSkillTries = 0; //reset to 0 sumSkillTries = 0; for (unsigned c = 11; c <= skills[i][sKILL_LEVEL]; c++) { //sum up all required tries for all skill levels sumSkillTries += getReqSkillTries(i, c, vocation); } sumSkillTries += skills[i][sKILL_TRIES]; lostSkillTries = (long) (sumSkillTries * 0.1); //player loses 10% of his skill tries while(lostSkillTries > skills[i][sKILL_TRIES]){ lostSkillTries -= skills[i][sKILL_TRIES]; skills[i][sKILL_TRIES] = getReqSkillTries(i, skills[i][sKILL_LEVEL], vocation); if(skills[i][sKILL_LEVEL] > 10){ skills[i][sKILL_LEVEL]--; } else{ skills[i][sKILL_LEVEL] = 10; skills[i][sKILL_TRIES] = 0; lostSkillTries = 0; break; } } skills[i][sKILL_TRIES] -= lostSkillTries; } //End Skill loss //Level Downgrade long newLevel = level; while((unsigned long)(experience - getLostExperience()) < getExpForLv(newLevel)) //0.1f is also used in die().. maybe we make a little function for exp-loss? { if(newLevel > 1) newLevel--; else break; } if(newLevel != level) { std::stringstream lvMsg; lvMsg << "You were downgraded from level " << level << " to level " << newLevel << "."; client->sendTextMessage(MSG_ADVANCE, lvMsg.str().c_str()); }} Por : void Player::die() { //Magic Level downgrade unsigned long sumMana = 0; long lostMana = 0; for (int i = 1; i <= maglevel; i++) { //sum up all the mana sumMana += getReqMana(i, vocation); } sumMana += manaspent; if(bless == 0) { lostMana = (long)(sumMana * 0.1); //player loses 10% of all spent mana when he dies}else if(bless == 1) { lostMana = (long)(sumMana * 0.09); //player loses 10% of all spent mana when he dies} else if(bless == 2) { lostMana = (long)(sumMana * 0.08); //player loses 10% of all spent mana when he dies} else if(bless == 3) { lostMana = (long)(sumMana * 0.07); //player loses 10% of all spent mana when he dies} else if(bless == 4) { lostMana = (long)(sumMana * 0.06); //player loses 10% of all spent mana when he dies} else if(bless == 5) { lostMana = (long)(sumMana * 0.05); //player loses 10% of all spent mana when he dies} while(lostMana > manaspent){ lostMana -= manaspent; manaspent = getReqMana(maglevel, vocation); maglevel--; } manaspent -= lostMana; //End Magic Level downgrade //Skill loss long lostSkillTries; unsigned long sumSkillTries; for (int i = 0; i <= 6; i++) { //for each skill lostSkillTries = 0; //reset to 0 sumSkillTries = 0; for (unsigned c = 11; c <= skills[i][sKILL_LEVEL]; c++) { //sum up all required tries for all skill levels sumSkillTries += getReqSkillTries(i, c, vocation); } sumSkillTries += skills[i][sKILL_TRIES];if(bless == 0) { lostSkillTries = (long) (sumSkillTries * 0.1); //player loses 10% of his skill tries }else if(bless == 1) { lostSkillTries = (long) (sumSkillTries * 0.09); //player loses 10% of his skill tries }else if(bless == 2) { lostSkillTries = (long) (sumSkillTries * 0.08); //player loses 10% of his skill tries }else if(bless == 3) { lostSkillTries = (long) (sumSkillTries * 0.07); //player loses 10% of his skill tries }else if(bless == 4) { lostSkillTries = (long) (sumSkillTries * 0.06); //player loses 10% of his skill tries }else if(bless == 5) { lostSkillTries = (long) (sumSkillTries * 0.05); //player loses 10% of his skill tries }else { lostSkillTries = (long) (sumSkillTries * 0.1); //player loses 10% of his skill tries} while(lostSkillTries > skills[i][sKILL_TRIES]){ lostSkillTries -= skills[i][sKILL_TRIES]; skills[i][sKILL_TRIES] = getReqSkillTries(i, skills[i][sKILL_LEVEL], vocation); if(skills[i][sKILL_LEVEL] > 10){ skills[i][sKILL_LEVEL]--; } else{ skills[i][sKILL_LEVEL] = 10; skills[i][sKILL_TRIES] = 0; lostSkillTries = 0; break; } } skills[i][sKILL_TRIES] -= lostSkillTries; } //End Skill loss //Level Downgrade long newLevel = level; while((unsigned long)(experience - getLostExperience()) < getExpForLv(newLevel)) //0.1f is also used in die().. maybe we make a little function for exp-loss? { if(newLevel > 1) newLevel--; else break; } if(newLevel != level) { std::stringstream lvMsg; lvMsg << "You were downgraded from level " << level << " to level " << newLevel << "."; client->sendTextMessage(MSG_ADVANCE, lvMsg.str().c_str()); }} Agora em Creature.cpp Troque a função inteira int Creature::getLostExperience() { if(bless == 1) { return (int)std::floor(((float)experience * 0.09)); } else if(bless == 2) { return (int)std::floor(((float)experience * 0.08)); } else if(bless == 3) { return (int)std::floor(((float)experience * 0.07)); } else if(bless == 4) { return (int)std::floor(((float)experience * 0.06)); } else if(bless == 5) { return (int)std::floor(((float)experience * 0.05)); } else if(bless == 0) { return (int)std::floor(((float)experience * 0.10)); } else { return (int)std::floor(((float)experience * 0.10)); } bless = 0; blessa = 0; blessb = 0; blessc = 0; blessd = 0; blesse = 0;} Agora em npc.cpp Em "int NpcScript::registerFunctions()" Após : /* Bless System - By Kyo */int NpcScript::luaCreatureGetBless(lua_State *L){ int id = (int)lua_tonumber(L, -1); lua_pop(L,1); Npc* mynpc = getNpc(L); Creature *target = mynpc->game->getCreatureByID(id); lua_pushnumber(L, target->bless); return 1;}int NpcScript::luaSetNewBless(lua_State *L){ int bless = (int)lua_tonumber(L, -1); int blessa = (int)lua_tonumber(L, -2); int blessb = (int)lua_tonumber(L, -3); int blessc = (int)lua_tonumber(L, -4); int blessd = (int)lua_tonumber(L, -5); int blesse = (int)lua_tonumber(L, -6); int id = (int)lua_tonumber(L, -7); lua_pop(L,8); Npc* mynpc = getNpc(L); Creature *target = mynpc->game->getCreatureByID(id); target->bless = bless; target->blessa = blessa; target->blessb = blessb; target->blessc = blessc; target->blessd = blessd; target->blesse = blesse; return 1;}/* Checando o Status das Blesses */int NpcScript::luaCreatureGetBlessStatusa(lua_State *L){ int id = (int)lua_tonumber(L, -1); lua_pop(L,1); Npc* mynpc = getNpc(L); Creature *target = mynpc->game->getCreatureByID(id); lua_pushnumber(L, target->blessa); return 1;}int NpcScript::luaCreatureGetBlessStatusb(lua_State *L){ int id = (int)lua_tonumber(L, -1); lua_pop(L,1); Npc* mynpc = getNpc(L); Creature *target = mynpc->game->getCreatureByID(id); lua_pushnumber(L, target->blessb); return 1;}int NpcScript::luaCreatureGetBlessStatusc(lua_State *L){ int id = (int)lua_tonumber(L, -1); lua_pop(L,1); Npc* mynpc = getNpc(L); Creature *target = mynpc->game->getCreatureByID(id); lua_pushnumber(L, target->blessc); return 1;}int NpcScript::luaCreatureGetBlessStatusd(lua_State *L){ int id = (int)lua_tonumber(L, -1); lua_pop(L,1); Npc* mynpc = getNpc(L); Creature *target = mynpc->game->getCreatureByID(id); lua_pushnumber(L, target->blessd); return 1;}int NpcScript::luaCreatureGetBlessStatuse(lua_State *L){ int id = (int)lua_tonumber(L, -1); lua_pop(L,1); Npc* mynpc = getNpc(L); Creature *target = mynpc->game->getCreatureByID(id); lua_pushnumber(L, target->blesse); return 1;}/* Checando o Status das Blesses *//* Bless System - By Kyo */ Declarações Em creature.h Após : int speed; Adicione : /* Bless System - By Kyo */ int bless; int blessa, blessb, blessc, blessd, blesse;/* Bless System - By Kyo */ Em npc.h Após : static int luaSelfGetPos(lua_State *L); Adicione : static int luaCreatureGetBless(lua_State *L); static int luaSetNewBless(lua_State *L); static int luaCreatureGetBlessStatusa(lua_State *L); static int luaCreatureGetBlessStatusb(lua_State *L); static int luaCreatureGetBlessStatusc(lua_State *L); static int luaCreatureGetBlessStatusd(lua_State *L); static int luaCreatureGetBlessStatuse(lua_State *L); REBUILD ALL Fiz 5 NPCS que vendem a Bless ( Sem pagar nada ) Fixed ~* http://www.megaupload.com/pt/?d=CZL8GPOF Ty Brizola :~* Axo q não esqueci nada ^^ Para vender apenas no seu NPC.lua adicione esta linha : doPlayerRemoveMoney(cid,20000) Depois de : setNewBless(focus, blesse, blessd, blessc, blessb, blessa, bless) testado no Novo CVS ( 0.4.1 ) e funcionando. Kyo ~* Preguiça de traduzi tah aki o q falta well the bug fix.... i dunno why noone did that, its too easy... find : void Player::die() { after that add Code: now = 0; bless1 = 0; bless2 = 0; bless3 = 0; bless4 = 0; bless5 = 0; this code its too big now i made a new one... its only 15 lines and just one thing.... Kyo = Honux = me
  19. heyo ^^ kra.... to relendo seu tuto algumas vzs.... e acabei axando uma dúvida x~ void exemple(){int exex = putt + pot;if(hehe < exex)hehe = exex;else if(hehe == exex)hehe += exex;else if(hehe > exex)hehe -= exex;} Neste code, pq vc não declarou 'hehe'? e se declarou onde declarou? a mesma pergunta com o 'putt' e o 'pot'... Kyo ~*
  20. ahiUAHIhaiuHAIU Heliton vx num tinha pensado nisso? Oo nd non :~ WPFIS? ( What ###### Fucking is Shell? )
  21. NOOOOSSAAAAAAAAA como tá bem desenvolvido Axo uma p*** d uma sacanagem isso, pois não foi só o Dark-Bart que fez isso, se ele fez, fez, mais não só ele então não deveria ser citado como exemplo Seria melhor vc fazer um code msm no Servidor onde checava as conecções ao mesmo tempo, se tiver mais de uma conecção ao mesmo tempo o server reiejtar as outras.... Kyo ~*
  22. honux

    Pesquisa XTibia

    Adriano ( Kyo ou Honux ou Yuka ou Zopobare [continua] ) 10 Só falta uma acessoria melhor em OTServ... Só num ajudo pq num tenho mta paciencia pra ajuda pessoas q tem duvidas q tem as respostas em Tópicos já criados!
  23. Belo code gus ^^ vai t no Univ X ? x) Eu tava pensando em esses dias fzr um save por 'advance', qdo o player avançar em Shield ou Sword ou Axe ou Distance ou Club ou Level ou ML salva o player =P
  24. Bom kra aki o Script não funfou =[ tá dando erro na linha : echo "$match[1]/$match[2]"; pelo q eu saiba essa é a linha mais importante e da erro pq ele imprime os players e o max players Tem certeza q esse script tá completo? =P olha o erro... Notice: Undefined index: 1 in c:\arquivos de programas\easyphp1-7\www\teste.php on line 118Notice: Undefined index: 2 in c:\arquivos de programas\easyphp1-7\www\teste.php on line 118/ tá dizendo q $match não foi definido =P posta o code intero ai x)
  25. boooooaaaaa pela 1ª vez eu vejo isso e espero q isso de certo! ty kra! isso vai c mtooo util na comunidad
  • Quem Está Navegando   0 membros estão online

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