What's new

Skrypty & Kody [server log] Pomoc, a raczej odpowiedz.

Status
Not open for further replies.

Pucek1993

Active User
Joined
Feb 4, 2016
Messages
71
Reaction score
1
Cze??, postanowi?em przenie?? logi otrzymanych hit?w hp/mana do server logu. Czy s?dzicie ?e jest tu wszystko okej?

PHP:
void Game::CreateDamageUpdate(Creature* creature, Creature* attackCreature, int damage)
{
	Player* player = dynamic_cast<Player*>(creature);
	Player* attackPlayer = dynamic_cast<Player*>(attackCreature);
	if(!player)
		return;
	//player->sendStats();
	//msg.AddPlayerStats(player);
	if (damage > 0) {
		std::stringstream dmgmesg;

		if(damage == 1) {
			dmgmesg << "You lose 1 hitpoint";
		}
		else
			dmgmesg << "You lose " << damage << " hitpoints";

		if(attackPlayer) {
			dmgmesg << " due to an attack by " << attackCreature->getName();
		}
		else if(attackCreature) {
			std::string strname = attackCreature->getName();
			std::transform(strname.begin(), strname.end(), strname.begin(), (int(*)(int))tolower);
			dmgmesg << " due to an attack by a " << strname;
		}
		dmgmesg <<".";

    player->sendFromSys(SPEAK_CHANNEL_R2, dmgmesg.str().c_str());
		//msg.AddTextMessage(MSG_EVENT, dmgmesg.str().c_str());
	}
	if (player->isRemoved == true){
		player->sendTextMessage(MSG_ADVANCE, "You are dead.");
	}
}

void Game::CreateManaDamageUpdate(Creature* creature, Creature* attackCreature, int damage)
{
	Player* player = dynamic_cast<Player*>(creature);
	if(!player)
		return;
	//player->sendStats();
	//msg.AddPlayerStats(player);
	if (damage > 0) {
		std::stringstream dmgmesg;
		dmgmesg << "You lose " << damage << " mana";
		if(attackCreature) {
			dmgmesg << " blocking an attack by " << attackCreature->getName();
		}
		dmgmesg <<".";
		
		    player->sendFromSys(SPEAK_CHANNEL_R2, dmgmesg.str().c_str());
		//msg.AddTextMessage(MSG_EVENT, dmgmesg.str().c_str());
	}
}


Wszystko dzia?a jak nale?y, ale waha?em si? co do swojej edycji - w sumie, zmieni?em tylko speak channel.


pPkN5cN.jpg


7KLndPH.jpg

Pozdrawiam! / PS. nie ucz? si? C++, raczej d??? do tego ?eby co? sam zrobi? ;x
 

Budowlan

Advanced User
Joined
Feb 10, 2011
Messages
286
Reaction score
0
Odp: [server log] Pomoc, a raczej odpowiedz.

Uwa?am, ?e dobrze zrobi?e?. Mi osobi?cie pasuj? Server Logi, poniewa? nie ma spamu na Default :)
 

Pucek1993

Active User
Joined
Feb 4, 2016
Messages
71
Reaction score
1
Odp: [server log] Pomoc, a raczej odpowiedz.

Okej :D Wi?c kolejne pytanie, chce aby loot info byl w kolorze zielonym (jak na rl tibii).

PHP:
#ifdef HUCZU_LOOT_INFO
          Monster* monster = dynamic_cast<Monster*>(attackedCreature);
          Player* atakujacy = dynamic_cast<Player*>(attacker);
            if(monster && atakujacy){
                std::stringstream ss;
              ss << "Loot of " << monster->getName() << ": " << lootcontainer->getContentDescription() << ".";
              atakujacy->sendFromSys(SPEAK_CHANNEL_R2, ss.str().c_str());
           }
#endif //HUCZU_LOOT_INFO

Ogarni?te:


Lecz nie wiem jaki kod koloru ma zielony, x[...] . Kto? mo?e wie? :)



[MENTION=15656]edi[/MENTION]t.

PHP:
int32_t ActionScript::luaActionDoAddTeleport(lua_State *L)
{
    PositionEx frompos;
    internalGetPositionEx(L,frompos);

    PositionEx pos;
    internalGetPositionEx(L,pos);

    ActionScript *action = getActionScript(L);

    Tile *tile = action->game->map->getTile(pos);
    Teleport *checkTP = tile->getTeleportItem();

    if(checkTP)
        return 0;

    Item *newitem = Item::CreateItem(5023);
    action->game->addThing(NULL,pos,newitem);

    if(tile)
    {
        Teleport *teleportitem = tile->getTeleportItem();
        if(teleportitem)
            teleportitem->setDestPos(frompos);
    }

    lua_pushnumber(L, 0);
    return 1;
}


Jak dzia?a ten kod? >>

PHP:
    lua_register(luaState, "addTeleport", ActionScript::luaActionDoAddTeleport);
    lua_register(luaState, "removeTeleport", ActionScript::luaActionDoRemoveTeleport);


edit@

Dzia?a tak.

PHP:
    addTeleport(5023, tppos, gdzietp)
 
Last edited:
Status
Not open for further replies.
Top