Jump to content

Question

Bom dia/tarde/noite , preciso de ajuda com algumas coisas .

1° Gostaria de saber se é possivel , e se for , como fazer , para adicionar uma arma com sprite custom e transformar esse item em um visual de arma.

2° Como  adicionar uma sprite de mob customizado , procurei sobre e só achei para outros emuladores , tentei repetir o processo no hercules e nao consegui .

3° Quais arquivos preciso mudar para adicionar / remover mobs da Torre sem fim .

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 1

É possível sim, você teria que criar um script para : (npc/instances/EndlessTower.txt) e verificar se o player é vip ou não pegando os valores da database com essa função(http://herc.ws/wiki/Query_sql).

O foco vai ser mais ou menos nessas linhas aqui ,pois elas estão setando o delay(604800 = 1 semana), estude bem para ver o que cada função faz.

Quote
e_tower,81,105,0 script Tower Protection Stone 2_MONEMUS,{
   
  .@party_id = getcharid(CHAR_ID_PARTY);
  .@p_name$ = getpartyname(.@party_id);
  .@md_name$ = _("Endless Tower");
   
  .@etower_timer = questprogress(60200, PLAYTIME); // 1 week
  .@etower_timer2 = questprogress(60201, PLAYTIME); // 4 hours
   
  if (!instance_check_party(.@party_id, 2)) {
  mes("Make or join a party with more than 1 member and try again.");
  close();
  }
  if (!.@etower_timer) {
  if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2)) {
  mes("Confirmed the party has been made. Would you like to reserve entrance to the Endless Tower?");
  next();
  .@str$ = sprintf(_$("Generate Dungeon %s"), .@md_name$);
  switch (select(.@str$, "Enter the Dungeon", "Return to Alberta", "Cancel")) {
  case 1:
  .@instance = instance_create(.@md_name$, .@party_id);
  if (.@instance < 0) {
  mesf("Party Name: %s", .@p_name$);
  mesf("Party Leader: %s", strcharinfo(PC_NAME));
  mesf("^0000ff%s ^000000- Reservation Failed!", .@md_name$);
  close();
  }
  mesf("^0000ff%s^000000 - Try to reserve", .@md_name$);
  mes("After making a reservation, you have to talk to NPC behind and select the menu 'Enter the Dungeon' to enter the dungeon.");
  for (.@i = 1; .@i <= 6; ++.@i) {
  if (instance_attachmap(.@i + "@tower", .@instance) == "") {
  mesf("^0000ff%s ^000000- Reservation Failed!", .@md_name$);
  instance_destroy(.@instance);
  close();
  }
  }
  instance_set_timeout(14400, 300, .@instance);
  instance_init(.@instance);
  close();
  case 2:
  callsub(L_Enter, 0, 1, .@md_name$, .@p_name$);
  case 3:
  mes("I will move you to Alberta.");
  close2();
  warp("alberta", 223, 36);
  end;
  case 4:
  close();
  }
  }
  mes("If you have the dungeon generated already, you can enter it.");
  next();
  switch (select("Enter the Dungeon", "Return to Alberta", "Cancel")) {
  case 1:
  callsub(L_Enter, 1, 1, .@md_name$, .@p_name$);
  case 2:
  mes("I will move you to Alberta.");
  close2();
  warp("alberta", 223, 36);
  end;
  case 3:
  end;
  }
  } else if (.@etower_timer == 1 && .@etower_timer2 == 2) {
   
  .@dun_lim_time = etower_timer + 604800; // 1 week
  .@dun_lim_time2 = etower_timer + 14400; // 4 hours
  .@dun_cur_time = gettimetick(2);
  .@dun_ent_t = .@dun_lim_time - .@dun_cur_time;
  .@dun_h = .@dun_ent_t / 3600;
  .@dun_m = (.@dun_ent_t - (.@dun_h * 3600)) / 60;
  .@dun_s = .@dun_ent_t - ((.@dun_h * 3600) + (.@dun_m * 60));
   
  mesf("Due to the tower's aftereffects, you cannot enter the dungeon right now, %d hours %d minutes %d seconds left to enter the next dungeon.", .@dun_h, .@dun_m, .@dun_s);
  next();
  mes("It is dangerous here. Let me move you to Alberta.");
  close2();
  warp("alberta", 223, 36);
  end;
  } else if (.@etower_timer == 1) {
  mes("If you have the dungeon generated already, you can enter it.");
  next();
  switch (select("Enter the Dungeon", "Return to Alberta", "Cancel")) {
  case 1:
  callsub(L_Enter, 0, 0, .@md_name$, .@p_name$);
  case 2:
  mes("I will move you to Alberta.");
  close2();
  warp("alberta", 223, 36);
  end;
  case 3:
  break;
  }
  close();
  } else {
  etower_timer = 0;
  erasequest(60200);
  erasequest(60201);
  mes("^0000ffThe records and after effects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000");
  close();
  }
   
  L_Enter:
  if (has_instance("1@tower") == "") {
  mesf("The memorial dungeon %s does not exist.", getarg(2));
  mes("The party leader did not generate the dungeon yet.");
  close();
  } else {
  mapannounce("e_tower", sprintf(_$("%s of the party, %s, is entering the dungeon, Endless Tower."), strcharinfo(PC_NAME), getarg(3)), bc_map, C_SPRINGGREEN, FW_NORMAL, 12);
  if (getarg(1)) {
  etower_timer = gettimetick(2);
  setquest(60200);
  setquest(60201);
  }
  warp("1@tower", 52, 354);
  if (getarg(0) == 0)
  close();
  else
  end;
  }
  }
   
  e_tower,30,30,2 script Huge Vortex CLEAR_NPC,2,2,{
  end;
  OnTouch:
  mapannounce("e_tower", sprintf(_$("[ %s ], seems to be engulfed by a huge vortex"), strcharinfo(PC_NAME)), bc_map, C_SPRINGGREEN, FW_NORMAL, 12);
  warp("alberta", 223, 36);
  end;
  }
   
  // Original name: "#102Administrator Mode104"
  e_tower,1,1,2 script #102Administrator Mode CLEAR_NPC,{
  callfunc("F_GM_NPC");
  mes("Please enter the password.");
  .@i = callfunc("F_GM_NPC", "dmc2008", 1);
  next();
  if (.@i == 1) {
  switch (select("Generate Purification Stone", "Remove Purification Stone", "Cancel")) {
  case 1:
  mes("Create the Purification Stone that stays for 30 minutes.");
  donpcevent("Purification Stone#et1::OnEnable");
  break;
  case 2:
  mes("Destroy the Purification Stone immediately");
  donpcevent("Purification Stone#et1::OnDisable");
  break;
  case 3:
  mes("You have canceled it.");
  break;
  }
  close();
  } else {
  mes("Enter the password exactly.");
  close();
  }
  }
   
  e_tower,69,117,4 script Purification Stone#et1 2_MONEMUS,{
  etower_timer = 0;
  mes("^0000ffThe records and aftereffects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000");
  close();
   
  OnInit:
  disablenpc("Purification Stone#et1");
  end;
   
  OnEnable:
  initnpctimer();
  end;
   
  OnDisable:
  stopnpctimer();
  disablenpc("Purification Stone#et1");
  end;
   
  OnTimer1000:
  enablenpc("Purification Stone#et1");
  end;
   
  OnTimer1740000:
  mapannounce("e_tower", _("The Purification Stone will be destroyed in one minute."), bc_map, C_SPRINGGREEN);
  end;
   
  OnTimer1800000:
  disablenpc("Purification Stone#et1");
  end;
  }
   
  e_tower,151,185,4 script Purification Stone#et2 CLEAR_NPC,{
  callfunc("F_GM_NPC");
  etower_timer = 0;
  mes("^0000ffThe records and aftereffects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000");
  close2();
  warp("e_tower", 75, 108);
  end;
  }

E também irá ter que trabalhar com /db/quest_db.conf. Porque é aqui que seta a quest e sua duração. Vê que são os mesmos valores do arquivo acima(604800 tempo de delay).

Quote

 

{
    Id: 60200
    Name: "Endless Tower Effect"
    TimeLimit: 604800
},
{
    Id: 60201
    Name: "Endless Tower Time Limit"
    TimeLimit: 14400
},
 

Esse é o caminho que estou ti dando, estou com pouco tempo n posso ti ajudar muito com o code, espero que entenda ;D

Share this post


Link to post
Share on other sites
  • 0

Bom dia,

1°) Talvez, conhece os itens shadow?! Com eles, você pode testar essa função "visual de arma", segue o Link: http://herc.ws/wiki/Custom_Items, Vá nesse tópico 

Loc: Equipment location of armor and arrow-type items. 

2°)http://herc.ws/wiki/Custom_Mobs.

3°)Este é o arquivo da torre sem fim https://github.com/HerculesWS/Hercules/blob/stable/npc/instances/EndlessTower.txt.

Share this post


Link to post
Share on other sites
  • 0

O tempo da torre é de 6 dias e 20 horas né , qual a chance de ser possível colocar para jogadores vip um delay menor ? 

Apenas vips com delay de 3 dias

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.