nsresult GenerateRandomPathName(nsCString& aOutSalt, uint32_t aLength) { nsresult rv = GenerateRandomName(aOutSalt, aLength); if (NS_FAILED(rv)) return rv; // Base64 characters are alphanumeric (a-zA-Z0-9) and '+' and '/', so we need // to replace illegal characters -- notably '/' aOutSalt.ReplaceChar(FILE_PATH_SEPARATOR FILE_ILLEGAL_CHARACTERS, '_'); return NS_OK; }
//------------------------------------------------------------------- // TempFileName::TempFileName(path) //------------------------------------------------------------------- TempFileName::TempFileName(const String &strPath) { set(strPath, GenerateRandomName()); }
void CGuild::CreateGuild(IGamePlay *pGame) { pGame->SetStopTime(75000); RunToVisitorRoom(pGame); if (pGame->IsTimerOut()) { pGame->RefreshGameServer(); return; } bool startHold = false; while (pGame->GetCoinage() < 1000)//10 silver { pGame->TradeAcceptGold(1000); WoWGUID holder = pGame->FindPlayer(m_goldHolder, _T("")); if (!startHold) { startHold = true; pGame->StartBot(m_goldHolder, _T("")); } while (holder.IsEmpty()) { Sleep(500); holder = pGame->FindPlayer(m_goldHolder, _T("")); if (pGame->IsTimerOut()) { pGame->RefreshGameServer(); return; } } WoWPoint pos(-8889.239258, 605.871826, 95.257996); if (!pGame->WaitUnitToPosition(holder, pos, 120000, 5.f)) { pGame->Log(2, _T("gold holder is not ready")); return; } pGame->SendInternalMessage(holder, _T("GuildCreateMoney"), NULL); //if (pGame->Trade()) Sleep(500); } uint8 bag, slot; if (pGame->GetInventoryItem(_T("Guild Charter"), bag, slot).IsEmpty()) { list<LPCTSTR> msgs; msgs.push_back(_T("How do I form a guild?")); if (!pGame->GossipNpc(0x00040000/*UNIT_NPC_FLAG_PETITIONER*/, msgs, false)) { pGame->Log(2, _T("gossip to npc failed")); return; } CHAR guildName[64] = { 0 }; int len = GenerateRandomName(guildName); if (len == 0) { pGame->Log(2, _T("Guild creation:generating random name failed")); return; } pGame->BuyPetition(guildName); } WoWGUID signatures[4]; int count = 0; while ((count = pGame->GetPetitionSignatures(signatures, 4)) < 4) { MemberInfo players[5]; int c = pGame->GetGuildRequestList(players, 5); int i = 0; for (; i < c; i++) { int j = 0; for (; j < count; j++) { if (players[i].guid == signatures[j]) break; } if (j == count) pGame->OfferPetition(players[i].guid); } Sleep(100); } if (pGame->TurnInPetition()) { pGame->SetGuildRankPermission(4, "Initiate", 0x080043, 0x43, 100000);//max pGame->SetGuildRankPermission(3, "Member", 0x080043, 0x43, 100000);//max } pGame->GuildCreateFinish(); }