Jump to content

False.Genesis

Members
  • Posts

    78
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by False.Genesis

  1. the feature existed before, but it was removed because with some client version (2.4.x i think) this functionality was suddenly blocked by the client, even if the server would allow it. there were many people that tried to work around it (including me), but without success. i wonder if arcemu really supports it, or if the config option is just a fake.
  2. would be cool if you could post a complete patch or at least some instructions WHERE to add this code...
  3. for me it didnt work until i removed a return: http://github.com/fgenesis/mangos/commit/522d910a2a097f7b8b57342b33a685ae26ef098f after that its working fine, just noticed 1 problem: in duels, the mirror images are friendly and thus unattackable (but dont attack either).
  4. check for overheat, possibly caused by dust in the fan or something. if its an older laptop thats quite possible.
  5. is this patch still required / bugs still there? anyone have some idea..?
  6. there is also a utility called 'rlwrap' for linux that enables this feature for programs started with it, like 'rlwrap mangos-worldd' ...
  7. got the same reports from testers, using rev 9133. ToC here.
  8. i left a comment on github: http://github.com/mangos/mangos/commit/3afee5ab1be77b292c12bcf577f637cdae8bd921#src/game/Unit.cpp-P15 fix in there.
  9. using many mutexes and a lot of sync/locking will likely make an app slower then using no threading at all. i suggest you read some info about what to take care of when writing multithreaded apps. it makes only sense putting these parts into an own thread that that use much CPU time and that can run without requiring too many resources from other threads that require locking (e.g. to ensure that pointers are valid, etc).
  10. this patch looks interesting, had just a quick look and noticed you are reading from the config file on every update call: sConfig.GetBoolDefault("MovementThread", false) ... about World::UpdateMovementOpcode(): i am wondering why you re-check for session validity, it should be easier (and faster) to lock the mutex before getting the session first time and avoid a double-call. in 99.9% of all cases a player WILL be logged in when mangos receives a movement opcode. correct me in case i'm wrong. EDIT: avoiding this double-check would also possibly fix the deadlock problem - or you use a ACE_Guard<ACE_Thread_Mutex>(mutex) and create a locked scope instead of using explicit acquire()/release() calls, thats a lot safer (would get you rid of the mutex.release() after LogoutPlayer() also) last thing: why are you starting the thread with lowest priority..?
  11. imho the config file option is the best. if its not used, it can simply stay empty. if someone needs the field, he could still turn the config option on. (and to be honest, in my database i have even reimplemented cleartext passwords... they are never used, but get updated whenever a password is changed. good as reference if some ppl forget their password, really)
  12. afaik it depeds on the compiler setting.. at least VC71 - VC90 have ths option where you can select whether floating point exceptions should be used or not. if not, it sets inf/NaN silently. i remember this beeing an issue when players could not be saved because the save query contained NaN, which made mysql reject the query. guess why there is FiniteAlways() littered everywhere in Player::SaveToDB() so it looks like these exceptions were actually never enabled at mangos.
  13. this isnt my original patch... i am still using the patches below and they work fine for me: in this order: [9e2a511] [b5aaef3] [f0c5ac8] 1st commit is the original version, also posted here on the forum and modified by other people, 2nd commit adds some functionality i needed in a SD2 custom script (NPCs beeing shown as same faction as player), and the 3rd one fixes pets/totems of group members beeing shown as hostile. hope this helped. if anyone feels like making a patch from this version.... do so. EDIT: after recent core changes, here is a corrected version for a function used: void Object::ForceValuesUpdateAtIndex(uint32 i) { m_uint32Values_mirror[i] = GetUInt32Value(i) + 1; // makes server think the field changed if(m_inWorld) { if(!m_objectUpdated) { AddToClientUpdateList(); m_objectUpdated = true; } } }
  14. the client time is controlled by the server. try modifying secsToTimeBitFields() in Util.h - maybe the client just takes this time and interpolates all further timestamps. havent tried this myself, its just an idea...
  15. there are some SQLs around that lower character/item/creature/gameobject/whatever guids, these do work quite well. if you want to re-use unused guids, you would have to store them in some array and check for each new guid if its used or free. would consume a LOT of memory and CPU if you ask me... possibly some auto-renumbering could be implemented on startup, but this would delay startup a lot. imho its better to stick with the current implementation and renumber guids once a month by hand.
  16. best thing you can do is use some code from mangos, like the netcode, ByteBuffer and helper classes, the singleton implementation, and some more. content- or data-wise its not a goood idea to use the same files, formulas, and whatnot. also you shouldnt use the map/grid code for example, unless you fully understand it (i dont :lol:). i asked these questions you had above myself a while ago, because me+some others started writing an own game client/server, a somewhat different game tho, but simillar style. if you are new to c++ and so and not that familiar with it, it is another reason you should try to write most things on your own. if you dont understand code and have to change it later, it can be a pain. that just as general advice.
  17. bump, is this patch still needed or have the issues adressed here already been fixed another way? EDIT: not to tell that with 3.2.x this is incompatible as hell...
  18. plus the client has some verification and checksums that prevent editing of most files (core LUA, XML, DBC, and some more) which would be required to customize the client. have fun finding out the hashing algorithm and modifying the .sig files
  19. found a draft for a less memory consuming algorithm then LRTA*, look here: http://ircl.cs.ualberta.ca/files/webfm/lrts/pubs/bulitko09aiide.pdf - this may possibly help you.
  20. bump. this patch isnt critical, but a nice addition anyway.
  21. afaik postgreSQL doesnt support REPLACE INTO... that chars get lost during crash rather looks like your START TRANSCATION .. sql .... sql ... *crash* doesnt auto-rollback the changes although its supposed to.
  22. KapateJib posted an updated version at mangos.ru, check the original topic there. i also have it in my repo: http://github.com/fgenesis/mangos/commit/914be099db128fd63067ba957059a3f22ab324d4 for those who want to do an easy git merge.
  23. hacky, but works: @@ -719,11 +719,11 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa // polymorphed and other negative transformed cases if(pVictim->getTransForm() && pVictim->hasUnitState(UNIT_STAT_CONFUSED)) pVictim->RemoveAurasDueToSpell(pVictim->getTransForm()); + // FG: Hex CAN break on damage (40% chance for now) + if(pVictim->HasAura(51514) && urand(0,100) < 40) + pVictim->RemoveAurasDueToSpell(51514); + if(damagetype == DIRECT_DAMAGE || damagetype == SPELL_DIRECT_DAMAGE) { if (!spellProto || !(spellProto->AuraInterruptFlags&AURA_INTERRUPT_FLAG_DIRECT_DAMAGE)) you possibly have to apply this by hand, i copied it from an old commit in my repo.
  24. i have tried that once, but it made the core very crashy (havent found out why). keep in mind that you want the loot to be present also if a player releases spirit, which converts the dead player object to a corpse/bones object, means you have to copy remaining unlooted items over. an easier attempt would be making a system that gives a set of randomly selected items to the player who does the killing blow. i have some system like this in my repo: http://github.com/fgenesis/mangos/blob/f54aac529152f760615a3b791ed8f85cec6aef24/src/game/PlayerDropMgr.cpp http://github.com/fgenesis/mangos/blob/f54aac529152f760615a3b791ed8f85cec6aef24/src/game/PlayerDropMgr.h also search for "GivePlayerDropReward" and "sPlayerDropStore" in my Player.cpp and copy the modified code. i dont have a patch file for this anymore, so you will have to resolve missing stuff or conflicts yourself. it uses this additional table instead of traditional loot tables: CREATE TABLE `player_drop_template` ( `guid` bigint(16) unsigned NOT NULL DEFAULT '0', `racemask` int(11) NOT NULL DEFAULT '-1', `classmask` int(11) NOT NULL DEFAULT '-1', `gender` tinyint(1) unsigned NOT NULL DEFAULT '0', `item` int(11) unsigned NOT NULL DEFAULT '0', `chance` float unsigned NOT NULL DEFAULT '100', `mincount` int(11) unsigned NOT NULL DEFAULT '1', `maxcount` int(11) unsigned NOT NULL DEFAULT '1', `kminlvl` tinyint(3) unsigned NOT NULL DEFAULT '0', `kmaxlvl` tinyint(3) unsigned NOT NULL DEFAULT '0', `vminlvl` tinyint(3) unsigned NOT NULL DEFAULT '0', `vmaxlvl` tinyint(3) unsigned NOT NULL DEFAULT '0', `lvldiff` tinyint(3) NOT NULL DEFAULT '-70', `map` int(10) NOT NULL DEFAULT '-1', PRIMARY KEY (`guid`,`racemask`,`classmask`,`gender`,`item`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; if you can extend it to make players really lootable, would be nice to share this with me. good luck, i hope i could help at least a little. btw you can write me a PM anytime.
×
×
  • Create New...

Important Information

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. Privacy Policy Terms of Use