Jump to content

Alina

Member
  • Posts

    178
  • Joined

  • Last visited

  • Days Won

    13

Everything posted by Alina

  1. You can do it via CMD file, I guess it also works on 34k. With that you can grant the LOW_WIZARD profile rights do mute. One of the ranks already don't have gm banner, I can't seem to remember which one it was. Just try it out and if you find it, give it access to the mute command. No need to pay
  2. Hey guys! Since I'm no longer a developer, should I still continue developing? :o

    This strange universe :D

    1. mbivol10

      mbivol10

      Strange Universe Indeed, If you're not a developer then what are you ^^? 

  3. Before flaiming against his archiver, we first should have a look at his syserr and log. After that the theory war may rise but now it's too early to tear him apart with accusations..^^ Please, upload syserr.txt and log.txt so we can tell you what's wrong^^
  4. Is 15001 the port of your db cache or another gamefile? Please check that port and give us the syserr of it! Also you'd have a check on your motion files and correct them!
  5. Please post your syslog and log.txt so we can analyze them and backtrace the error together
  6. This board is no support thread for eterhost vps You've only 65mb RAM left, it's kinda low. Also for one channel you have a lot game instances open, maybe you'd try to reduce that For 1,5gb you're running a lot of services like TeamSpeak. Are you sure you ordered the right vps for your needs?
  7. You're getting out of the index with this code! Your for loop doesn't look correct and therefore results in this behaviour. What you're doing is: for i = 1, data01[1], 1 do Which means exactly this: for i = 1, 19, 1 do So the loop will go from 1 to 19, but the table only has 5 entries. Now we can look at the code: if item.vnum == data01[1+1*(i-1)] then In which case is the loop out of index? It's when 1+1*(i-1) > 5 So in your case it'd be at the 6th execution. That's the point where i=6 and the solution would be: 1+1*(6-1) > 5 and yes, 1+5 > 5 What you may wanted to do was this: for i = 1, table.getn(data01), 1 do This will only iterate through the table until it reaches the maximum. Also the Computation doesn't make sense. Why aren't you just using if item.vnum == data01[ i ] then instead of your code?
  8. You can check when the chat command is handled (I guess it's in one of the input cpps) for the map index and then return beforehand. So people can't chat when they're in OX. You can also make an exception when the chat type is whispering, so people can talk privately via pm but not use the normal, guild, group or all chat^^
  9. Hey! I don't like maps :( :D

  10. ​Really? I can't find anything ugly about this. Actually the c++ part is very nice. I didn't check on python. And why are you wishing him good luck at his own release? ._. Sometimes I don't understand people...^^ Anyway, the idea behind that is great and I like the c++ part a lot. Oh, and a german sentence slipped through
  11. Did you open constants.h or constants.cpp? The defines I mentioned are in constants.h and I've got that from the vanilla source that's public here
  12. void CShopManager::Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount) { if (!ch->GetShop()) return; if (!ch->GetShopOwner()) return; if (!ch->CanHandleItem()) return; if (ch->GetShop()->IsPCShop()) return; if (DISTANCE_APPROX(ch->GetX()-ch->GetShopOwner()->GetX(), ch->GetY()-ch->GetShopOwner()->GetY())>2000) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상점과의 거리가 너무 멀어 물건을 팔 수 없습니다.")); return; } LPITEM item = ch->GetInventoryItem(bCell); if(!item) return; // special code (Ken) // if (item->GetType() == ITEM_WEAPON || item->GetType() == ITEM_ARMOR || item->GetType() == ITEM_BELT) { char szEventFlag[30]; snprintf(szEventFlag, sizeof(szEventFlag), "%d.Engel", item->GetID()); if (*szEventFlag) { if (quest::CQuestManager::instance().GetEventFlag(szEventFlag)) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("item_engel")); return; } } } // special code (Ken) // if (item->IsEquipped() == true) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("착용 중인 아이템은 판매할 수 없습니다.")); return; } if (true == item->isLocked()) { return; } if (IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_SELL)) return; DWORD dwPrice; if (bCount == 0 || bCount > item->GetCount()) bCount = item->GetCount(); dwPrice = item->GetShopBuyPrice(); if (IS_SET(item->GetFlag(), ITEM_FLAG_COUNT_PER_1GOLD)) { if (dwPrice == 0) dwPrice = bCount; else dwPrice = bCount / dwPrice; } else dwPrice *= bCount; dwPrice /= 5; //세금 계산 DWORD dwTax = 0; int iVal = 0; if (LC_IsYMIR() || LC_IsKorea()) { dwTax = dwPrice * iVal / 100; dwPrice -= dwTax; } else { dwTax = dwPrice * iVal/100; dwPrice -= dwTax; } if (test_server) sys_log(0, "Sell Item price id %d %s itemid %d", ch->GetPlayerID(), ch->GetName(), item->GetID()); const int64_t nTotalMoney = static_cast<int64_t>(ch->GetGold()) + static_cast<int64_t>(dwPrice); if (GOLD_MAX <= nTotalMoney) { sys_err("[OVERFLOW_GOLD] id %u name %s gold %u", ch->GetPlayerID(), ch->GetName(), ch->GetGold()); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("20억냥이 초과하여 물품을 팔수 없습니다.")); return; } // 20050802.myevan.상점 판매 로그에 아이템 ID 추가 sys_log(0, "SHOP: SELL: %s item name: %s(x%d):%u price: %u", ch->GetName(), item->GetName(), bCount, item->GetID(), dwPrice); if (iVal > 0) ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("판매금액의 %d %% 가 세금으로 나가게됩니다"), iVal); DBManager::instance().SendMoneyLog(MONEY_LOG_SHOP, item->GetVnum(), dwPrice); if (bCount == item->GetCount()) { // 한국에는 아이템을 버리고 복구해달라는 진상유저들이 많아서 // 상점 판매시 속성로그를 남긴다. if (LC_IsYMIR()) item->AttrLog(); ITEM_MANAGER::instance().RemoveItem(item, "SELL"); } else item->SetCount(item->GetCount() - bCount); //군주 시스템 : 세금 징수 CMonarch::instance().SendtoDBAddMoney(dwTax, ch->GetEmpire(), ch); ch->PointChange(POINT_GOLD, dwPrice, false); } This is your fixed function.
  13. why didn't you move if(!item) return; above ken's code as we suggested earlier? You'd move that a top of his code and then the nullpointer error won't occur anymore.
  14. Hey In char_battle.cpp search for m_pkDeadEvent = event_create(dead_event, pEventInfo, bImmediateDead ? 1 : PASSES_PER_SEC(10)); This is the timers when common bodies will vanish. You can change this 10 to another value so they'll will vanish sooner or later
  15. please post your new CShopManager::Sell() function. Additionally we need the functions of input_main.cpp at line 1094 and 3171 and input.cpp at line 102
  16. Guys it's a p2p command. He didn't set up a firewall and that's the point behind that. Set up a firewall and block those p2p ports (and db cache port) and you'll be safe from this attack adminpage_ip: 127.0.0.1 This should also work for you. Note: The attack can be from p2p ports and from normal ports. Against normal ports, you can use adminpage_ip to bind your API to localhost, so it'll only accept connections from localhost! Against p2p ports it's more difficult. You need to shut down access to them via firewall. That's gonna fix your problem and the attack you're getting there is through the p2p ports. So you may look at that
  17. Edit: Yeah, it's the API tool. Make sure your firewall blocks every connection incoming to your p2p ports except for localhost! If you need help, then please send me your firewall rules via pm and I can help you with that. Example for pf: block in on $if FROM any to 127.0.0.1 port $P2P_PORT I guess that should do it. It's better to block everything by default and let certain defined ports pass through so you won't get in trouble with that anymore. But be careful with that since you'd block ssh access when working with firewalls!
  18. EEC development continued! :)

  19. Say thanks to http://metin2dev.org/board/index.php?/profile/460-aemon/ for helping me out! I'll have to reconfigure my project but it has a chance to be alive!
  20. ​It's a night of sleeping. ​Sorry, missed a 0. It's 100 hours. If I always upload at max speed
  21. I'm using vmWare and the system currently occupies about 10gb disk space out of 40gb maximum. So I'll only have to upload 10gb but unfortunetately my connection is so bad that I even can't seem to upload them. I only upload with 100kb/s, which equals to 10 hours upload time :/ Edit: It's 100 hours, not 10. Sorry for the missing 0 :/
  22. Do you deal more damage when using the skill? For example, when you hit a stray dog, do you deal the enhanced damage? It's important to know if the server acknowledges you using the skill properly
  23. crc32 is very insecure for protections. Look at those sites, there you have your solution. You can manipulate bytes in order to achieve the crc32 checksum you want. http://stackoverflow.com/questions/1514040/reversing-crc32 http://www.nayuki.io/page/forcing-a-files-crc-to-any-value Here you have it. There's even an example in the second link
  24. Of course I want. But it's too much work done there. I'd upload the source files if you need them. They compile fine on clang systems but you'll have to install some ports to make it work, nothing further than that ^^
  25. ​Good luck making it to work and ty for offering to help us ​Sorry that it didn't work out at all. I've managed to set up a machine and compile it but it's way too big to upload :/
×
×
  • 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.