FANDOM

A FANDOM user
  Loading editor
  • I saw that thing you were working on in your sandbox. Mind looking at my changes? See Sandbox

      Loading editor
    • Sorry for taking so long to reply. My Internet falls back into 2G mode and the packets drops like there's a fissure between the lines, so I couldn't give a proper reply until now.

      Hiding the borders is one of the CSS tricks that I almost never used until now. I would accept almost all the modifications, but the Abilities caption clashes with the rest of the CharacterStat entries, so either we revert it back to table header or we change every other table header into captions, for the latter we'll need some margins.

        Loading editor
    • I guess we can change the caption back to a table header to show that there's continuity between the character info and the abilities. I never liked how the character card looked like a huge, rigged grid though.

        Loading editor
    • A FANDOM user
        Loading editor
  • Hello. Do you know the original file name for the base and the facial expression of the flower knight at the home page?

    Some character must have some facial expression but they're just not unavailable by normal mean.(Some exception for speical voice)

      Loading editor
    • hmm, it seems that I can get home_(id)_02~06 and initially I assume the first one is 01 but in fact it's nothing

      But still the id for blinking is unknown

      My first try was on Water Lily (June Bride) that has two idle post which id is totally unknown and made me think the available file name in this wiki no longer work. It's just this character has special naming pattern maybe.

        Loading editor
    • Sorry for the stupid question I posted here. I put 01 to few hundred into generator and find out for the half closed and closed are _50 & _90 respectively.

        Loading editor
    • A FANDOM user
        Loading editor
  • yo wass up!

    Is it possible to make a render of the FK Wikia logo since now they change the skin

    oh yeah, luv the work youse guys do

    would be lost on DMM without da Wikia

      Loading editor
    • View all 16 replies
    • Although the header graphic has a limit of 471px x 115px as you can see in my screenshot, Wikia doesn't seem to care about the dimensions of the image uploaded. The source image I used was actually 649 x 812.

        Loading editor
    • I suppose my workaround will not work in this case since it doesn't really cover the whole header.

      Edit: As for the font... There's one called Cloister Open Face which is similar to the one on the logo although it looks quite different at smaller size. Still, I made a sample with it.

        Loading editor
    • A FANDOM user
        Loading editor
  • Hey sorry for the question but it says you've done it before so I thought i'd ask

    Quote
    How do you put down audio so it looks like the above and not the below? I can put quite a few library/introduction quotes down but if I do it only comes out like the bottom which doesn't look that appealing 
      Loading editor
    • You'll need to make an audio template for that. After you created the template, you can then write this code at corresponding part pf the code where the play button was supposed to be. In this Wikia I generally place it in the Knightquotes variable, the example can be seen in source Wikitext wherever there the audio clips are present.

      {{Audio|file=filename.ogg}}

      Here's the source code for the audio template

        Loading editor
    • Thanks (=゚ω゚)ノ

        Loading editor
    • A FANDOM user
        Loading editor
  • Recently, someone in my group has posted a video showing that he had already had Lotus Lake Petal unlocked in his library, with no explaination, using a clone facebook account. How can this actually happen ? Here's a screenshot : http://imgur.com/a/ff5QW

      Loading editor
    • No idea, I could presume that he might've hacked the Flash process's RAM or spoof the forged the getBook API call (in the same way Kancolle Viewer enabled the "unlock all library" hack).

      In theory I might know how to do the latter to unlock every girl in the library but considering that the APIs had been encoded in a fairly recent patch it's quite an elaborate feat.

        Loading editor
    • I think it's possible to view them in the library?

      I remember I was able to view knights that I didn't have at some time a while ago.

        Loading editor
    • A FANDOM user
        Loading editor
  • I was wondering if I should/could add a general strategy guide to the knights mostly based off the japanese translation to help I guess evaluate some knights/how to use?


    EDIT: I can do some work as a translator as well, though my english isn't the best so I'll mostly just rough translate things to english when they are released

      Loading editor
    • View all 8 replies
    • I had the template-for-one-ability idea too. I actually don't think it would take too much processing power since there's even though there might be a mid-sized list of ability variants, it's not like the template would be called too often on a page. I've always wondered if templates were pre-processed anyways.

      But yeah. There's just no nice solution for this it seems. The Wiki is too restrictive in this aspect.

        Loading editor
    • SilentSilverSlash wrote:
      EDIT: and HBC is only based on nutaku's version I believe? so I suppose they would just use their translations (which are pretty often incorrect) and I can understand the reason for a higher standard.
      Well, yeah. I would like to say it's okay to reference them... except that their translation somewhat turns me off. I'd say anyone with a decent proficiency in English grammar wouldn't need to reference them.
      CodeHK wrote:
      I had the template-for-one-ability idea too. I actually don't think it would take too much processing power since there's even though there might be a mid-sized list of ability variants, it's not like the template would be called too often on a page. I've always wondered if templates were pre-processed anyways.
      I think it'll be called up to 4 times per page.
      CodeHK wrote:
      But yeah. There's just no nice solution for this it seems. The Wikia is too restrictive in this aspect.

      With what I know now, I could've developed a flowerknight-db website to list all the Flower Knight's data, complete with stats and skills right after the maintenance. Except that I still lack the expertise in database-driven website, not to mention that I'm currently busy atm.

      Flower Knight ID lookup Code
      #!/usr/bin/python3
      import os, sys, re, random
      
      findID = 141001
      ENName = "Queen of the Night"
      getMaster = "historical/getMaster_16012017.txt"
      DestFile = 'result.txt'
      CmdPrint = True
      
      attribList = {
      	'1':'Slash',
      	'2':'Blunt',
      	'3':'Pierce',
      	'4':'Magic'
      	}
      
      nationList = {
      	'1':'Winter Rose',
      	'2':'Banana Ocean',
      	'3':'Blossom Hill',
      	'4':'Bergamot Valley',
      	'5':'Lily Wood'
      	}
      
      giftList = {
      	'1':'Gem',
      	'2':'Teddy Bear',
      	'3':'Cake',
      	'4':'Book'
      	}
      
      def extract(main,end,rawdata):
      	return rawdata.partition(main+'\n')[2].partition('\n\n'+end)[0].split("\n")
      
      def main():
      	
      	#Open the master database
      	input = open(getMaster,'r',encoding='UTF8')
      	APIdata = input.read()
      	
      	#Extract relevant data from master database
      	masterCharacter = extract('masterCharacter','masterItem',APIdata)
      	masterActiveSkill = extract('masterCharacterSkill','masterCharacterLeaderSkill',APIdata)
      	masterPassiveSkill = extract('masterCharacterLeaderSkill','masterGift',APIdata)
      	masterPlantFamily = extract('masterCharacterCategory','masterBoost',APIdata)
      	masterFlowerBook = extract('masterCharacterBook','masterTutorial',APIdata)
      	
      	input.close()
      	
      	#Lookup requsted character data
      	for line in masterCharacter:
      		if line.startswith(str(findID)):
      			dataKnightBase = line.split(",")
      		if line.startswith(str(findID+1)):
      			dataKnightEvolved = line.split(",")
      		if line.startswith(str(findID+300000)):
      			dataKnightBloomed = line.split(",")
      			Bloom = True
      	
      	#apiID   = dataKnightBase[0]  dataKnightBase[1]
      	familiID  = dataKnightBase[2]
      	land      = dataKnightBase[3]
      	RegID     = dataKnightBase[4]
      	JPName    = dataKnightBase[5] #dataKnightBase[6]
      	Rarity    = dataKnightBase[7]
      	Type      = dataKnightBase[8]
      	favItem   = dataKnightBase[9]
      	Ability   = [dataKnightEvolved[10],dataKnightEvolved[11]]
      	Skill     = dataKnightBase[12]
      	
      	#arrayOrder [HP,ATK,DEF]
      	lv1Stat        = [dataKnightBase[15],dataKnightBase[17],dataKnightBase[19],dataKnightEvolved[15],dataKnightEvolved[17],dataKnightEvolved[19]]
      	lvMaxStat      = [dataKnightBase[16],dataKnightBase[18],dataKnightBase[20],dataKnightEvolved[16],dataKnightEvolved[18],dataKnightEvolved[20]]
      	BaseAffection  = [dataKnightBase[31],dataKnightBase[32],dataKnightBase[33]]
      	EvoAffection   = [dataKnightEvolved[31],dataKnightEvolved[32],dataKnightEvolved[33],dataKnightEvolved[38],dataKnightEvolved[39],dataKnightEvolved[40]]
      	Speed          =  dataKnightBase[22]
      	
      	#Define MaxLevel
      	MaxLevel = 50
      	if(int(Rarity) > 4): MaxLevel += 10
      	
      	#Check blooming availability and stats
      	try: 
      		dataKnightBloomed
      	except NameError:
      		Bloom = False
      	else:
      		lv1BloomStat   = [dataKnightBloomed[15],dataKnightBloomed[17],dataKnightBloomed[19]]
      		lvMaxBloomStat = [dataKnightBloomed[16],dataKnightBloomed[18],dataKnightBloomed[20]]
      		BloomAffection = [dataKnightBloomed[38],dataKnightBloomed[39],dataKnightBloomed[40]]
      		BloomAbility   = [dataKnightBloomed[10],dataKnightBloomed[11]]
      		
      	#Lookup character skills
      	for line in masterActiveSkill:
      		if line.startswith(str(Skill)):
      			SkillData = line.split(",")
      		
      	for line in masterPassiveSkill:
      		if line.startswith(str(Ability[0])):
      			Ability1Data = line.split(",")
      		if line.startswith(str(Ability[1])):
      			Ability2Data = line.split(",")
      		if (Bloom == True):
      			if line.startswith(str(BloomAbility[0])):
      				Ability3Data = line.split(",")
      			if line.startswith(str(BloomAbility[1])):
      				Ability4Data = line.split(",")
      				
      	#Lookup family and language of flowers
      	for line in masterPlantFamily:
      		if line.startswith(str(familiID)):
      			FlowerFamily = line.split(",")
      			break
      	
      	for line in masterFlowerBook:
      		if line.startswith(str(RegID)):
      			FlowerMeaning = line.split(",")
      			break
      
      	#Assembles the template data
      	dataKnight  = "{{CharacterStat\n|fkgID = " + str(findID)
      	dataKnight += "\n|type = " + attribList[Type]
      	dataKnight += "\n|name = " + ENName
      	dataKnight += "\n|JP = " + JPName
      	dataKnight += "\n|BasicCharImg = [[File:" + ENName.replace(' ','') + "_00.png|thumb|315x315px|center]]"
      	dataKnight += "\n|EvoCharImg = [[File:" + ENName.replace(' ','') + "_01.png|thumb|315x315px|center]]"
      	if (Bloom == True):
      		dataKnight += "\n|BloomCharImg = [[File:" + ENName.replace(' ','') + "_02.png|thumb|315x315px|center]]"
      	else:
      		dataKnight += "\n|BloomCharImg = <!--[[File:" + ENName.replace(' ','') + "_02.png|thumb|315x315px|center]]-->"
      	dataKnight += "\n|rarity = " + RarityStar(Rarity)
      	dataKnight += "\n|IconName = " + ENName.replace(' ','')
      	dataKnight += "\n|likes = " + giftList[favItem]
      	dataKnight += "\n|breed = " + FlowerFamily[1]
      	dataKnight += "\n|nation = " + nationList[land]
      	dataKnight += "\n|BasiclvlMax = " + str(MaxLevel)
      	dataKnight += "\n|BasicHPheartBonus = "  + affectionCalc(BaseAffection[0],0)
      	dataKnight += "\n|BasicHPlv1 = " + lv1Stat[0]
      	dataKnight += "\n|BasicHPlv60 = " + lvMaxStat[0]
      	dataKnight += "\n|BasicATKheartBonus = " + affectionCalc(BaseAffection[1],0)
      	dataKnight += "\n|BasicATKlv1 = " + lv1Stat[1]
      	dataKnight += "\n|BasicATKlv60 = " + lvMaxStat[1]
      	dataKnight += "\n|BasicDEFheartBonus = " + affectionCalc(BaseAffection[2],0)
      	dataKnight += "\n|BasicDEFlv1 = " + lv1Stat[2]
      	dataKnight += "\n|BasicDEFlv60 = " + lvMaxStat[2]
      	dataKnight += "\n|MVSpeed = " + str(Speed)
      	dataKnight += "\n|EvolvlMax = " + str(MaxLevel+10)
      	dataKnight += "\n|EvoHPbloomBonus = " + affectionCalc(EvoAffection[0],EvoAffection[3])
      	dataKnight += "\n|EvoHPlv1 = " + lv1Stat[3]
      	dataKnight += "\n|EvoHPlv60 = " + lvMaxStat[3]
      	dataKnight += "\n|EvoATKbloomBonus = " + affectionCalc(EvoAffection[1],EvoAffection[4])
      	dataKnight += "\n|EvoATKlv1 = " + lv1Stat[4]
      	dataKnight += "\n|EvoATKlv60 = " + lvMaxStat[4]
      	dataKnight += "\n|EvoDEFbloomBonus = " + affectionCalc(EvoAffection[2],EvoAffection[5])
      	dataKnight += "\n|EvoDEFlv1 = " + lv1Stat[5]
      	dataKnight += "\n|EvoDEFlv60 = " + lvMaxStat[5]
      	if (Bloom == True):
      		dataKnight += "\n|BloomlvlMax = " + str(MaxLevel+20)
      		dataKnight += "\n|BloomHPheartBonus = " + affectionCalc(EvoAffection[0],BloomAffection[0])
      		dataKnight += "\n|BloomHPlv1 = " + lv1BloomStat[0]
      		dataKnight += "\n|BloomHPlv60 = " + lvMaxBloomStat[0]
      		dataKnight += "\n|BloomATKheartBonus = " + affectionCalc(EvoAffection[1],BloomAffection[1])
      		dataKnight += "\n|BloomATKlv1 = " + lv1BloomStat[1]
      		dataKnight += "\n|BloomATKlv60 = " + lvMaxBloomStat[1]
      		dataKnight += "\n|BloomDEFheartBonus = " + affectionCalc(EvoAffection[2],BloomAffection[2])
      		dataKnight += "\n|BloomDEFlv1 = " + lv1BloomStat[2]
      		dataKnight += "\n|BloomDEFlv60 = " + lvMaxBloomStat[2]
      	else:
      		dataKnight += "\n|BloomHPheartBonus = \n|BloomHPlv1 = \n|BloomHPlv60 = \n|BloomATKheartBonus = \n|BloomATKlv1 = \n|BloomATKlv60 = \n|BloomDEFheartBonus = \n|BloomDEFlv1 = \n|BloomDEFlv60 = "
      	dataKnight += "\n|SkillName = "
      	dataKnight += "\n|SkillNameJP = " + SkillData[1]
      	dataKnight += "\n|SkillLv1Trigger = "
      	dataKnight += "\n|SkillLv5Trigger = "
      	dataKnight += "\n|SkillDescription = " + SkillData[6]
      	dataKnight += "\n|Passive1Description = " + Ability1Data[10]
      	dataKnight += "\n|Passive2Description = " + Ability2Data[10]
      	if (Bloom == True):
      		dataKnight += "\n|Passive3Description = " + Ability3Data[10]
      		dataKnight += "\n|Passive4Description = " + Ability4Data[10]
      	else:
      		dataKnight += "\n|Passive3Description = \n|Passive4Description = "
      	dataKnight += "\n|ScientificName = "
      	dataKnight += "\n|CommonName = "
      	dataKnight += "\n|languageoftheflowers = " + str(FlowerMeaning[5])
      	dataKnight += "\n|RomajiName = "
      	dataKnight += "\n|NutakuName = "
      	dataKnight += "\n}}"
      	
      	if (CmdPrint == True): print(dataKnight)
      	RareText()
      	PrintToText(dataKnight)
      	
      
      def RarityStar(n):
      	
      	n = int(n)
      	star = ''
      	
      	for i in range(n):
      		star += "★"
      	return star
      	
      def affectionCalc(Heart,Blossom):
      
      	Heart     = int(Heart)
      	Blossom   = int(Blossom)
      	Affection = float(Heart+Blossom)*1.2
      
      	return str(int(Affection))
      
      def RareText():
      	RNG1 = random.randrange(0,9)
      	RNG2 = random.randrange(0,9)
      	
      	if (RNG1 == RNG2): print("\n\n" + "団長様、たまには私のことも構ってくださいね?")
      
      def PrintToText(Input):
      	#Load destination file into ExistingData
      	try: 
      		inputBuffer = open(DestFile,'r',encoding='UTF8')
      	except (NameError,FileNotFoundError):
      		if (CmdPrint == True): print('')
      		print("Destination file " + DestFile + " is not found")
      	else:
      		ExistingData = inputBuffer.read()
      		inputBuffer.close()
      	
      	#Prepend ExistingData into dataKnight, plus double empty line space
      	#Write to destination file
      	
      	try: 
      		outputBuffer = open(DestFile,'w',encoding='UTF8')
      	except (NameError):
      		print("Destination file " + DestFile + " is not defined")
      	except (IOError):
      		print("Cannot write to " + DestFile)
      	else:
      		try:
      			ExistingData
      		except (NameError):
      			outputBuffer.write(Input)
      			print("created new file " + DestFile)
      		else:
      			if (ExistingData != ''): ExistingData += '\n\n'
      			outputBuffer.write(ExistingData + Input)
      		finally:
      			outputBuffer.close()
      
      if __name__ == '__main__':
      	main()
      
        Loading editor
    • A FANDOM user
        Loading editor
  • Hey

    I don't play the game, but I really like the art and the work you've put into this Wiki.

    I was wondering if you could send me all the game images you've uploaded on the Wiki?

      Loading editor
    • View all 6 replies
    • That's fine by me, but we have over 260 character icons in the batch. You'll need to be adept with spreadsheet programs like Excel if you don't want to spend days manually keying in the whole thing.

        Loading editor
    • Done.

        Loading editor
    • A FANDOM user
        Loading editor
  • how can we use manyus?

      Loading editor
  • Hi Ar.

    I was wondering if we're able to put the quote list inside collapsible tabs since they are quite long. I'm not sure if you have something in mind for those so I better ask first.

      Loading editor
    • View all 5 replies
    • I actually think that that's a really great template since it's compact and is easier to look for seasonal lines. Nice work there Ar.

      By the way, it maybe just me but it seems that I can't enter to the batch-hash page. Whenever I try to enter I get the following line:

      No definition found for Table headers
        Loading editor
    • If you're referring to this page I have no problem accessing it from my end. I've updated it recently but I don't think it could've caused that kind of error. Maybe you should force-refresh the webpage or something, or download the hash generator from here.

        Loading editor
    • A FANDOM user
        Loading editor
  • Hi Ar.

    I've been messing around with bins from both DMM and Nutaku since both of them share the same hash and I found some interesting stuff (although one of them is quite useless) while looking at the script files.

    Close up sprites nomenclature: "bustup_ID". For expressions, it uses the same rule as home sprites.

    H-Scene audio clips: "fkg_ID_hscene0xx". I tested BB's scene and she has around 33 audio clips. It's useless but that's that.

    Chara quests audio clips: "fkg_ID_quest_x_0xx". The first x is for the mission number and the other two for the number of clips of that mission. Tsuyukusa's 3rd mission has around 13 clips.

    I know that the last two are not too useful for the wiki but we might as well know how those clips work. Also sorry for not putting codes on boxes. I... sadly don't know how to do that.

      Loading editor
    • View all 5 replies
    • CodeHK wrote:
      Oh, I'm sorry. Maybe they were <pre> tags. Both tags gets used for basically the same purpose, so eh. Quote me and maybe you'll see in source viewer mode.
      print('Some odd numbers: ' + ', '.join([str(i) for i in range (10) if i & 1]))
      Got it. Thank you code
        Loading editor
    • Sorry for being late to the party. It was early morning when CodeHK was in the scene.

      Speaking of nomenclature, I'm figuring out how which nomenclature I should use to differentiate the character sprites with flower background with those without it. Personally I'd like to use the sprites with flower BG for the character info because they don't really need watermarking which could potentially ended up with images being edited arbitrarily all over the Wikia.

      As for the audio clips, it would've been a bit more useful if we could figure out the hash for the storyline texts...

        Loading editor
    • A FANDOM user
        Loading editor
Give Kudos to this message
You've given this message Kudos!
See who gave Kudos to this message

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.