-
Posts
562 -
Joined
-
Last visited
-
Days Won
7
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by iraciz
-
-
On 4/4/2014 at 7:26 AM, Cydh said:
src/map/skill.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/map/skill.c b/src/map/skill.c index ad08fb3..23db870 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -15595,6 +15595,7 @@ void skill_weaponrefine (struct map_session_data *sd, int idx) pc_unequipitem(sd,idx,3); } clif_delitem(sd,idx,1,3); + clif_additem(sd,idx,1,0); clif_upgrademessage(sd->fd, 0, item->nameid); clif_inventorylist(sd); clif_refine(sd->fd,0,idx,item->refine);
this is gold, I still use this solution nowadays
-
-
Hello I implemented this code to broadcast mvp respawns.
scr/map/mob.cpp
md->spawn_timer = INVALID_TIMER; mob_spawn(md);
Under this line I placed:
// if monster boss -> do announce if( md->spawn->state.boss ) { char message[128]; sprintf(message, "[MVP Spawn]: %s has been spawned on %s map.", md->name, map_mapid2mapname(md->spawn->m)); clif_broadcast(&md->bl, message, strlen(message) + 1, BC_DEFAULT, ALL_CLIENT); } } return 0;
It's working fine, MvP Respawns are being broadcasted, but now may I now is there any way to get rid of some console warnings?
1>mob.cpp 1>C:\Users\mario\Desktop\rAthena \src\map\mob.cpp(1049,80): warning C4267: 'argumento': conversión de 'size_t' a 'int'; posible pérdida de datos 1>C:\Users\mario\Desktop\rAthena \src\map\mob.cpp(2839,57): warning C4267: 'argumento': conversión de 'size_t' a 'int'; posible pérdida de datos 1>C:\Users\mario\Desktop\rAthena \src\map\mob.cpp(3009,58): warning C4267: 'argumento': conversión de 'size_t' a 'int'; posible pérdida de datos 1>C:\Users\mario\Desktop\rAthena \src\map\mob.cpp(6410,50): warning C4267: 'inicializando': conversión de 'size_t' a 'int'; posible pérdida de datos 1>C:\Users\mario\Desktop\rAthena \src\map\mob.cpp(6411,65): warning C4267: 'inicializando': conversión de 'size_t' a 'int'; posible pérdida de datos
Can you guys lend me a hand?
-
-
Client and other players experience crashing everytime this script runs
- Id: 18856 AegisName: W_King_Tiger_Doll_Hat Name: W King Tiger Doll Hat Type: Armor Buy: 10 Defense: 10 Locations: Head_Top: true ArmorLevel: 1 EquipLevelMin: 1 Refineable: true View: 973 Script: | bonus bStr,2; bonus bDex,2; bonus2 bAddRace,RC_Brute,10; bonus2 bAddRace,RC_Player_Doram,10; .@r = getrefine(); autobonus "{ bonus2 bSPLossRate,5,1000; bonus bBaseAtk,25*max(1,getrefine()); }",3*.@r,3000,BF_NORMAL,"{ active_transform 1115,3000; specialeffect2 EF_POTION_BERSERK; showscript \"Traaaansformation-!! Eddga form!!\"; }"; autobonus2 "{ bonus2 bSPLossRate,5,1000; bonus bBaseAtk,25*max(1,getrefine()); }",.@r,3000,BF_NORMAL,"{ active_transform 1115,3000; specialeffect2 EF_POTION_BERSERK; showscript \"Traaaansformation-!! Eddga form!!\"; }";
or
- Id: 11592 AegisName: Trance_Candy_R Name: Trans Candy Red Type: Healing Buy: 20 Weight: 30 Script: | itemheal 45,0; transform 1507,600000,SC_MTF_MHP,20; specialeffect2 EF_CLOAKING; showscript "Trans-Form-!! Bloody Murderer Fo-rm!!";
There is no console error or .exe crash log to identify the source. any idea?
-
Sorry for the necro posting!
both skills hit twice, but not as I would like, showing the 2 hits with yellow numbers.
I got this in scr/map/battle.c
Line
switch (skill_id) { case RK_WINDCUTTER: if (sd && sd->weapontype1 == W_2HSWORD) wd->div_ = 2; break;
add:
case RG_BACKSTAP: skill_lv = pc_checkskill(sd, TF_DOUBLE); if (skill_lv > 0) { if(rnd()%100 < (7 * skill_lv)) { wd->div_++; } } break; case RG_RAID: skill_lv = pc_checkskill(sd, TF_DOUBLE); if (skill_lv > 0) { if(rnd()%100 < (7 * skill_lv)) { wd->div_++; } } break;
It work as I wish, both skills are taking tf_double chances to hit double, bad is that! It does it with any weapon or even barehanded.. I would like to make it work with daggerclass only!
-
Thankyou!
-
yes this is gold.
I was wondering if this could come with a NPC to make the players know the actual bonus map.
-
May I ask for this please?
DOTD (Dungeon Of The Day): Every day there will be Dungeon maps with increased experience (+10%). Even those summoned by branches inside the map from a random list. PRE-RENEWAL
-
atcommand "@useskill 151 1 self"
-
Good day,please help me! Bindatcommands are not working in the item scripts.
TXT Example:
40574,Moonlight Bell,Moonbell,11,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ specialeffect2 549; soundeffectall "moonlight_move.wav",0; atcommand "@bonus"; },{},{}
@bonus is a custom npc bind atcommand that I use to apply random options to the gear.
Oncommand only works with typing or talking to the NPC, but I want activate the script by using the item above.
What can I do?
-
-
-
Good day, This is [Euphy] rathena custom npc default warper.
Any way to reset last warp map and coordinates OnPCLogOutEvent
if (lastwarp$ == "") message strcharinfo(0),"You haven't warped anywhere yet. Last warp resets with logout."; else warp lastwarp$,lastwarpx,lastwarpy; end;
function Go { set lastwarp$, getarg(0); set lastwarpx, getarg(1,0); set lastwarpy, getarg(2,0); warp getarg(0),getarg(1,0),getarg(2,0); end; }
Help please
-
-
dear Slammer!
Something went wrong, the item still restores sp without the gear equipped.
515,Carrot,Carrot,0,15,,20,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(18,20),0; if (getequipid(EQI_HEAD_LOW) == 18683) specialeffect2 332; if (getequipid(EQI_HEAD_LOW) == 18683) itemheal 0,rand(2,4); },{},{}
But I solved it by individualizing the effects separatedly.
-
Good morning dear community, for me it is a pleasure to return to rathena.
This time I ask for help with the isequiped check, I am working in a low rate server without sp consumables, and I came up with the idea of creating an additional bonus for the lower item id: carrot in mout "https://ratemyserver.net/index.php?page=re_item_db&item_id=18683".
I want this item, while being equipped on lower head, to cause carrots to restore sp when consumed.
I made the function already:
515,Carrot,Carrot,0,15,,20,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(18,20),0; callfunc "zanabria"; },{},{}
Now I need help in this part:
function script zanabria {
if (isequipped(18683)) specialeffect2 332;
itemheal rand(0,0),rand(2,4);
end;
}This is the aditional sp restore effect while equiped, but I NEED help here for the else exception, because it sill restoring sp withput the equiped carrot in mouth.
-
On 12/27/2021 at 10:35 PM, danteviscount71 said:
hello everyone, im newbie in this forum also newbie about programing, can some one help me how to add translation onto my ragnarok file? its need a program or i just need to copy and paste? thanks everyone before
download tortoise svn
create folder: ROenglishREleft click to that folder, Svn checkout
paste to the url box:
https://github.com/llchrisll/ROenglishRE
Ok, and download.add those files "the Data folder" into a custom grf, with your clientinfo. repack, and run the exe.
The system folder is for your client folder, not to the grf.
-
For weapons, armor, garment, shields, footgear and accessories.
with a bind atcommand like @bonus?
-
On 6/23/2020 at 5:50 AM, Akkarin said:
This is a great guide; though since we use GIT and not SVN it'd make sense to use TortioseGIT.
tortoise.git forces to download certain exes that many new people could'nt understand. Even I experiencee cerntain complications using the .git.
-
Almost 2 years off.. what's new regarding rAthena?
Any stable client? With the visual effects for the robes? 2021...
How difficult now? Is to edit mob and items.yml? Must be a lot of pain to add new stuff.
What about the battlegrounds? Are 100% functional?
And the 4th jobs, skills, gears, data, pallettes, is everything implemented?
I'm thinking about open a new server. After several years off, I'm a little rusty.
-
Thank you, I was looking for this.
- 1
-
I need to revert some changes and make arow shower, charge arrow, bowling bash or phantasmic arrow, knock off players from Pneuma
In battle.c I applied the previous code
if( sc->data[SC_PNEUMA] && (d->flag&(BF_MAGIC|BF_LONG)) == BF_LONG ) { d->dmg_lv = ATK_BLOCK; skill_blown(src,target,skill_get_blewcount(skill_id,skill_lv),-1,0); return false; } return true; }
But when compiling, I'm having this error:
1>------ Operación Compilar iniciada: proyecto: map-server, configuración: Release Win32 ------
1>battle.cpp
1>C:\Users\Mario Zicari\Desktop\rAthena\src\map\battle.cpp(1062,69): error C2664: 'short skill_blown(block_list *,block_list *,char,int8,e_skill_blown)': el argumento 5 no puede convertirse de 'int' a 'e_skill_blown'
1>C:\Users\Mario Zicari\Desktop\rAthena\src\map\battle.cpp(1062,68): message : La conversión a tipo de enumeración requiere una conversión explícita (static_cast, conversión de estilo de C o conversión de estilo de función)
1>C:\Users\Mario Zicari\Desktop\rAthena\src\map\skill.hpp(541,7): message : vea la declaración de 'skill_blown'
1>Compilación del proyecto "map-server.vcxproj" terminada -- ERROR.
========== Compilar: 0 correctos, 1 incorrectos, 8 actualizados, 0 omitidos ==========Please, could you help me with the code to work with no errors?
-
Please try mine instead and compile in release mode
attcommand.c
/*========================================== * @whosell - List who is vending the item (amount, price, and location). * revamped by VoidLess, original by zephyrus_cr *------------------------------------------*/ ACMD_FUNC(whosell) { char item_name[100]; int item_id = 0, j, count = 0, sat_num = 0; int s_type = 1; // search bitmask: 0-name,1-id, 2-card, 4-refine int refine = 0,card_id = 0; bool flag = 1; // place dot on the minimap? struct map_session_data* pl_sd; struct s_mapiterator* iter; unsigned int MinPrice = battle_config.vending_max_value, MaxPrice = 0; struct item_data *item_data; static char atcmd_output[CHAT_SIZE_MAX]; if (!*message) { clif_displaymessage(fd, "Use: @whosell <item_id> or @whosell <name>"); return -1; } if (sscanf(message, "+%d %d[%d]", &refine, &item_id, &card_id) == 3){ s_type = 1+2+4; } else if (sscanf(message, "+%d %d", &refine, &item_id) == 2){ s_type = 1+4; } else if (sscanf(message, "+%d [%d]", &refine, &card_id) == 2){ s_type = 2+4; } else if (sscanf(message, "%d[%d]", &item_id, &card_id) == 2){ s_type = 1+2; } else if (sscanf(message, "[%d]", &card_id) == 1){ s_type = 2; } else if (sscanf(message, "+%d", &refine) == 1){ s_type = 4; } else if (sscanf(message, "%d", &item_id) == 1 && item_id == atoi(message)){ s_type = 1; } else if (sscanf(message, "%99[^\n]", item_name) == 1){ s_type = 1; if ((item_data = itemdb_searchname(item_name)) == NULL){ clif_displaymessage(fd, "Not found item with this name"); return -1; } item_id = item_data->nameid; } else { clif_displaymessage(fd, "Use: @whosell <item_id> or @whosell <name>"); return -1; } //check card if(s_type & 2 && ((item_data = itemdb_exists(card_id)) == NULL || item_data->type != IT_CARD)){ clif_displaymessage(fd, "Not found a card with than ID"); return -1; } //check item if(s_type & 1 && (item_data = itemdb_exists(item_id)) == NULL){ clif_displaymessage(fd, "Not found an item with than ID"); return -1; } //check refine if(s_type & 4){ if (refine<0 || refine>10){ clif_displaymessage(fd, "Refine out of bounds: 0 - 10"); return -1; } /*if(item_data->type != IT_WEAPON && item_data->type != IT_ARMOR){ clif_displaymessage(fd, "Use refine only with weapon or armor"); return -1; }*/ } iter = mapit_getallusers(); for (pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter)) { if (pl_sd->vender_id ) { // check if player is vending for (j = 0; j < pl_sd->vend_num; j++) { if ((item_data = itemdb_exists(pl_sd->cart.u.items_cart[pl_sd->vending[j].index].nameid)) == NULL) continue; if(s_type & 1 && pl_sd->cart.u.items_cart[pl_sd->vending[j].index].nameid != item_id) continue; if(s_type & 2 && ((item_data->type != IT_ARMOR && item_data->type != IT_WEAPON) || (pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[0] != card_id && pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[1] != card_id && pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[2] != card_id && pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[3] != card_id))) continue; if(s_type & 4 && ((item_data->type != IT_ARMOR && item_data->type != IT_WEAPON) || pl_sd->cart.u.items_cart[pl_sd->vending[j].index].refine != refine)) continue; if(item_data->type == IT_ARMOR) snprintf(atcmd_output, CHAT_SIZE_MAX, "+%d %s[%d] | Price %ud | Amount %d | %s[%d,%d] | %s",pl_sd->cart.u.items_cart[pl_sd->vending[j].index].refine ,item_data->jname ,pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[0] ,pl_sd->vending[j].value ,pl_sd->vending[j].amount ,mapindex_id2name(pl_sd->mapindex) ,pl_sd->bl.x,pl_sd->bl.y ,pl_sd->message); else if(item_data->type == IT_WEAPON) snprintf(atcmd_output, CHAT_SIZE_MAX, "+%d %s[%d,%d,%d,%d] | Price %ud | Amount %d | %s[%d,%d] | %s",pl_sd->cart.u.items_cart[pl_sd->vending[j].index].refine ,item_data->jname ,pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[0] ,pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[1] ,pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[2] ,pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[3] ,pl_sd->vending[j].value ,pl_sd->vending[j].amount ,mapindex_id2name(pl_sd->mapindex) ,pl_sd->bl.x,pl_sd->bl.y ,pl_sd->message); else snprintf(atcmd_output, CHAT_SIZE_MAX, "%s | Price %ud | Amount %d | %s[%d,%d] | %s",item_data->jname ,pl_sd->vending[j].value ,pl_sd->vending[j].amount ,mapindex_id2name(pl_sd->mapindex) ,pl_sd->bl.x, pl_sd->bl.y ,pl_sd->message); if(pl_sd->vending[j].value < MinPrice) MinPrice = pl_sd->vending[j].value; if(pl_sd->vending[j].value > MaxPrice) MaxPrice = pl_sd->vending[j].value; clif_displaymessage(fd, atcmd_output); count++; flag = 1; } if (flag && pl_sd->mapindex == sd->mapindex) { clif_viewpoint(sd, 1, 1, pl_sd->bl.x, pl_sd->bl.y, ++sat_num, 0xFFFFFF); flag = 0; } } } mapit_free(iter); if(count > 0) { snprintf(atcmd_output, CHAT_SIZE_MAX, "================== Found %d entries. ==================", count, MinPrice, MaxPrice); clif_displaymessage(fd, atcmd_output); } else clif_displaymessage(fd, "Nobody is selling it now."); return 0; }
Dont forget to add:
ACMD_DEF(whosell),
Renewal Client data & Hexed 2021-11-03_Ragexe compatible with rAthena
in Client Releases
Posted
Virus detected