What's new

Skrypty & Kody [C++] - doSendAnimatedText

Status
Not open for further replies.

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Szybko i na temat. Jak zmieni? maksymaln? ilo?? wy?wietlanych znak?w t? funkcj??
PHP:
int32_t LuaScriptInterface::luaDoSendAnimatedText(lua_State* L)
{
	//doSendAnimatedText(pos, text, color[, player])
	ScriptEnviroment* env = getEnv();
	SpectatorVec list;
	if(lua_gettop(L) > 3)
	{
		if(Creature* creature = env->getCreatureByUID(popNumber(L)))
			list.push_back(creature);
	}

	uint32_t color = popNumber(L);
	std::string text = popString(L);

	PositionEx pos;
	popPosition(L, pos);
	if(pos.x == 0xFFFF)
		pos = env->getRealPos();

	if(!list.empty())
		g_game.addAnimatedText(list, pos, color, text);
	else
		g_game.addAnimatedText(pos, color, text);

	lua_pushboolean(L, true);
	return 1;
}
 

Tibionauta

Advanced User
Joined
May 8, 2008
Messages
388
Reaction score
43
Odp: [C++] - doSendAnimatedText

Limit musi by? zapisany w tej funkcji:
Code:
addAnimatedText(pos, color, text);
 

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Odp: [C++] - doSendAnimatedText

W protocolgame.cpp znalaz?em co? takiego:
PHP:
void ProtocolGame::AddAnimatedText(NetworkMessage_ptr msg, const Position& pos,
	uint8_t color, const std::string& text)
{
	msg->AddByte(0x84);
	msg->AddPosition(pos);
	msg->AddByte(color);
	msg->AddString(text);
}
Powiedz mi gdzie i w jaki spos?b mo?na zwi?kszy? limit wy?wietlanych znak?w, poniewa? aktualnie jest ich 9.
 

Xart Irok

Senior User
Joined
Sep 7, 2008
Messages
2,925
Reaction score
419
Age
32
Odp: [C++] - doSendAnimatedText

Z tego co s?ysza?em i czyta?em to nie da si? zwi?kszy? jej liczby chocia? jest na otlandzie taki temat: , gdzie Mock prezentuje sw?j skrypty w kt?rym u?ywa do?? d?ugiego napisu, ale bardziej nie analizowa?em tego skryptu mo?e ci si? przyda.
 

Invicten

User
Joined
Jul 4, 2010
Messages
21
Reaction score
17
Odp: [C++] - doSendAnimatedText

Nie da si? wy?wietli? wi?cej ni? 9, bo nie jest to zale?ne od silnika, tylko klienta. Nie masz ?r?de? ...blabalbla... nie da si?.

Jedyna mo?liwo?? to tak jak mock zrobi? czyli rozdzielasz stringa i wy?wietlasz w ro?nych pozycjach.
 

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Odp: [C++] - doSendAnimatedText

Nie da si??
PHP:
function animatedTextBig(pos,text,color)
  local pos2 = {x=pos.x,y=pos.y,z=pos.z}
  local letters = 9
  local c = math.floor(#text/letters)
  local ac = 0
  for i=1,c do
     ac = i
     doSendAnimatedText(pos2,string.sub(text,letters*(i-1),letters*i-1), color) 
     pos2.x = pos2.x+1
  end
  doSendAnimatedText(pos2,string.sub(text,letters*(ac),#text), color)
  return ac
end
Mock napisa? t? funkcj? i dzia?a, nawet gdy wpiszesz wi?cej jak 9 znak?w.
 
Status
Not open for further replies.
Top