get_item_Type_Value nie zwraca ITEM_MEDIUM oraz ITEM_SOUL (LIMIT: 37?)

0

witam, otóż napotkałem błąd, taki że tylko dziala doITEM_GACHA, jezeli zamienie ITEM_GACHA na ITEM_MEDIUM wtedy dziala ITEM_MEDIUM ale ITEM_GACHA już nie.. wie ktoś jak to naprawić?

poniżej kod:

int get_Item_Type_Value(string inputString)
{
	string arType[] = {"ITEM_NONE", "ITEM_WEAPON",
		"ITEM_ARMOR", "ITEM_USE", 
		"ITEM_AUTOUSE", "ITEM_MATERIAL",
		"ITEM_SPECIAL", "ITEM_TOOL", 
		"ITEM_LOTTERY", "ITEM_ELK",					//10개

		"ITEM_METIN", 
		"ITEM_CONTAINER", 
		"ITEM_FISH", 
		"ITEM_ROD", 
		"ITEM_RESOURCE", 
		"ITEM_CAMPFIRE",
		"ITEM_UNIQUE", 
		"ITEM_SKILLBOOK", 
		"ITEM_QUEST", 
		"ITEM_POLYMORPH",				//20개

		"ITEM_TREASURE_BOX", 
		"ITEM_TREASURE_KEY",
		"ITEM_SKILLFORGET", 
		"ITEM_GIFTBOX", 
		"ITEM_PICK", 
		"ITEM_HAIR", 
		"ITEM_TOTEM", 
		"ITEM_BLEND", 
		"ITEM_COSTUME",	
		"ITEM_DS",					//30개
	
		"ITEM_SPECIAL_DS", 
		"ITEM_EXTRACT",
		"ITEM_SECONDARY_COIN",						//33개

		"ITEM_RING", "ITEM_BELT",					//35개 (EItemTypes 값으로 치면 34)
		"ITEM_PET",									//36
		"ITEM_GACHA", "ITEM_MEDIUM",								//38
		"ITEM_SOUL"
	};

	
	int retInt = -1;
	//cout << "Type : " << typeStr << " -> ";
	for (int j=0;j<sizeof(arType)/sizeof(arType[0]);j++) {
		string tempString = arType[j];
		if	(inputString.find(tempString)!=string::npos && tempString.find(inputString)!=string::npos) {
			//cout << j << " ";
			retInt = j;
			break;
		}
	}
	//cout << endl;

	return retInt;

}

0

W jaki sposób nie działa?

Swoją drogą:

if  (inputString.find(tempString)!=string::npos && tempString.find(inputString)!=string::npos)

Dlaczego nie sprawdzisz czy inputString == tempString? Swoją drogą, czemu std::find nie użyjesz?

1 użytkowników online, w tym zalogowanych: 0, gości: 1