// *************************************************************************** // Used also in game_context_menu void outpostTestUserCanBan(CCDBNodeLeaf *dbBanRight, bool &okForBanPlayer, bool &okForBanGuild) { okForBanPlayer= false; okForBanGuild= false; /** A player can ban a player in a PVP outpost if: * - The player has right to ban AND his guild attack/owns the outpost the player attacks (all this is in RIGHT_BANNISH) * - The player and the target are in the same war of the outpost, and in same alliance. * - The player and the target are not in same guild */ if(dbBanRight && dbBanRight->getValueBool() && UserEntity) { CEntityCL *selection = EntitiesMngr.entity(UserEntity->selection()); if(selection && selection->isPlayer()) { // in same outpost War and Side if( selection->getOutpostId() == UserEntity->getOutpostId() && selection->getOutpostSide() == UserEntity->getOutpostSide() ) { // not in same guild if( selection->getGuildNameID() != UserEntity->getGuildNameID() ) { okForBanPlayer= true; okForBanGuild= selection->getGuildNameID()!=0; } } } } }
void addWebIGParams (string &url, bool trustedDomain) { if(!UserEntity || !NetMngr.getLoginCookie().isValid()) return; uint32 cid = NetMngr.getLoginCookie().getUserId() * 16 + PlayerSelectedSlot; url += ((url.find('?') != string::npos) ? "&" : "?") + string("shardid=") + toString(CharacterHomeSessionId) + string("&name=") + UserEntity->getLoginName().toUtf8() + string("&lang=") + CI18N::getCurrentLanguageCode() + string("&datasetid=") + toString(UserEntity->dataSetId()) + string("&ig=1"); if (trustedDomain) { url += string("&cid=") + toString(cid) + string("&authkey=") + getWebAuthKey(); if (url.find('$') != string::npos) { strFindReplace(url, "$gender$", GSGENDER::toString(UserEntity->getGender())); strFindReplace(url, "$displayName$", UserEntity->getDisplayName().toString()); strFindReplace(url, "$posx$", toString(UserEntity->pos().x)); strFindReplace(url, "$posy$", toString(UserEntity->pos().y)); strFindReplace(url, "$posz$", toString(UserEntity->pos().z)); strFindReplace(url, "$post$", toString(atan2(UserEntity->front().y, UserEntity->front().x))); // Target fields const char *dbPath = "UI:VARIABLES:TARGET:SLOT"; CInterfaceManager *im = CInterfaceManager::getInstance(); CCDBNodeLeaf *node = im->getDbProp(dbPath, false); if (node && (uint8)node->getValue32() != (uint8) CLFECOMMON::INVALID_SLOT) { CEntityCL *target = EntitiesMngr.entity((uint) node->getValue32()); if (target) { strFindReplace(url, "$tdatasetid$", toString(target->dataSetId())); strFindReplace(url, "$tdisplayName$", target->getDisplayName().toString()); strFindReplace(url, "$tposx$", toString(target->pos().x)); strFindReplace(url, "$tposy$", toString(target->pos().y)); strFindReplace(url, "$tposz$", toString(target->pos().z)); strFindReplace(url, "$tpost$", toString(atan2(target->front().y, target->front().x))); strFindReplace(url, "$tsheet$", target->sheetId().toString()); string type; if (target->isFauna()) type = "fauna"; else if (target->isNPC()) type = "npc"; else if (target->isPlayer()) type = "player"; else if (target->isUser()) type = "user"; strFindReplace(url, "$ttype$", target->sheetId().toString()); } else { strFindReplace(url, "$tdatasetid$", ""); strFindReplace(url, "$tdisplayName$", ""); strFindReplace(url, "$tposx$", ""); strFindReplace(url, "$tposy$", ""); strFindReplace(url, "$tposz$", ""); strFindReplace(url, "$tpost$", ""); strFindReplace(url, "$tsheet$", ""); strFindReplace(url, "$ttype$", ""); } } } } }