Jump to content

Jfirewall

Members
  • Content Count

    349
  • Joined

  • Last visited

  • Days Won

    18

Jfirewall last won the day on September 1 2020

Jfirewall had the most liked content!

About Jfirewall

  • Rank
    ~Jfirewall Works~
  • Birthday 11/19/1996

Profile Information

  • Gender
    Array

Contact Methods

  • Skype
    Array
  • Discord
    Array

Recent Profile Visitors

9,141 profile views
  1. svside.com es mierda....., si sabes un poco editando 2 cositas quitas la proteccion que lo diga @Robert que es todo un hack
  2. service.h #define __LOAD_MOB_TXT__ #define __LOAD_CHEST_TXT__ buscas ACMD(do_reload) debajo de case 'c': // cube // ·ÎÄà ÇÁ·Î¼¼½º¸¸ °»»êÇÑ´Ù. Cube_init (); break; #if defined(__LOAD_CHEST_TXT__) || defined(__LOAD_MOB_TXT__) case 't': snprintf(szSpecialItemGroupFileName, sizeof(szSpecialItemGroupFileName), "%s/special_item_group.txt", LocaleService_GetBasePath().c_str()); ITEM_MANAGER::Instance().DestroyChestDropItem(); if (!ITEM_MANAGER::Instance().ReadSpecialDropItemFile(szSpecialItemGroupFileName)) { ch->ChatPacket(CHAT_TYPE_INFO, "Error al cargar special_item_group.txt."); return; } else { ch->ChatPacket(CHAT_TYPE_INFO, "Cargaste special_item_group."); } break; case 'm': snprintf(szMOBDropItemFileName, sizeof(szMOBDropItemFileName), "%s/mob_drop_item.txt", LocaleService_GetBasePath().c_str()); ITEM_MANAGER::Instance().DestroyMobDropItem(); if (!ITEM_MANAGER::Instance().ReadMonsterDropItemGroup(szMOBDropItemFileName)) { ch->ChatPacket(CHAT_TYPE_INFO, "Error al cargar mob_drop_item.txt."); return; } else { ch->ChatPacket(CHAT_TYPE_INFO, "Cargaste mob_drop_item."); } break; #endif agregar al final de item_manager.cpp #if defined (__LOAD_MOB_TXT__) || defined(__LOAD_CHEST_TXT__) void ITEM_MANAGER::DestroyMobDropItem() { if (!m_map_pkMobItemGroup.empty()) m_map_pkMobItemGroup.clear(); if (!m_map_pkDropItemGroup.empty()) m_map_pkDropItemGroup.clear(); if (!m_map_pkLevelItemGroup.empty()) m_map_pkLevelItemGroup.clear(); if (!m_map_pkGloveItemGroup.empty()) m_map_pkGloveItemGroup.clear(); } void ITEM_MANAGER::DestroyChestDropItem() { if (!m_map_pkSpecialItemGroup.empty()) m_map_pkSpecialItemGroup.clear(); } #endif en item_manager.h debajo de void GracefulShutdown(); agregar #if defined(__LOAD_MOB_TXT__) || defined(__LOAD_CHEST_TXT__) void DestroyMobDropItem(); void DestroyChestDropItem(); #endif Agregando esto no tienes necesidad de dar reboot solo reload t y reload m y automaticamente se carga en el juego.
  3. *Link Borrado* Ayudando un poco al foro a mejorar, traeré algunos sistemas que diseñe y ademas no usare, de pronto alguno si les sirva.
  4. en lo personal yo lo uso mejor en pet y monturas, me parece muy molesto esa puta bandera en un pet o una montura agregamos primero: #include "../gamelib/ItemManager.h" buscas void CInstanceBase::__AttachEmpireEffect(DWORD eEmpire) debajo de CInstanceBase* pkInstMain=__GetMainInstancePtr(); agregas: CItemData * pItemData = CItemManager::Instance().GetSelectedItemDataPointer(); debajo de if (IsResource()) ponemos if (CItemData::COSTUME_MOUNT) return; if (GetRace() >= 53001 && GetRace() <= 53251) return;
  5. local c,query = mysql_direct_query("SELECT * FROM account.account WHERE id = '"..pc.get_account_id().."' LIMIT 1;") if query[1].ok < 1 then say'existe un valor menor a 1' else say'existe un valor de 1'
  6. Muy buen trabajo buena suerte con tus ventas
  7. El servidor cuenta con un multilenguaje, el cual podrás configurarlo al idioma que tu desees, el cual te traducirá idioma de cliente, misiones y nuestros innovadores eventos. Te dejo una pequeña imagen, todavía no está terminado y tendrá un mejor estilo.
  8. tu puedes crear tus funciones dentro de una misma quest la funcionalidad de esto es para esto por ejm, tu creas una nueva funcion en tu source ejm questlua_pc int pc_zone(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); ch->ChatPacket(CHAT_TYPE_INFO, "hola zone"); } quet zone begin state start begin when login begin pc.zone() end end end cuando tu compilas te generaria un error el cual seria que debes declarar esta funcion pc.zone, lo que hace lo que publico es quitar que te genere el error y solo compiles y ya, aclaro esto es para los que nos da pereza cada rato estar agregando y agregando funciones
  9. Hola, andaba creando funciones y me daba pereza agregar siempre en el quest_fuctions entonces decidí quitarlo desde mi qc Primero vamos a qc.cc y buscamos: enum parse_state dentro de esto eliminamos esto ST_FUNCTION_NAME, luego buscamos y eliminamos esto : int none_c_function(lua_State* L) { return 0; } set<string> function_defs; set<string> function_calls; void RegisterDefFunction(const string& fname) { function_defs.insert(fname); } void RegisterUsedFunction(const string& fname) { function_calls.insert(fname); } void CheckUsedFunction() { bool hasError = false; set<string> error_func; for (typeof(function_calls.begin()) it = function_calls.begin(); it != function_calls.end(); ++it) { if (function_defs.find(*it) == function_defs.end()) { hasError = true; error_func.insert(*it); } cout << "Used : " << *it << endl; } if (hasError) { cout << "Calls undeclared function! : " << endl; for (typeof(error_func.begin()) it = error_func.begin(); it != error_func.end(); ++it) { cout << *it << endl; } abort(); } } void load_quest_function_list(const char* filename) { ifstream inf(filename); string s; while (!inf.eof()) { inf >> s; if (inf.fail()) break; RegisterDefFunction(s); } } luego buscamos esto y lo eliminamos: load_quest_function_list("quest_functions"); luego buscamos esto y lo eliminamos: else if (t.token == TK_FUNCTION) { ps = ST_FUNCTION_NAME; luego buscamos esto y lo eliminamos OJO EXISTEN DOS ELIMINAR LOS DOS: if (!callname.empty()) { lookahead(&lexstate); if (lexstate.lookahead.token == '(') { RegisterUsedFunction(callname); registered = true; } callname.clear(); } else if (lexstate.t.token == '(') { if (!registered && prev.t.token == TK_NAME) RegisterUsedFunction(getstr(prev.t.seminfo.ts)); registered = false; } luego buscamos esto y lo eliminamos: case ST_FUNCTION_NAME: if (t.token == TK_NAME) { current_function_name = getstr(t.seminfo.ts); RegisterDefFunction(quest_name+"."+current_function_name); ps = ST_FUNCTION_ARG; } break; luego buscamos esto y lo eliminamos: CheckUsedFunction(); Compilamos nuestro qc, y listo ya no tendran que declarar mas funciones nuevas en el quest_fuctions
×
×
  • Create New...