• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Skrypt

Blizny

New Member
Joined
Jun 26, 2012
Messages
107
Reaction score
2
Location
Poland / Bydgoszcz
Wiecie może jak to poprawić? Jakieś brazol dodał ten kodzik i skasowali już temat...


Code:
function onStatsChange(cid, attacker, type, combat, value)
local tabble = {
[1] = {max = 15,msg = "Lower"},
[16] = {max= 50,msg = "Good"},
[51] = {max= 100,msg = "Mega"},
[101] = {max= 250,msg = "Epic"},
[251] = {max= 300,msg = "Perfect"},
[301] = {max= 600,msg = "Supreme"},
[601] = {max= 2000,msg = "Divine"},
[2001] = {max= 100000,msg = "Hs"}
}

if type == STATSCHANGE_HEALTHLOSS and isPlayer(attacker) then
if value == 0 then
doSendAnimatedText(getCreaturePosition(attacker), "MISS", math.random(1,255))
else
for min, hit in pairs(tabble) do
if value >= min and value <= hit.max then
local color = math.random(1,255)
doSendAnimatedText(getCreaturePosition(attacker), hit.msg, color)
local pos2 = {x=getCreaturePosition(attacker).x+1,y=getCreature Position(attacker).y,z=getCreaturePosition(attacke r).z}
doSendAnimatedText(pos2, "HIT", color)
end
end
end
elseif type == STATSCHANGE_HEALTHGAIN then
return false
end
return true
end
function onCombat(cid, target)
registerCreatureEvent(target, "HitMessage")
return true
end


Code:
<event type="statschange" name="HitMessage" event="script" value="hitmsg.lua"/>
<event type="combat" name="Hitmsg" event="script" value="hitmsg.lua"/>


Code:
registerCreatureEvent(cid, "Hitmsg")


Wywala mi błąd
hitmsg.lua:21: '}' expected near 'Position'
 
z kazdym uderzeniem potwora pojawia sie taki log na ots doSendAnimatedText is now a deprecated funtion. co to znaczyy?
 
aha a jaka funkcje zamiast tego wpisac? doSendAnimatedText doSendAnimatedText kombinowalem doSendMagicEffect ale to tylko efekt ;p hmmm
 
Nie wiem czy nie umiesz czytac, ale spoko, moge sie powtorzyc, w nowej wersji klienta animowanego tekstu nie wyslesz.

Wyśle, tylko zmieniła się lekko formuła a devom się dupy ruszyć nie chce żeby doc's edytnąć, lepiej mi Kamil powiedz co zrobić żeby kara jeździł :/

Stary:

Code:
	//doPlayerSendTextMessage(cid, MessageClasses, message)
	lua_register(m_luaState, "doPlayerSendTextMessage", LuaInterface::luaDoPlayerSendTextMessage);

Nowy:
Code:
	//doPlayerSendTextMessage(cid, MessageClasses, message[, value[, color[, position]]])
	lua_register(m_luaState, "doPlayerSendTextMessage", LuaInterface::luaDoPlayerSendTextMessage);

Cpp:

Code:
int32_t LuaInterface::luaDoPlayerSendTextMessage(lua_State* L)
{
	//doPlayerSendTextMessage(cid, MessageClasses, message[, value[, color[, position]]])
	int32_t args = lua_gettop(L), value = 0, color = COLOR_WHITE;
	PositionEx position;
	if(args > 5)
		popPosition(L, position);

	if(args > 4)
		color = popNumber(L);

	if(args > 3)
		value = popNumber(L);

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

	ScriptEnviroment* env = getEnv();
	Player* player = env->getPlayerByUID(popNumber(L));
	if(!player)
	{
		errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
		lua_pushboolean(L, false);
		return 1;
	}

	if(args > 3)
	{
		if(!position.x || !position.y)
			position = player->getPosition();

		MessageDetails* details = new MessageDetails(value, (Color_t)color);
		player->sendStatsMessage((MessageClasses)messageClass, text, position, details);
		delete details;
	}
	else
		player->sendTextMessage((MessageClasses)messageClass, text);

	lua_pushboolean(L, true);
	return 1;
}
 
Wyśle, tylko zmieniła się lekko formuła a devom się dupy ruszyć nie chce żeby doc's edytnąć.

Stary:

Code:
    //doPlayerSendTextMessage(cid, MessageClasses, message)
    lua_register(m_luaState, "doPlayerSendTextMessage", LuaInterface::luaDoPlayerSendTextMessage);

Nowy:
Code:
    //doPlayerSendTextMessage(cid, MessageClasses, message[, value[, color[, position]]])
    lua_register(m_luaState, "doPlayerSendTextMessage", LuaInterface::luaDoPlayerSendTextMessage);

Cpp:

Code:
int32_t LuaInterface::luaDoPlayerSendTextMessage(lua_State* L)
{
    //doPlayerSendTextMessage(cid, MessageClasses, message[, value[, color[, position]]])
    int32_t args = lua_gettop(L), value = 0, color = COLOR_WHITE;
    PositionEx position;
    if(args > 5)
        popPosition(L, position);

    if(args > 4)
        color = popNumber(L);

    if(args > 3)
        value = popNumber(L);

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

    ScriptEnviroment* env = getEnv();
    Player* player = env->getPlayerByUID(popNumber(L));
    if(!player)
    {
        errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
        lua_pushboolean(L, false);
        return 1;
    }

    if(args > 3)
    {
        if(!position.x || !position.y)
            position = player->getPosition();

        MessageDetails* details = new MessageDetails(value, (Color_t)color);
        player->sendStatsMessage((MessageClasses)messageClass, text, position, details);
        delete details;
    }
    else
        player->sendTextMessage((MessageClasses)messageClass, text);

    lua_pushboolean(L, true);
    return 1;
}

Jak tak to przepraszam, a przypadkiem to nie mialo wczesniej limitu do liczb tylko?
 
Dobra, juz wiem. Nadal w ten sposob co podales nie wysle animowanego tekstu, parametr text w tej funkcji jest odpowiedzialny za wiadomosc w konsoli z tego co sie orientuje.

Niech sprawdzi, zobaczymy.
 
Zamiast tego wolno także użyć tej funkcji:
LUA:
doCreatureSay(cid, text)
Ona wyświetla tekst nad postacią na pomarańczowo (-czerowono?) - tak jak robią to potwory przy mówieniu.
 
a nie lepiej w functions dodać funkcje doSendAnimatedText i poprostu ona by zwracała jakąś inna funkcję, która działa na 9.x i ma podobne działanie?

niewiem coś w stylu:

function doSendAnimatedText(pos, text, color[, player])
return doCreatureSay(cid, text, color[, ghost = false[, cid = 0[, pos]]])
end

to jest złe tak z dupy napisałem, ale coś takiego możesz zrobić

- - - Updated - - -

byś wtedy nie musiał przepisywać miliona skryptów xD
 
/data/lib/100-shortcut.lua

usuń:
Code:
function doSendAnimatedText(...)
	print("doSendAnimatedText is now a deprecated function.")
	return true
end

odpal...
 
zrobilem doplayersay albo creaturesay to pojawia sie nad nickiem potwora jego nick bez napisu np low dmg itd :P tak jak w skrypcie ;p a powinno dzialac tak ze to nasz bohater mowi "low dmg" np ;p
 
Back
Top