Jump to content

jaBote

Community Contributors
  • Content Count

    2037
  • Joined

  • Last visited

  • Days Won

    43

Everything posted by jaBote

  1. bro, do you have example? I want my item to imitate the effect: @effect 219 specialeffect2 219;
  2. To the best of my knowledge (and the best of my knowledge on this dates from 2009), clients have some of the item effects hardcoded in, so in case you want to make an item show a special effect you should use the specialeffect2 script command (check out more at doc/script_commands.txt). For a list of special effects, you'll need this kinda unreadable list and/or the constants assigned to the list in db/const.txt
  3. You can't make a pet egg other way than issuing the makepet script command, it's docummented here: doc/script_commands.txt, line 7870: This means that you should have your package yield an intermediate item that will make the pet once used. If got via getitem, packageitem or getrandgroupitem you'll get an empty egg. Another approach you can do is using the groupranditem script command to get an item ID, then check if that one is a pet egg ID and make the according pet for the player.
  4. Or you can source edit it (or overwrite with a plugin) find on src/map/atcommand.c the @recallall command: /*========================================== * Recall All Characters Online To Your Location *------------------------------------------*/ACMD(recallall){ struct map_session_data* pl_sd; struct s_mapiterator* iter; int count; memset(atcmd_output, '0', sizeof(atcmd_output)); if (sd->bl.m >= 0 && map->list[sd->bl.m].flag.nowarpto && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(1032)); // You are not authorized to warp someone to your current map. return false; } count = 0; iter = mapit_getallusers(); for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter) ) { if (sd->status.account_id != pl_sd->status.account_id && pc_get_group_level(sd) >= pc_get_group_level(pl_sd)) { if (pl_sd->bl.m == sd->bl.m && pl_sd->bl.x == sd->bl.x && pl_sd->bl.y == sd->bl.y) continue; // Don't waste time warping the character to the same place. if (pl_sd->bl.m >= 0 && map->list[pl_sd->bl.m].flag.nowarp && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) count++; else { if (pc_isdead(pl_sd)) { //Wake them up pc->setstand(pl_sd); pc->setrestartvalue(pl_sd,1); } pc->setpos(pl_sd, sd->mapindex, sd->bl.x, sd->bl.y, CLR_RESPAWN); } } } mapit->free(iter); clif->message(fd, msg_txt(92)); // All characters recalled! if (count) { sprintf(atcmd_output, msg_txt(1033), count); // Because you are not authorized to warp from some maps, %d player(s) have not been recalled. clif->message(fd, atcmd_output); } return true;} Change line 3343 from: if (sd->status.account_id != pl_sd->status.account_id && pc_get_group_level(sd) >= pc_get_group_level(pl_sd)) { to: if (sd->status.account_id != pl_sd->status.account_id && pc_get_group_level(sd) >= pc_get_group_level(pl_sd) && !sd->state.autotrade) { Then recompile (or make a plugin that overloads it). Haven't tested but should work. This way, you won't recall anyone on autotrade state. P.S.: Angelmelody's answer works too, but I didn't like this one because this makes you deal with it by a big workload and will make you compile at least the plugins and create a script from scratch; my answer is a 1-line edit or just making a plugin. Much simpler ;P
  5. You mean in item_group.conf? That repeat_count is the number of entries of that item in the group, which affects its relative (not absolute) probability of getting obtained. For example, a item with a repeat_count of 2 has twice the odds of being obtained than another with 1 (or nothing) as value, or half the odds when compared to another item which has this value set to 4.
  6. I think you can do that by attaching it with the attachrid script command, but since navigation control is only available through mes to the best of my knowledge, you would still have to use mes on the character.
  7. Crie uma nova zona restringida. Você pode criar uma nova zona si necessário (eu nunca tentei de criar mais que apenas una). Adicione os mapas arriba na nova zona restringida: mapa mapflag restricted 8 Leia atentamente o texto de db/item_noequip.txt: // The equipment/items/cards restriction file// here you define which items may not be used at PvP / GvG// format: <item id>,<mode>// mode// 1 - restricted in normal maps// 2 - restricted in PVP// 4 - restricted in GVG// 8 - restricted in Battlegrounds// Restricted zones - they're configured by 'restricted <number>' mapflag// 32 - restricted in zone 1// 64 - restricted in zone 2// 128 - restricted in zone 3// 256 - restricted in zone 4// 512 - restricted in zone 5// 1024 - restricted in zone 6// 2048 - restricted in zone 7 Você pode adicionar a seguinte linha se quiser para esclarecer: // 4096 - restrito em zona 8 Adicione ao final do arquivo: // Zona 8 - Custon20027,4096 //Greed Scroll E pronto. P.E.: Se issos são tudos os mapas de GvG que você usa no seu servidor não é necessario adicionar uma nova zona, somente restrinja o modo 4 (GvG).
  8. You can also use these player-based variables to know about the weight of the player: Weight - Amount of weight the character currently carries. Display as in Weight/10.MaxWeight - Maximum weight the character can carry.
  9. Please elaborate on "these stuffs". I thought your question was already answered by Angelmelody...
  10. Yes, to the best of my knowledge.
  11. Whops, eu errei o mob id, sua id é 1401, desculpe. Para dar delay ao item você tem a opção no item dB, mas eu penso a sua versão de Hercules tem alguns meses. Adicione o delay no db/re/item_delay.txt nesse caso
  12. (Utilize a pasta db/re para servidores renovaçao e db/pre-re para pré-renovaçao. Eu utilizarei a pasta db/re como exemplo) Abra o seu arquivo mob_db.txt e procure o mob Shinobi: // Monster Database//// Structure of Database :// ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper// Note: Keep the Sprite_Name field as it is in the game client.(...)1401,SHINOBI,Shinobi,Shinobi,95,8000,1,1691,1902,2,441,492,49,45,71,70,55,30,69,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,7156,5335,2337,2,6214,700,2654,100,2336,1,7157,2000,13013,5,0,0,0,0,4230,1 Também procure um Mob ID livre (sem uso). Ele será o Mob ID que utilizaremos, por exemplo 2500 (Issa ID é temporariamente não utilizada no emulador). Colaremos no arquivo db/mob_db2.txt mudando a Mob ID e o Sprite_Name (Eu mudarei Sprite_name para SHINOBI_CUSTON como exemplo). Eu recomendo eliminar os drops e modificar os parâmetros a seu gosto, mas somente mudare o Mob ID e Sprite_name. 2500,SHINOBI_CUSTON,Shinobi,Shinobi,95,8000,1,1691,1902,2,441,492,49,45,71,70,55,30,69,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,7156,5335,2337,2,6214,700,2654,100,2336,1,7157,2000,13013,5,0,0,0,0,4230,1 Para evitar erros no cliente devido a sprite inexistente, devemos adicionar dados para fazer que o cliente creia que o novo mob é SHINOBI. Adicione o seguinte no db/mob_avail.txt: 2500,1501 Faltam as skills: procure elas no SHINOBI originário mob_skill_db.txt (ID# 1501) e cole no db/mob_skill_db2.txt, mudando a ID pela a nova Mob ID: 2500. E pronto.
  13. Você pode descarregar o kRO e seu cliente (mais os arquivos do servidor privado) funcionará perfeitamente, ele somente estará em coreano.
  14. Whops, then it's actually a client side one. Try with a fresh client and then apply server's patch? P.S.: Moving back, sorry.
  15. Bom. O client-side é fornecido pelo Gravity, e os servidores privados sem modificações do cliente devem usa-lo. O que tem em comum é o que não podem desenvolver-se ;P
  16. Se não me engano, o client-side é universal para tudos os emuladores. Se ele é corretamente montado deverá funcionar sem problema no eAthena, rAthena, Hercules ou qualquer outro contanto que os pacotes estiverem no emulador e o PACKETVER corretamente configurado.
  17. All of the new item features and restrictions have been merged in our new item_db.conf (example RE file). Check the trade entries: /****************************************************************************** ************* Entry structure ************************************************ ******************************************************************************{ // =================== Mandatory fields =============================== Id: ID (int) AegisName: "Aegis_Name" (string) Name: "Item Name" (string) // =================== Optional fields ================================ Type: Item Type (int, defaults to 3 = etc item) Buy: Buy Price (int, defaults to Sell * 2) Sell: Sell Price (int, defaults to Buy / 2) Weight: Item Weight (int, defaults to 0) Atk: Attack (int, defaults to 0) Matk: Magical Attack (int, defaults to 0, ignored in pre-re) Def: Defense (int, defaults to 0) Range: Attack Range (int, defaults to 0) Slots: Slots (int, defaults to 0) Job: Job mask (int, defaults to all jobs = 0xFFFFFFFF) Upper: Upper mask (int, defaults to any = 0x3f) Gender: Gender (int, defaults to both = 2) Loc: Equip location (int, required value for equipment) WeaponLv: Weapon Level (int, defaults to 0) EquipLv: Equip required level (int, defaults to 0) EquipLv: [min, max] (alternative syntax with min / max level) Refine: Refineable (boolean, defaults to true) View: View ID (int, defaults to 0) BindOnEquip: true/false (boolean, defaults to false) BuyingStore: true/false (boolean, defaults to false) Delay: Delay to use item (int, defaults to 0) Trade: { (defaults to no restrictions) override: GroupID (int, defaults to 100) nodrop: true/false (boolean, defaults to false) notrade: true/false (boolean, defaults to false) partneroverride: true/false (boolean, defaults to false) noselltonpc: true/false (boolean, defaults to false) nocart: true/false (boolean, defaults to false) nostorage: true/false (boolean, defaults to false) nogstorage: true/false (boolean, defaults to false) nomail: true/false (boolean, defaults to false) noauction: true/false (boolean, defaults to false) } Nouse: { (defaults to no restrictions) override: GroupID (int, defaults to 100) sitting: true/false (boolean, defaults to false) } Stack: [amount, type] (int, defaults to 0) Sprite: SpriteID (int, defaults to 0) Script: <" Script (it can be multi-line) "> OnEquipScript: <" OnEquip Script (can also be multi-line) "> OnUnequipScript: <" OnUnequip Script (can also be multi-line) ">},******************************************************************************/
  18. Seems like a PACKETVER issue in mmo.h Moving to general server support since it's the proper place.
  19. By default, all WoE castles are active when not occupied by any guild.
  20. Creo que busca algo como esto: bonus bNoArrowConsumption, 0; Aunque no estoy seguro...
  21. You can merge all the GRFs you want (just edit DATA.INI if available; if not available then you can't), but you can't rename most of the files there without getting client errors. I'm almost certain you can safely rename anything if you recover the original name prior to using. Not good on clientside myself, but these are pretty basic questions. Nobody will get angry with you if you just searched without success and are looking to learn .
  22. Thanks for finding the source. I tried and it really doesnt count the MVP. This trick is neat when want to change MOB RATE. Thanks! Strange enough, it happens for monsters that spawn on an amount of just ONE. It doesn't mind if it's a MvP (usually spawned in an unique amount), or mobs that spawn in a fixed cell (which have their dedicated monster spawn just for them, 1 single mobspawn). As it is now, it would count the MvP if you made 2 of them appear on the same map, by the same monster spawn top-level command. Would like to know if this could be considered as an ancient bug, but have no means of knowing that.
  23. I think it doesn't since mobs that are summoned by an amount of only 1 don't get affected by this conf value: src/map/npc.c, line 3517 if (mobspawn.num > 1 && battle_config.mob_count_rate != 100) { if ((mobspawn.num = mobspawn.num * battle_config.mob_count_rate / 100) < 1) mobspawn.num = 1; }
×
×
  • Create New...

Important Information

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