Jump to content
Notícia
  • Adquira já o seu VIP!

-ux-

Membro Avançado
  • Content Count

    28
  • Joined

  • Last visited

  • WCoins

    1,021 [ Donate ]

Community Reputation

21

About -ux-

  • Rank
    WebCheats

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Muito top isso.. parabéns para quem fez. E obrigado por compartilhar.
  2. Não é meu o código.. só estou repassando.
  3. Não está mal programada, só não está no tempo que você deseja... Tenta colocar 600...
  4. Exatamente! Mas para quem não sabe fazer isso que você disse, salvar em outro arquivo é uma solução
  5. Esse evento fecha o pvp de armia e começa a jogar itens no chão aleatoriamente... Coloque um npc na entrada do PVP cobrando uma "entrada"... ou apenas use a lógica para outras coisas. Apenas se não já estiverem definidas: struct tm when; time_t now; time(&now); when = *localtime(&now); Código do evento: #pragma region EVENTO PVP ARMIA DROP if (when.tm_hour == 16 && when.tm_min == 00 && when.tm_sec == 00) { //FECHA O PORTÃO E LIMPA O PVP int i = 0; for (i = 0; i < MAX_ITEM; i++) { if (pItem[i].ITEM.sIndex == 4143) break; } if (i == MAX_ITEM) return; UpdateItem(i, STATE_LOCKED, &pItem[i].Height); MSG_CreateItem sm_cig; memset(&sm_cig, 0, sizeof(MSG_CreateItem)); GetCreateItem(i, &sm_cig); GridMulticast(pItem[i].PosX, pItem[i].PosY, (MSG_STANDARD*)& sm_cig, 0); ClearArea(2124, 2140, 2147, 2156); //Limpa o pvp de armia sprintf(temp, "PORTÃO FECHADO, QUE A BATALHA COMEÇE!!!"); SendNotice(temp); return; } if ((when.tm_hour == 16) && (when.tm_sec == 10 || when.tm_sec == 20 || when.tm_sec == 30 || when.tm_sec == 40 || when.tm_sec == 50)) { //DROPA O ITEM STRUCT_ITEM Item; memset(&Item, 0, sizeof(STRUCT_ITEM)); int empty = GetEmptyItem(); int _rd = rand() % 100; if (_rd < 25) { Item.sIndex = 413; //PRIMEIRO ITEM } else if (_rd < 50) Item.sIndex = 412; //SEGUNDO ITEM else if (_rd < 75) Item.sIndex = 4144; //TERCEIRO ITEM else Item.sIndex = 3318; //QUARTO ITEM int rd = rand() % 15; int randx = 2126 + rd; //COORDENADA X int randy = 2142 + rd; //COORDENADA Y pItem[empty].Delay = 5; //Tempo que o item fica no chão CreateItem(randx, randy, &Item, rand() % 5, 1); sprintf(temp, "O item %s foi criado em x: %d y: %d", g_pItemList[Item.sIndex].Name, randx, randy); SendNotice(temp); return; } else if (when.tm_hour == 16 && when.tm_min == 59 && when.tm_sec == 59) { //ABRE O PORTÃO int i = 0; for (i = 0; i < MAX_ITEM; i++) { if (pItem[i].ITEM.sIndex == 4143) break; } if (i == MAX_ITEM) return; UpdateItem(i, STATE_OPEN, &pItem[i].Height); MSG_CreateItem sm_cig; memset(&sm_cig, 0, sizeof(MSG_CreateItem)); GetCreateItem(i, &sm_cig); GridMulticast(pItem[i].PosX, pItem[i].PosY, (MSG_STANDARD*)& sm_cig, 0); sprintf(temp, "A BATALHA CHEGOU AO FIM, ACESSO AO PVP DE ARMIA LIBERADO!"); SendNotice(temp); return; } #pragma endregion Obs.: Se já usar o código do prêmio por tempo de loja, é só colocar após o seu término.
  6. Mas não é assim que funciona?? Nunca vi usar em 1 e ativar em todos
  7. Só copiar e colar; Créditos: Não sei!
  8. A função UserData da 756 salva a struct em um arquivo com o nome da acc. Exemplo definindo valor na variável por char: User[conn].CharacterInfo[pUser[conn].Slot].Profession.Profissao = 1; Falta só colocar a função para quando deletar o char, zerar as variáveis. Porque como ela é declarada pelo slot, se criar um novo vai vir com as mesmas variáveis daquele slot.
  9. _MSG_TradingItem.cpp if (m->SrcPlace == ITEM_PLACE_EQUIP || m->DestPlace == ITEM_PLACE_EQUIP) { if (save1.sIndex >= 4150 && save1.sIndex <= 4188 && save1.stEffect[0].cEffect == 0 && save1.stEffect[1].cEffect == 0 && save1.stEffect[2].cEffect == 0) { BASE_SetItemDate(&save1, 30); SendItem(conn, m->SrcPlace, m->SrcSlot, &save1); } if (save2.sIndex >= 4150 && save2.sIndex <= 4188 && save2.stEffect[0].cEffect == 0 && save2.stEffect[1].cEffect == 0 && save2.stEffect[2].cEffect == 0) { BASE_SetItemDate(&save2, 30); SendItem(conn, m->DestPlace, m->DestSlot, &save2); } if (save1.sIndex >= 3980 && save1.sIndex <= 3989 && BASE_CheckItemDate(&save1) || save1.sIndex >= 4150 && save1.sIndex <= 4188 && BASE_CheckItemDate(&save1)) { BASE_ClearItem(&save1); SendItem(conn, m->SrcPlace, m->SrcSlot, &save1); } if (save2.sIndex >= 3980 && save2.sIndex <= 3989 && BASE_CheckItemDate(&save2) || save2.sIndex >= 4150 && save2.sIndex <= 4188 && BASE_CheckItemDate(&save2)) { BASE_ClearItem(&save2); SendItem(conn, m->DestPlace, m->DestSlot, &save2); } }
  10. -ux-

    RE-UP Source MW

    Poderia postar o cliente também?
  11. Como faz pra dropar um item no chão, pode ser quando um mob morre, ou quando clica num npc... Tentei usar a função do drop PK mas acho que não ta funcionando.
×
×
  • Create New...