Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- else if(itemVolatile >= 173 && itemVolatile <= 175)
- { // Perga pesadelo
- #pragma region Pesadelos
- st_Item recv_item;
- unsigned int pergaId = (item->Index - 3324);
- short partyStatus;
- char userName[16];
- int count;
- int forCount;
- memset(item, 0, sizeof(st_Item));
- if((GetPosX(clientId) >> 2) != 0x1EB || (GetPosY(clientId) >> 2) != 0x1BB)
- { // Posicao invalida
- SendClientMessage(clientId, "Você deve usar na Cidade que o Item corresponde.");
- goto ADD_ITEM_AND_QUITPesa;
- }
- partyStatus = *(short*)(0x15C6CD0 + (clientId * 0x410));
- if(partyStatus != 0 && partyStatus != -1)
- { // Nao eh lider so grupo
- SendClientMessage(clientId, "Você deve ser o lider do Grupo.");
- goto ADD_ITEM_AND_QUITPesa;
- }
- count = GetUserInArea(
- cPosPesa[pergaId].X - 100, cPosPesa[pergaId].Y - 100,
- cPosPesa[pergaId].X + 100, cPosPesa[pergaId].Y + 100,
- userName);
- if(count >= 1)
- { // Quest esta sendo usada
- sprintf(tmp, "A quest está sendo feita por %s e mais %d jogadores.", userName, count);
- SendClientMessage(clientId, tmp);
- goto ADD_ITEM_AND_QUITPesa;
- }
- // Teleporta o client
- DoTeleport(clientId, cPosPesa[pergaId].X, cPosPesa[pergaId].Y);
- // Teleporta os membros do grupo
- for(forCount = 0; forCount < 12; forCount++)
- {
- short pIndex = *(short*)(0x15C6D86 + (forCount * 2) + (clientId * 0x410));
- if(pIndex > 0 && pIndex < 100 && pIndex != clientId)
- { // Teleporta o membro
- if(*(int*)(0x7B318E0 + (pIndex * 0xC4C)) == 22)
- { // Player esta no jogo
- DoTeleport(pIndex, cPosPesa[pergaId].X, cPosPesa[pergaId].Y);
- }
- }
- }
- // Coloca os spawns no mapa
- if(item->Index != 3326)
- { // Mob's Pesadelo Erion
- GenerateMob(2424 + pergaId, 0, 0);
- GenerateMob(2425 + pergaId, 0, 0);
- GenerateMob(2426 + pergaId, 0, 0);
- GenerateMob(2427 + pergaId, 0, 0);
- GenerateMob(2428 + pergaId, 0, 0);
- GenerateMob(2429 + pergaId, 0, 0);
- GenerateMob(2431 + pergaId, 0, 0);
- }
- //Boss Erion
- //GenerateMob((2432 + (Rand() % 4)), 0, 0);
- // Mob's Pesadelo Armia
- GenerateMob(2433 + pergaId, 0, 0);
- GenerateMob(2434 + pergaId, 0, 0);
- GenerateMob(2435 + pergaId, 0, 0);
- GenerateMob(2436 + pergaId, 0, 0);
- GenerateMob(2437 + pergaId, 0, 0);
- GenerateMob(2438 + pergaId, 0, 0);
- GenerateMob(2439 + pergaId, 0, 0);
- GenerateMob(2440 + pergaId, 0, 0);
- //Bos Armia
- GenerateMob((2441 + (Rand() % 4)), 0, 0);
- // Mob's Pesadelo Azran
- GenerateMob(2442 + pergaId, 0, 0);
- GenerateMob(2443 + pergaId, 0, 0);
- GenerateMob(2444 + pergaId, 0, 0);
- GenerateMob(2445 + pergaId, 0, 0);
- GenerateMob(2446 + pergaId, 0, 0);
- GenerateMob(2447 + pergaId, 0, 0);
- GenerateMob(2448 + pergaId, 0, 0);
- GenerateMob(2449 + pergaId, 0, 0);
- //Boss Azran
- GenerateMob((2450 + (Rand() % 4)), 0, 0);
- if(item->Index != 3326)
- {
- //NPC'S Pesadelo Azran
- GenerateMob(4284 + pergaId, 0, 0);
- GenerateMob(4285 + pergaId, 0, 0);
- GenerateMob(4286 + pergaId, 0, 0);
- GenerateMob(4287 + pergaId, 0, 0);
- GenerateMob(4288 + pergaId, 0, 0);
- GenerateMob(4289 + pergaId, 0, 0);
- GenerateMob(4290 + pergaId, 0, 0);
- GenerateMob(4291 + pergaId, 0, 0);
- //NPC'S Pesadelo Armia
- GenerateMob(4292 + pergaId, 0, 0);
- GenerateMob(4293 + pergaId, 0, 0);
- GenerateMob(4294 + pergaId, 0, 0);
- GenerateMob(4295 + pergaId, 0, 0);
- GenerateMob(4296 + pergaId, 0, 0);
- GenerateMob(4297 + pergaId, 0, 0);
- GenerateMob(4298 + pergaId, 0, 0);
- GenerateMob(4299 + pergaId, 0, 0);
- //NPC'S Pesadelo Erion
- GenerateMob(4300 + pergaId, 0, 0);
- GenerateMob(4301 + pergaId, 0, 0);
- GenerateMob(4302 + pergaId, 0, 0);
- GenerateMob(4303 + pergaId, 0, 0);
- GenerateMob(4304 + pergaId, 0, 0);
- GenerateMob(4305 + pergaId, 0, 0);
- GenerateMob(4306 + pergaId, 0, 0);
- GenerateMob(4307 + pergaId, 0, 0);
- GenerateMob(4308 + pergaId, 0, 0);
- }
- for(i=0;i<20000;i++)
- {
- SendClientMessage(clientId, "O Contador funcionou !!!");
- }
- RebuildGenerator();
- if(pergaId < 3)
- { // Entrega de algum item após usar o item 3324
- st_Item item;
- item.Index = 0 + pergaId;
- item.EF1 = 0 + pergaId;
- item.EFV1 = 0 + pergaId;
- item.EF2 = 0;
- item.EFV2 = 0;
- item.EF3 = 0;
- item.EFV3 = 0;
- PutItem(clientId, &item);
- }
- return continueNormalExec;
- ADD_ITEM_AND_QUITPesa:
- // Adiciona o item caso o personagem não esteja "dentro dos conformes"
- recv_item.Index = (3324 + pergaId);
- recv_item.EF1 = 43;
- recv_item.EFV1 = 3;
- recv_item.EF2 = 0;
- recv_item.EFV2 = 0;
- recv_item.EF3 = 0;
- recv_item.EFV3 = 0;
- PutItem(clientId, &recv_item);
- return continueNormalExec;
- ADD_ITEM_AND_QUITPesadelo:
- ClearAreaTeleport(cPosPesa[pergaId].X - 100, cPosPesa[pergaId].Y - 100, cPosPesa[pergaId].X + 100, cPosPesa[pergaId].Y + 100, 2462, 2000);
- return continueNormalExec;
- #pragma endregion
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement