Jump to content

ATAG

Active Member
  • Posts

    236
  • Joined

  • Last visited

  • Days Won

    1
  • Feedback

    0%

Everything posted by ATAG

  1. pc.give_item2 returns the new item id, so you can do this way: local id = pc.give_item2(12345) local ret = item.select(id) if not ret then syschat("something is wrong") else ... end
  2. when kill with npc.get_race() == 1062 and pc.in_dungeon() and d.getf("level") == 5 begin
  3. But what is locale/_master? What is in common/locale->LOCALE ?
  4. Or change to { "shutdown", do_shutdown, 0, POS_DEAD, GM_IMPLEMENTOR },
  5. Install gcc48 and copy /usr/local/lib/gcc48/libstdc++.so.6 to /usr/lib/
  6. Change the mobs in group_group.txt. This way you don't have to edit the regen files.
  7. This is in questlib.lua: [Hidden Content] You can set drop rate for an item with a (event)flag
  8. The indexes (SELECT apply+0) in item_attr are wrong. Fix (got directly from mainline's length.h): ALTER TABLE `item_attr` CHANGE `apply` `apply` ENUM('MAX_HP','MAX_SP','CON','INT','STR','DEX','ATT_SPEED','MOV_SPEED','CAST_SPEED','HP_REGEN','SP_REGEN','POISON_PCT','STUN_PCT','SLOW_PCT','CRITICAL_PCT','PENETRATE_PCT','ATTBONUS_HUMAN','ATTBONUS_ANIMAL','ATTBONUS_ORC','ATTBONUS_MILGYO','ATTBONUS_UNDEAD','ATTBONUS_DEVIL','STEAL_HP','STEAL_SP','MANA_BURN_PCT','DAMAGE_SP_RECOVER','BLOCK','DODGE','RESIST_SWORD','RESIST_TWOHAND','RESIST_DAGGER','RESIST_BELL','RESIST_FAN','RESIST_BOW','RESIST_FIRE','RESIST_ELEC','RESIST_MAGIC','RESIST_WIND','REFLECT_MELEE','REFLECT_CURSE','POISON_REDUCE','KILL_SP_RECOVER','EXP_DOUBLE_BONUS','GOLD_DOUBLE_BONUS','ITEM_DROP_BONUS','POTION_BONUS','KILL_HP_RECOVER','IMMUNE_STUN','IMMUNE_SLOW','IMMUNE_FALL','SKILL','BOW_DISTANCE','ATT_GRADE_BONUS','DEF_GRADE_BONUS','MAGIC_ATT_GRADE','MAGIC_DEF_GRADE','CURSE_PCT','MAX_STAMINA','ATTBONUS_WARRIOR','ATTBONUS_ASSASSIN','ATTBONUS_SURA','ATTBONUS_SHAMAN','ATTBONUS_MONSTER','MALL_ATTBONUS','MALL_DEFBONUS','MALL_EXPBONUS','MALL_ITEMBONUS','MALL_GOLDBONUS','MAX_HP_PCT','MAX_SP_PCT','SKILL_DAMAGE_BONUS','NORMAL_HIT_DAMAGE_BONUS','SKILL_DEFEND_BONUS','NORMAL_HIT_DEFEND_BONUS','PC_BANG_EXP_BONUS','PC_BANG_DROP_BONUS','EXTRACT_HP_PCT','RESIST_WARRIOR','RESIST_ASSASSIN','RESIST_SURA','RESIST_SHAMAN','ENERGY','DEF_GRADE','COSTUME_ATTR_BONUS','MAGIC_ATTBONUS_PER','MELEE_MAGIC_ATTBONUS_PER','RESIST_ICE','RESIST_EARTH','RESIST_DARK','ANTI_CRITICAL_PCT','ANTI_PENETRATE_PCT') CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'MAX_HP';
  9. quest bla begin state start begin when 9003.chat."TEST" begin local p = game.mysql_query("select 'login', 'social_id' from account.account where 'id' = '"..pc.get_account_id()"'" LIMIT 1;) if not p then return chat "FAILED" end say("Dein Login: "..p.login) say("Dein Code: "..p.social_id) end end end Try this:
  10. Ok, finally i've solved the problem (i think). i've added some lines to cmd_gm.cpp, so /state proint the immune flags too (just for checking): Look for ACMD(do_state) then add: ch->ChatPacket(CHAT_TYPE_INFO, "IMMUNE:"); ch->ChatPacket(CHAT_TYPE_INFO, " STUN:%d SLOW:%d FALL:%d", tch->GetPoint(POINT_IMMUNE_STUN), tch->GetPoint(POINT_IMMUNE_SLOW), tch->GetPoint(POINT_IMMUNE_FALL)); Looks like this: In item.cpp it's not a big change, but it seems working for me: (In functions bool CItem::EquipTo and bool CItem::Unequip) for (int i = 0; i < WEAR_MAX_NUM; ++i) { if (m_pOwner->GetWear(i)) { SET_BIT(dwImmuneFlag, m_pOwner->GetWear(i)->GetImmuneFlag()); } } m_pOwner->SetImmuneFlag(dwImmuneFlag);
  11. Static linking has some bugs on amd64, game just crash (Abort trap) when it receives SIGKILL (or other signals).
  12. SetImmuneFlag called in other functions too. This code causes that the last immune has no effect. For example: if you have stun and slow immune in a shield, only stun will work, slow won't...
  13. Maybe this is not a coincidence that we have a number() quest function.
  14. Answer sent in PM, but let it be here for the community: I think the problem is the ` char in (`X`,`Y`,`Z`), it means "execute a command" in shell.
  15. gold min, gold max and resurrectionVnum? Thanks anyway
  16. My working makefile and version.cpp. I use gcc48 on FreeBSD-9.1 WITHOUT hackshield and xtrap you have to delete some lines of your code, gmake will tell you where... Change "CFLAGS += -mssse3 -mtune=corei7" to your needs, it's for Xeon E5620 (or simply use -mtune=native if you compile on the target machine) game: PLATFORM = $(shell file /bin/ls | cut -d' ' -f3 | cut -d'-' -f1) GCC_VERSION = $(shell $(CC) --version 2>&1 | grep "(GCC)" | cut -d' ' -f3 | cut -d'.' -f1) BSD_VERSION = $(shell uname -v 2>&1 | cut -d' ' -f2 | cut -d'.' -f1) SVN_VERSION = 50001 #CC = g++ CC = g++48 INCDIR = LIBDIR = BINDIR = .. OBJDIR = OBJDIR $(shell if [ ! -d $(OBJDIR) ]; then mkdir $(OBJDIR); fi) # Standard Setting LIBS = -pthread -lm -lmd # Removed -fno-rtti CFLAGS = -Wall -g -O2 -m32 -pipe -fexceptions -fpermissive -D_THREAD_SAFE -DNDEBUG # -D_USE_SERVER_KEY_ ifeq ($(GCC_VERSION), 4) CFLAGS += -mtune=i686 -fstack-protector-all else CFLAGS += -mssse3 -mtune=corei7 endif # boost #INCDIR += -I../../../Extern/include/boost #LIBDIR += -L/usr/local/lib # DevIL INCDIR += -I../../libdevil LIBDIR += -L../../libdevil LIBS += -lIL -lpng -ltiff -ljbig -llzma -ljasper -lmng -llcms -ljpeg # MySQL ifeq ($(BSD_VERSION), 7) INCDIR += -I../../libmysql/7.x-5.1.35 LIBDIR += -L../../libmysql/7.x-5.1.35 else INCDIR += -I../../libmysql/5.x-5.1.35 LIBDIR += -L../../libmysql/5.x-5.1.35 endif LIBDIR += -L/usr/local/lib/mysql LIBS += -lmysqlclient -lz # Miscellaneous external libraries INCDIR += -I../../../Extern/include LIBDIR += -L../../../Extern/lib LIBS += -lcryptopp -lgtest # HackShield #INCDIR += -I../../libhackshield/include #LIBDIR += -L../../libhackshield/lib #LIBS += -lanticpxsvr # XTrap #INCDIR += -I../../libxtrap/include # openssl #INCDIR += -I/usr/include #LIBS += -lssl #LIBS += /usr/lib/libssl.a # Project Library INCDIR += -I../../liblua/include INCDIR += -I/usr/local/include INCDIR += -I../../libserverkey LIBDIR += -L../../libthecore/lib -L../../libpoly -L../../libsql -L../../libgame/lib -L../../liblua/lib -L../../libserverkey LIBDIR += -L/usr/local/lib LIBS += -lthecore -lpoly -llua -llualib -lsql -lgame -lserverkey USE_STACKTRACE = 0 ifeq ($(USE_STACKTRACE), 1) LIBS += /usr/local/lib/libexecinfo.a endif TARGET = $(BINDIR)/game_r$(SVN_VERSION)_32 CFILE = minilzo.c CPPFILE = BattleArena.cpp FSM.cpp MarkConvert.cpp MarkImage.cpp MarkManager.cpp OXEvent.cpp TrafficProfiler.cpp ani.cpp arena.cpp banword.cpp battle.cpp blend_item.cpp block_country.cpp buffer_manager.cpp building.cpp castle.cpp char.cpp char_affect.cpp char_battle.cpp char_change_empire.cpp char_horse.cpp char_item.cpp char_manager.cpp char_quickslot.cpp char_resist.cpp char_skill.cpp char_state.cpp PetSystem.cpp cmd.cpp cmd_emotion.cpp cmd_general.cpp cmd_gm.cpp cmd_oxevent.cpp config.cpp constants.cpp crc32.cpp cube.cpp db.cpp desc.cpp desc_client.cpp desc_manager.cpp desc_p2p.cpp dev_log.cpp dungeon.cpp empire_text_convert.cpp entity.cpp entity_view.cpp event.cpp event_queue.cpp exchange.cpp file_loader.cpp fishing.cpp gm.cpp guild.cpp guild_manager.cpp guild_war.cpp horse_rider.cpp horsename_manager.cpp input.cpp input_auth.cpp input_db.cpp input_login.cpp input_main.cpp input_p2p.cpp input_teen.cpp input_udp.cpp ip_ban.cpp item.cpp item_addon.cpp item_attribute.cpp item_manager.cpp item_manager_idrange.cpp locale.cpp locale_service.cpp log.cpp login_data.cpp lzo_manager.cpp marriage.cpp matrix_card.cpp messenger_manager.cpp mining.cpp mob_manager.cpp monarch.cpp motion.cpp over9refine.cpp p2p.cpp packet_info.cpp party.cpp passpod.cpp pcbang.cpp polymorph.cpp priv_manager.cpp pvp.cpp questevent.cpp questlua.cpp questlua_affect.cpp questlua_arena.cpp questlua_ba.cpp questlua_building.cpp questlua_danceevent.cpp questlua_dungeon.cpp questlua_forked.cpp questlua_game.cpp questlua_global.cpp questlua_guild.cpp questlua_horse.cpp questlua_pet.cpp questlua_item.cpp questlua_marriage.cpp questlua_mgmt.cpp questlua_monarch.cpp questlua_npc.cpp questlua_oxevent.cpp questlua_party.cpp questlua_pc.cpp questlua_quest.cpp questlua_target.cpp questmanager.cpp questnpc.cpp questpc.cpp refine.cpp regen.cpp safebox.cpp sectree.cpp sectree_manager.cpp sequence.cpp shop.cpp skill.cpp start_position.cpp target.cpp text_file_loader.cpp trigger.cpp utils.cpp vector.cpp war_map.cpp wedding.cpp xmas_event.cpp version.cpp panama.cpp threeway_war.cpp map_location.cpp auth_brazil.cpp BlueDragon.cpp BlueDragon_Binder.cpp DragonLair.cpp questlua_dragonlair.cpp skill_power.cpp affect.cpp SpeedServer.cpp questlua_speedserver.cpp auction_manager.cpp FileMonitor_FreeBSD.cpp ClientPackageCryptInfo.cpp cipher.cpp buff_on_attributes.cpp check_server.cpp dragon_soul_table.cpp DragonSoul.cpp group_text_parse_tree.cpp char_dragonsoul.cpp questlua_dragonsoul.cpp shop_manager.cpp shopEx.cpp item_manager_read_tables.cpp COBJS = $(CFILE:%.c=$(OBJDIR)/%.o) CPPOBJS = $(CPPFILE:%.cpp=$(OBJDIR)/%.o) MAINOBJ = $(OBJDIR)/main.o MAINCPP = main.cpp TESTOBJ = $(OBJDIR)/test.o TESTCPP = test.cpp TEST_TARGET = $(BINDIR)/test_r$(SVN_VERSION)_32 default: $(TARGET) $(TEST_TARGET) $(OBJDIR)/minilzo.o: minilzo.c @$(CC) $(CFLAGS) $(INCDIR) -c $< -o $@ @echo compile $< $(OBJDIR)/version.o: version.cpp @$(CC) $(CFLAGS) -D__SVN_VERSION__="$(SVN_VERSION)" -c $< -o $@ @echo compile $< $(OBJDIR)/%.o: %.cpp @echo compile $< @$(CC) $(CFLAGS) $(INCDIR) -c $< -o $@ limit_time: @echo update limit time @python update_limit_time.py $(TARGET): $(CPPOBJS) $(COBJS) $(MAINOBJ) @echo linking $(TARGET).... @$(CC) $(CFLAGS) $(LIBDIR) $(COBJS) $(CPPOBJS) $(MAINOBJ) $(LIBS) -o $(TARGET) #compress with upx #@upx $(TARGET) $(TEST_TARGET): $(TESTCPP) $(CPPOBJS) $(COBJS) $(TESTOBJ) @echo linking $(TEST_TARGET) @$(CC) $(CFLAGS) $(LIBDIR) $(COBJS) $(CPPOBJS) $(TESTOBJ) $(LIBS) -o $(TEST_TARGET) clean: @rm -f $(COBJS) $(CPPOBJS) $(MAINOBJ) $(TESTOBJ) @rm -f $(BINDIR)/game_r* $(BINDIR)/conv tag: ctags *.cpp *.h *.c dep: makedepend -f Depend $(INCDIR) -I/usr/include/c++/3.3 -I/usr/include/c++/4.2 -p$(OBJDIR)/ $(CPPFILE) $(CFILE) $(MAINCPP) $(TESTCPP) 2>/dev/null > Depend sinclude Depend #include <stdio.h> void WriteVersion() { #ifndef __WIN32__ FILE* fp = fopen("VERSION.txt", "w"); if (fp) { fprintf(fp, "game svn revision: %sn", __SVN_VERSION__); //fprintf(fp, "%s@%s:%sn", __USER__, __HOSTNAME__, __PWD__); fclose(fp); } #endif } db: MAKE = gmake #CC = g++ CC = g++48 INCDIR = LIBDIR = BINDIR = .. OBJDIR = .obj GCC_VERSION = $(shell $(CC) --version 2>&1 | grep "(GCC)" | cut -d' ' -f3 | cut -d'.' -f1) BSD_VERSION = $(shell uname -v 2>&1 | cut -d' ' -f2 | cut -d'.' -f1) P4_VERSION = 50000 $(shell if [ ! -d $(OBJDIR) ]; then mkdir $(OBJDIR); fi) TARGET = $(BINDIR)/db_r$(P4_VERSION) CFLAGS = -Wall -g -m32 -O2 -pipe -fno-rtti -fno-exceptions -pthread -D_THREAD_SAFE ifeq ($(GCC_VERSION), 4) CFLAGS += -mtune=i686 else CFLAGS += -mssse3 -mtune=corei7 endif # boost #INCDIR += -I../../../Extern/include LIBDIR += -L../../libthecore/lib -L../../libsql -L../../libpoly -L../../libgame/lib ifeq ($(BSD_VERSION), 7) INCDIR += -I../../libmysql/7.x-5.1.35 LIBDIR += -L../../libmysql/7.x-5.1.35 else INCDIR += -I../../libmysql/5.x-5.1.35 LIBDIR += -L../../libmysql/5.x-5.1.35 endif LIBDIR += -L/usr/local/lib/mysql LIBS = -lthecore -lmysqlclient -lsql -lpoly -lgame -lm -lz SRCS = Config.cpp NetBase.cpp Peer.cpp PeerBase.cpp Main.cpp Lock.cpp DBManager.cpp Cache.cpp LoginData.cpp ClientManager.cpp ClientManagerPlayer.cpp ClientManagerLogin.cpp ClientManagerBoot.cpp ClientManagerParty.cpp ClientManagerGuild.cpp GuildManager.cpp HB.cpp PrivManager.cpp MoneyLog.cpp ItemAwardManager.cpp ClientManagerEventFlag.cpp Marriage.cpp Monarch.cpp BlockCountry.cpp ItemIDRangeManager.cpp ClientManagerHorseName.cpp version.cpp AuctionManager.cpp ProtoReader.cpp CsvReader.cpp OBJS = $(SRCS:%.cpp=$(OBJDIR)/%.o) default: $(TARGET) $(TARGET): $(OBJS) @echo linking ... @$(CC) $(CFLAGS) $(LIBDIR) $(OBJS) $(LIBS) -o $(TARGET) @touch version.cpp $(OBJDIR)/%.o: %.cpp @echo compile $< @$(CC) $(CFLAGS) $(INCDIR) -c $< -o $@ $(OBJDIR)/version.o: version.cpp @$(CC) $(CFLAGS) -D__SVN_VERSION__="$(P4_VERSION)" -c $< -o $@ @echo compile $< $(OBJDIR): @mkdir $(OBJDIR) clean: @rm -f $(OBJS) $(BINDIR)/db_r* dep: @touch Depend makedepend -fDepend $(INCDIR) -I/usr/include/c++/3.3 -I/usr/include/c++/4.2 -p$(OBJDIR)/ $(SRCS) 2> /dev/null sinclude Depend #include <stdio.h> #include <stdlib.h> void WriteVersion() { #ifndef __WIN32__ FILE* fp(fopen("VERSION.txt", "w")); if (NULL != fp) { fprintf(fp, "db svn revision: %sn", __SVN_VERSION__); //fprintf(fp, "%s@%s:%sn", __USER__, __HOSTNAME__, __PWD__); fclose(fp); } else { fprintf(stderr, "cannot open VERSION.txtn"); exit(0); } #endif }
  17. No, the table is not broken. The value that you try to insert into "size" is too big. It's often occures by wrong sql commad.
  18. $ lua51 Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio > print(math.random(100)) 85 > I don't know how it works in 5.0, but i think it's the same...
  19. NO! From 100 kill the script runs only 2 times. I think that you have to check the level BEFORE number/math.random. quest drop begin state start begin when kill with not npc.is_pc() begin local mob_lvl=npc.get_level() local player_level=pc.get_level() if player_level - mob_lvl <= 15 and player_level - mob_lvl >= -15 then local chance = 2 -- percent, change if you want! if number(1,100) > (100-chance) then game.drop_item_with_ovnership(50133,1) end end end end end
  20. I think it is not illegal to sell DC. Taxes must be paid and it's OK.
  21. If the system is stable and U don't use services that have known security issues, you don't need to upgrade recently. I use portmaster to keep my apps/services up to date.
  22. There is a search function on this board... [Hidden Content]
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.