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

  • 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,{
   
  [email protected]_id = getcharid(CHAR_ID_PARTY);
  [email protected]_name$ = getpartyname([email protected]_id);
  [email protected]_name$ = _("Endless Tower");
   
  [email protected]_timer = questprogress(60200, PLAYTIME); // 1 week
  [email protected]_timer2 = questprogress(60201, PLAYTIME); // 4 hours
   
  if (!instance_check_party([email protected]_id, 2)) {
  mes("Make or join a party with more than 1 member and try again.");
  close();
  }
  if ([email protected]_timer) {
  if (getcharid(CHAR_ID_CHAR) == getpartyleader([email protected]_id, 2)) {
  mes("Confirmed the party has been made. Would you like to reserve entrance to the Endless Tower?");
  next();
  [email protected]$ = sprintf(_$("Generate Dungeon %s"), [email protected]_name$);
  switch (select([email protected]$, "Enter the Dungeon", "Return to Alberta", "Cancel")) {
  case 1:
  [email protected] = instance_create([email protected]_name$, [email protected]_id);
  if ([email protected] < 0) {
  mesf("Party Name: %s", [email protected]_name$);
  mesf("Party Leader: %s", strcharinfo(PC_NAME));
  mesf("^0000ff%s ^000000- Reservation Failed!", [email protected]_name$);
  close();
  }
  mesf("^0000ff%s^000000 - Try to reserve", [email protected]_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 ([email protected] = 1; [email protected] <= 6; [email protected]) {
  if (instance_attachmap([email protected] + "@tower", [email protected]) == "") {
  mesf("^0000ff%s ^000000- Reservation Failed!", [email protected]_name$);
  instance_destroy([email protected]);
  close();
  }
  }
  instance_set_timeout(14400, 300, [email protected]);
  instance_init([email protected]);
  close();
  case 2:
  callsub(L_Enter, 0, 1, [email protected]_name$, [email protected]_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, [email protected]_name$, [email protected]_name$);
  case 2:
  mes("I will move you to Alberta.");
  close2();
  warp("alberta", 223, 36);
  end;
  case 3:
  end;
  }
  } else if ([email protected]_timer == 1 && [email protected]_timer2 == 2) {
   
  [email protected]_lim_time = etower_timer + 604800; // 1 week
  [email protected]_lim_time2 = etower_timer + 14400; // 4 hours
  [email protected]_cur_time = gettimetick(2);
  [email protected]_ent_t = [email protected]_lim_time - [email protected]_cur_time;
  [email protected]_h = [email protected]_ent_t / 3600;
  [email protected]_m = ([email protected]_ent_t - ([email protected]_h * 3600)) / 60;
  [email protected]_s = [email protected]_ent_t - (([email protected]_h * 3600) + ([email protected]_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.", [email protected]_h, [email protected]_m, [email protected]_s);
  next();
  mes("It is dangerous here. Let me move you to Alberta.");
  close2();
  warp("alberta", 223, 36);
  end;
  } else if ([email protected]_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, [email protected]_name$, [email protected]_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("[email protected]") == "") {
  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("[email protected]", 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.");
  [email protected] = callfunc("F_GM_NPC", "dmc2008", 1);
  next();
  if ([email protected] == 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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now