Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifdef ENABLE_MINI_GAME_CHRISTMAS
- ACMD(do_christmas_add)
- {
- if (ch->IsObserverMode())
- return;
- if (quest::CQuestManager::instance().GetEventFlag("eventChristmas") == 0)
- return;
- LPITEM invItem;
- int slotNumber = 0, displayPos = 0;
- char arg1[256], arg2[256], positionList[256];
- two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2));
- if (!*arg1 || 0 == arg1[0] || !isdigit(*arg1) || !*arg2 || 0 == arg2[0] || !isdigit(*arg2))
- return;
- str_to_number(slotNumber, arg1);
- str_to_number(displayPos, arg2);
- if (slotNumber < 0 || INVENTORY_MAX_NUM <= slotNumber)
- return;
- if (displayPos < 0 || displayPos >= 10)
- return;
- invItem = ch->GetInventoryItem(slotNumber);
- if (NULL == invItem)
- return;
- if (invItem->isLocked())
- return;
- if(displayPos <= 8 && (invItem->GetVnum() != 39098 && invItem->GetVnum() != 39099))
- {
- ch->ChatPacket(CHAT_TYPE_INFO, "Ai nevoie de Glob Magic sau Glob Magic Special pentru aceste sloturi.");
- return;
- }
- if(displayPos == 9 && invItem->GetVnum() != 39097)
- {
- ch->ChatPacket(CHAT_TYPE_INFO, "In varful bradului se pune Stea Magica.");
- return;
- }
- char queryStr[QUERY_MAX_LEN];
- snprintf(queryStr, sizeof(queryStr), "SELECT items FROM christmas WHERE pid = %d LIMIT 1;", ch->GetPlayerID());
- std::unique_ptr<SQLMsg> upMsg(DBManager::instance().DirectQuery(queryStr));
- SQLResult* res = upMsg->Get();
- if (!res || res->uiNumRows < 1 || res->uiNumRows > 255)
- return;
- MYSQL_ROW row = mysql_fetch_row(upMsg->Get()->pSQLResult);
- strlcpy(positionList, row[0], sizeof(positionList));
- if(positionList[displayPos*2] != '0')
- {
- ch->ChatPacket(CHAT_TYPE_INFO, "Ai pus deja un ornament in acest slot.");
- return;
- }
- switch(invItem->GetVnum())
- {
- case 39098:
- positionList[displayPos*2] = '1';
- break;
- case 39099:
- positionList[displayPos*2] = '2';
- break;
- case 39097:
- positionList[displayPos*2] = '3';
- break;
- }
- if(invItem->GetVnum() == 39097)
- {
- bool incompleteTree = false;
- for(int i = 0; i < 10; i++)
- {
- if(positionList[i*2] == '0')
- {
- incompleteTree = true;
- break;
- }
- }
- if(incompleteTree == true)
- {
- ch->ChatPacket(CHAT_TYPE_INFO, "Inainte sa pui steaua completeaza bradul cu globuri.");
- return;
- }
- else
- {
- DBManager::instance().DirectQuery("UPDATE christmas SET items = '0|0|0|0|0|0|0|0|0|0', complete = complete + 1 WHERE pid = %d", ch->GetPlayerID());
- ch->ChatPacket(CHAT_TYPE_COMMAND, "christmas clear");
- ch->ChatPacket(CHAT_TYPE_COMMAND, "christmas refresh");
- ITEM_MANAGER::instance().RemoveItem(invItem);
- ch->AutoGiveItem(39096, 1);
- }
- }
- else
- {
- DBManager::instance().DirectQuery("UPDATE christmas SET items = '%s' WHERE pid = %d", positionList, ch->GetPlayerID());
- ch->ChatPacket(CHAT_TYPE_COMMAND, "christmas add_item %d %d", displayPos, invItem->GetVnum());
- ch->ChatPacket(CHAT_TYPE_COMMAND, "christmas refresh");
- ITEM_MANAGER::instance().RemoveItem(invItem);
- }
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement