Пример #1
0
void ZoneDatabase::RefreshPetitionsFromDB()
{
	Petition* newpet;
	std::string query = "SELECT petid, charname, accountname, lastgm, petitiontext, "
                        "zone, urgency, charclass, charrace, charlevel, checkouts, "
                        "unavailables, ischeckedout, senttime, gmtext "
                        "FROM petitions ORDER BY petid";
    auto results = QueryDatabase(query);
	if (!results.Success()) {
		LogFile->write(EQEMuLog::Error, "Error in RefreshPetitionsFromDB query '%s': %s", query.c_str(), results.ErrorMessage().c_str());
		return;
	}

    for (auto row = results.begin(); row != results.end(); ++row) {
        newpet = new Petition(atoi(row[0]));
        newpet->SetCName(row[1]);
        newpet->SetAName(row[2]);
        newpet->SetLastGM(row[3]);
        newpet->SetPetitionText(row[4]);
        newpet->SetZone(atoi(row[5]));
        newpet->SetUrgency(atoi(row[6]));
        newpet->SetClass(atoi(row[7]));
        newpet->SetRace(atoi(row[8]));
        newpet->SetLevel(atoi(row[9]));
        newpet->SetCheckouts(atoi(row[10]));
        newpet->SetUnavails(atoi(row[11]));
        newpet->SetSentTime2(atol(row[13]));
        newpet->SetGMText(row[14]);

        if (atoi(row[12]) == 1)
            newpet->SetCheckedOut(true);
        else
            newpet->SetCheckedOut(false);
        petition_list.AddPetition(newpet);
    }

}
Пример #2
0
void GuildApproval::GuildApproved()
{
	char petitext[PBUFFER] = "A new guild was founded! Guildname: ";
	char gmembers[MBUFFER] = " ";

	if(!owner)
		return;
	database.GetVariable("GuildCreation", founders, 3);
	uint8 tmp = atoi(founders);
	uint32 tmpeq = guild_mgr.CreateGuild(guild, owner->CharacterID());
	guild_mgr.SetGuild(owner->CharacterID(),tmpeq,2);
	owner->SendAppearancePacket(AT_GuildID,true,false);
	for(int i=0;i<tmp;i++)
	{
		if(members[i])
			{
			owner->Message(CC_Default, "%s",members[i]->GetName());
			owner->Message(CC_Default, "%i",members[i]->CharacterID());
			guild_mgr.SetGuild(members[i]->CharacterID(),tmpeq,0);
			size_t len = MBUFFER - strlen(gmembers)+1;
			strncat(gmembers," ",len);
			strncat(gmembers,members[i]->GetName(),len);
			}
	}
	size_t len = PBUFFER - strlen(petitext)+1;
	strncat(petitext,guild,len);
	strncat(petitext," Leader: ",len);
	strncat(petitext,owner->CastToClient()->GetName(),len);
	strncat(petitext," Members:",len);
	strncat(petitext,gmembers,len);
	Petition* pet = new Petition(owner->CastToClient()->CharacterID());
	pet->SetAName(owner->CastToClient()->AccountName());
	pet->SetClass(owner->CastToClient()->GetClass());
	pet->SetLevel(owner->CastToClient()->GetLevel());
	pet->SetCName(owner->CastToClient()->GetName());
	pet->SetRace(owner->CastToClient()->GetRace());
	pet->SetLastGM("");
	pet->SetCName(owner->CastToClient()->GetName()); //aza77 is this really 2 times needed ??
	pet->SetPetitionText(petitext);
	pet->SetZone(zone->GetZoneID());
	pet->SetUrgency(0);
	petition_list.AddPetition(pet);
	database.InsertPetitionToDB(pet);
	petition_list.UpdateGMQueue();
	petition_list.UpdateZoneListQueue();
	worldserver.SendEmoteMessage(0, 0, 80, 15, "%s has made a petition. #%i", owner->CastToClient()->GetName(), pet->GetID());
	ServerPacket* pack = new ServerPacket;
	pack->opcode = ServerOP_RefreshGuild;
	pack->size = tmp;
	pack->pBuffer = new uchar[pack->size];
	memcpy(pack->pBuffer, &tmpeq, 4);
	worldserver.SendPacket(pack);
	safe_delete(pack);
	owner->Message(CC_Default, "Your guild was created.");
	owner = 0;
}
Пример #3
0
Petition PetitionManager::Load(const char *path, int id) {
	char buffer[256];
	Util::SafeFormat(buffer, sizeof(buffer), "%s\\%d.txt", path, id);
	Platform::FixPaths(buffer);

	FileReader lfr;
	Petition newItem;
	if (lfr.OpenText(buffer) != Err_OK) {
		g_Log.AddMessageFormat("Could not open file [%s]", buffer);
	} else {
		lfr.CommentStyle = Comment_Semi;
		int r = 0;
		while (lfr.FileOpen() == true) {
			r = lfr.ReadLine();
			lfr.SingleBreak("=");
			lfr.BlockToStringC(0, Case_Upper);
			if (r > 0) {
				if (strcmp(lfr.SecBuffer, "[ENTRY]") == 0) {
					//
					if (newItem.petitionId != 0) {
						g_Log.AddMessageFormat(
								"[WARNING] Petition file %s has more than one ENTRY",
								buffer);
						newItem.RunLoadDefaults();
						break;
					}
				}
				else if (strcmp(lfr.SecBuffer, "ID") == 0)
					newItem.petitionId = lfr.BlockToIntC(1);
				else if (strcmp(lfr.SecBuffer, "SAGE") == 0)
					newItem.sageCDefID = lfr.BlockToIntC(1);
				else if (strcmp(lfr.SecBuffer, "PETITIONER") == 0)
					newItem.petitionerCDefID = lfr.BlockToIntC(1);
				else if (strcmp(lfr.SecBuffer, "TIMESTAMP") == 0)
					newItem.timestamp = lfr.BlockToULongC(1);
				else if (strcmp(lfr.SecBuffer, "CATEGORY") == 0)
					newItem.category = lfr.BlockToIntC(1);
				else if (strcmp(lfr.SecBuffer, "DESCRIPTION") == 0) {
					string r = lfr.BlockToStringC(1, 0);
					Util::ReplaceAll(r, "\\r\\n", "\r\n");
					Util::ReplaceAll(r, "\\n", "\n");
					Util::SafeCopy(newItem.description, r.c_str(),
							sizeof(newItem.description));
				} else if (strcmp(lfr.SecBuffer, "RESOLUTION") == 0) {
					string r = lfr.BlockToStringC(1, 0);
					Util::ReplaceAll(r, "\\r\\n", "\r\n");
					Util::ReplaceAll(r, "\\n", "\n");
					Util::SafeCopy(newItem.resolution, r.c_str(),
							sizeof(newItem.resolution));
				} else {
					g_Log.AddMessageFormat(
							"[WARNING] Petition file %s has unknown pair %s",
							buffer, lfr.SecBuffer);
				}
			}
		}
	}
	if (newItem.petitionId != 0) {
		newItem.RunLoadDefaults();
	}
	return newItem;
}