karkucik
Active User
- Joined
- Apr 26, 2008
- Messages
- 146
- Reaction score
- 9
- Age
- 32
Autorem jestem ja.
opis z armia.toproste.pl
pod:
dodajemy:
pod:
dodajemy:
pod:
dodajemy:
const76.h
pod:
dodajemy:
houses.h (uwaga, trzeba sprawdzi? czy czasem ju? tej funkcji nie mamy - w yurotsie d jej nie ma)
pod:
dodajemy:
Opcje projektu->parametry->kompilator c++
dodajemy
I rebuild all
opis z armia.toproste.pl
game.cppsystem bezpiecznego sprzedawania domkow:
Jezeli chcemy bezpiecznie sprzedac komus swoj domek musimy udac sie do NPC 'Akt', ktory jest w swiatyni glownego miasta na pierwszym pietrze. nastepnie kupujemy od niego 'akt' za 10k gdy juz posiadamy akt wlasnosci udajemy sie do naszego domku ktorego jestesmy wlascicielem, klikamy na akt wybierajac trade, a nastepnie na osobe ktorej chcemy sprzedac domek. na trade pojawia sie akt wlasnosci, klikamy na niego 'look', aby sprawdzic czy pojawi sie nazwa domku, jezeli osoba kupujaca zaoferowala nam odpowiednia cene to klikamy accept i w tym momencie zostaniemy wyrzuceni z domku, a nowym ownerem zostanie osoba ktora nam zaplacila za domek.
pod:
Code:
Item *tradeItem = dynamic_cast<Item*>(getThing(pos, stackpos, player));
if(!tradeItem || tradeItem->getID() != itemid || !tradeItem->isPickupable()) {
player->sendCancel("Sorry, not possible.");
return;
}
Code:
#ifdef __KIRO_AKT__
if(tradeItem->getID() == ITEM_AKT)
{
Tile* tile = getTile(player->pos);
House* house = tile? tile->getHouse() : NULL;
if(!house)
{
player->sendCancel("Musisz stac w domku!");
return;
}
if(house->getOwner() != player->getName())
{
player->sendCancel("Musisz stac w swoim domku!");
return;
}
}
#endif
Code:
player->setAcceptTrade(true);
Player *tradePartner = getPlayerByID(player->tradePartner);
if(tradePartner && tradePartner->getAcceptTrade()) {
Item *tradeItem1 = player->tradeItem;
Item *tradeItem2 = tradePartner->tradeItem;
player->sendCloseTrade();
tradePartner->sendCloseTrade();
Code:
#ifdef __KIRO_AKT__
if(tradeItem1->getID() == ITEM_AKT)
{
Tile* tile = getTile(player->pos);
House* house = tile? tile->getHouse() : NULL;
Creature* creature = game->getCreatureByName(house->getOwner());
Player* prevOwner = creature? dynamic_cast<Player*>(creature) : NULL;
if(!house)
{
player->sendCancel("Musisz stac w domku!");
return;
}
if(house->getOwner() != player->getName())
{
player->sendCancel("Musisz stac w swoim domku!");
return;
}
player->removeItem(tradeItem1, true);
tradePartner->addItem(tradeItem1, true);
player->addItem(tradeItem2, true);
house->setOwner(tradePartner->getName());
teleport(player,house->getFrontDoor());
if (prevOwner)
prevOwner->houseRightsChanged = true;
tradePartner->houseRightsChanged = true;
}
else if(tradeItem2->getID() == ITEM_AKT)
{
Tile* tile = getTile(tradePartner->pos);
House* house = tile? tile->getHouse() : NULL;
Creature* creature = game->getCreatureByName(house->getOwner());
Player* prevOwner = creature? dynamic_cast<Player*>(creature) : NULL;
if(!house)
{
tradePartner->sendCancel("Musisz stac w domku!");
return;
}
if(house->getOwner() != tradePartner->getName())
{
tradePartner->sendCancel("Musisz stac w swoim domku!");
return;
}
tradePartner->removeItem(tradeItem1, true);
player->addItem(tradeItem1, true);
tradePartner->addItem(tradeItem2, true);
house->setOwner(player->getName());
teleport(tradePartner,house->getFrontDoor());
if (prevOwner)
prevOwner->houseRightsChanged = true;
player->houseRightsChanged = true;
}
#endif
Code:
if(lookAtCounterOffer)
tradeItem = tradePartner->getTradeItem();
else
tradeItem = player->getTradeItem();
if(!tradeItem)
return;
Code:
#ifdef __KIRO_AKT__
if(tradeItem->getID() == ITEM_AKT)
{
Tile* tile = getTile(tradePartner->pos);
House* house = tile? tile->getHouse() : NULL;
if(house && house->getOwner() == tradePartner->getName())
{
stringstream ss;
ss << "You see " << tradeItem->getDescription(true) << " Dotyczy on domku: " << house->getName() << ".";
player->sendTextMessage(MSG_INFO, ss.str().c_str());
return;
}
}
#endif
pod:
Code:
ITEM_WAND_OF_DRAGONBREATH = 2191,
Code:
#ifdef __KIRO_AKT__
ITEM_AKT = 1952,
#endif
pod:
Code:
std::string getGuests() const;
std::string getDescription() const;
Code:
#ifdef __KIRO_AKT__
std::string getName() const { return name; }
#endif
dodajemy
Code:
-D__KIRO_AKT__