-
Posts
613 -
Joined
-
Last visited
-
Days Won
96 -
Feedback
100%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Everything posted by martysama0134
-
Problem exporting models
martysama0134 replied to KingTsunamy's topic in Community Support - Questions & Answers
Inya is wrong.Select only the meshes of the models except for the bones and press the "export only the selected" button. -
Problem exporting models
martysama0134 replied to KingTsunamy's topic in Community Support - Questions & Answers
You should not export the bones, but only the model. -
Why don't you try to make a quest instead of that for such chest? If that is not your real request, it should be an if statement that checks the space before opening a chest and dropping the items on the ground.
-
Are you drunk? I made infinite maps using this tool and never got problems. (and many other people too)If you can't even use such easy program, I have bad news for you. It's normal that you need to put the files in D: (I illustrated few ways to do so) AND is also normal that if you create a new model you should verify whether the texture path is correct or not.
-
log.loginlog2 table structure is wrong. Change it like this: type varchar(20) is_gm varchar(1) login_time datetime channel int account_id int pid int ip varchar(15) client_version varchar(11)
-
Problem start core
martysama0134 replied to pyros's topic in Community Support - Questions & Answers
This happens if db has a mysqlclient library w/o extra charsets linked. Add inside db/conf.txt: LOCALE = latin1This also happens if you install mysql via pkg and not via ports. -
I didn't understand. bool CPythonPlayer::__CheckShortMana(TSkillInstance& rkSkillInst, CPythonSkill::TSkillData& rkSkillData) { extern const DWORD c_iSkillIndex_Summon; if (c_iSkillIndex_Summon == rkSkillInst.dwIndex) return false; int iNeedSP = rkSkillData.GetNeedSP(rkSkillInst.fcurEfficientPercentage); int icurSP = GetStatus(POINT_SP); // NOTE : ToggleSkill ÀÌ ¾Æ´Ñµ¥ ¼Ò¸ð SP °¡ 0 ÀÌ´Ù. if (!rkSkillData.IsToggleSkill()) { if (iNeedSP == 0) { CPythonChat::Instance().AppendChat(CHAT_TYPE_INFO, "!!! Find strange game data. Please reinstall metin2."); return true; } } if (rkSkillData.CanUseIfNotEnough()) { if (icurSP <= 0) return true; } else { if (-1 != iNeedSP) if (iNeedSP > icurSP) return true; } return false; } It's self-explanatory.
-
Click
-
Otherwise: # pkg search gcc49 gcc49-4.9.2.s20140917 # pkg install gcc49-4.9.2.s20140917
-
Metin2 db crashes
martysama0134 replied to dotMatryx's topic in Community Support - Questions & Answers
[Hidden Content] [Hidden Content] 10/10 gotta help -
40K Source Crash Game > game.core
martysama0134 replied to doNaLs's topic in Community Support - Questions & Answers
You posted the game.core, but to analyze it well we also need the relative game binary that caused such crash (no updated/recompilated ones), otherwise the result will be a mess.The syslog indicates in which line the execution stopped. It could be helpful if you add 'em too. (you just included game.core and syserr) For blend.txt, look also at this. -
40K Source Crash Game > game.core
martysama0134 replied to doNaLs's topic in Community Support - Questions & Answers
1) Post the syserr.txt 2) Post the syslog.txt 3) Make a "bt full" and not a simple "backtrace" and post the result 4) Check and post your blend.txt 5) I don't have any use_blend_item string inside my server files; did you add extra things in yours? -
You're using both "pkg" and "pkg_".You should remove "pkg_" (obsolete since freebsd 9.x), otherwise it's useless what you're trying to do.
-
Bug energie system 40250
martysama0134 replied to nichtwork's topic in Community Support - Questions & Answers
>old root >blaming the server #wakatta -
mde -> rickymdatr -> anohros
-
Private messages logs
martysama0134 replied to tmoitoi's topic in Community Support - Questions & Answers
He didn't mean that ahahahOpen input_main.cpp and search for: sys_log(0, "WHISPER: %s -> %s : %s", ch->GetName(), pinfo->szNameTo, buf);There's an if (locale_IsSomething()) in there, so just remove it and the whisper will be logged.This was a trick used in old revs. In the r404 one, even the normal and guild ones were logged and there was no check to remove. -
Ymir enabled an anti-starvation system: signal_timer_enable(30); signal(SIGVTALRM, checkpointing);They set a SIGVTALRM signal that calls (via kernel) the checkpointing function every 30 seconds of effective execution time. Considering this: int idle() { ... while (passed_pulses--) { heartbeat(thecore_heart, ++thecore_heart->pulse); // To reduce the possibility of abort() in checkpointing thecore_tick(); } CHARACTER_MANAGER::instance().Update(thecore_heart->pulse); db_clientdesc->Update(t); ... } The bug will appear if such functions will spend more than 30 seconds to be completely executed. (still talking about execution time and not real one)A quest containing a "while true begin end" will also cause such error and the game will be crashed after 30 seconds. If you still have the game.core generated by that crash and the relative game binary, I'll try to analyze it. (it should contain where the presumed "starvation" is) Otherwise, you'll be fucked up. You can even try to remove the abort() call via dif, but you could still get a freezed game if it's a real starvation.
-
I'm not referring to str_to_number, which is overloaded. I quoted the table structure not the remaining of the code/thread: What we have here? Fields set as signed (even though the real type should be unsigned; you'll get the real unsigned/signed issue from a different field btw) Example: typedef struct SItemLimit { BYTE bType; long lValue; } TItemLimit; You also didn't set the fields as NOT NULL, so you could fetch NULL fields and get a runtime crash. Example: str_to_number(item_table->aLimits[i].bType, data[col++]);*NULL = crash Remove it by yourself if that is the problem. It's a line of code.
-
Be aware of the signedness of the fields (not only those three I pointed out) and whether they could be NULL or not. (actually, there are few cases in which you could get bugs)
-
[Warning]Notepad++
martysama0134 replied to Saddler's topic in Community Support - Questions & Answers
You just need to disable the auto-charset detection inside the notepad++ preferences dialog: -
Character Deletion not working :S
martysama0134 replied to Invictus's topic in Community Support - Questions & Answers
You need to recreate the table: CREATE TABLE player_deleted SELECT * FROM player LIMIT 0;To test it, just try: INSERT INTO player_deleted SELECT * FROM player; -
Game source compile - novaline - problem
martysama0134 replied to Mitchel.'s topic in Community Support - Questions & Answers
# gmake clean dep default -
Quest Function is_trade
martysama0134 replied to Minion's topic in Community Support - Questions & Answers
CExchange returns a "CExchange *", so you can't directly use it as an argument for boolean: int pc_is_trade0(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); lua_pushboolean(L, ch->GetExchange() != NULL); return 1; } There are few other ways such as "(ch->GetExchange())" or "!!ch->GetExchange()". Simplified: int pc_is_busy0(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); lua_pushboolean(L, (ch->GetExchange() || ch->GetMyShop() || ch->GetShopOwner() || ch->IsOpenSafebox() || ch->IsCubeOpen())); return 1; } -
NPC Chat above head
martysama0134 replied to Invictus's topic in Community Support - Questions & Answers
A monster can have 12 sentences (first 3 for wait, other 3 for attack, chase 3, attacked 3), and infinite for NPCs. enum EMonsterChatState { MONSTER_CHAT_WAIT, MONSTER_CHAT_ATTACK, MONSTER_CHAT_CHASE, MONSTER_CHAT_ATTACKED, }; void CHARACTER::MonsterChat(BYTE bMonsterChatType) { if (IsPC()) return; char sbuf[256+1]; if (IsMonster()) { if (number(0, 60)) return; snprintf(sbuf, sizeof(sbuf), "(locale.monster_chat[%i] and locale.monster_chat[%i][%d] or '')", GetRaceNum(), GetRaceNum(), bMonsterChatType*3 + number(1, 3)); } else { if (bMonsterChatType != MONSTER_CHAT_WAIT) return; if (IsGuardNPC()) { if (number(0, 6)) return; } else { if (number(0, 30)) return; } snprintf(sbuf, sizeof(sbuf), "(locale.monster_chat[%i] and locale.monster_chat[%i][number(1, table.getn(locale.monster_chat[%i]))] or '')", GetRaceNum(), GetRaceNum(), GetRaceNum()); } std::string text = quest::ScriptToString(sbuf); if (text.empty()) return; struct packet_chat pack_chat; pack_chat.header = HEADER_GC_CHAT; pack_chat.size = sizeof(struct packet_chat) + text.size() + 1; pack_chat.type = CHAT_TYPE_TALKING; pack_chat.id = GetVID(); pack_chat.bEmpire = 0; TEMP_BUFFER buf; buf.write(&pack_chat, sizeof(struct packet_chat)); buf.write(text.c_str(), text.size() + 1); PacketAround(buf.read_peek(), buf.size()); }