Jump to content

Rizta

Members
  • Posts

    109
  • Joined

  • Last visited

  • Days Won

    1

Rizta last won the day on October 19 2018

Rizta had the most liked content!

Profile Information

  • Gender
    Male
  • Server
    SurviveRO

Recent Profile Visitors

2119 profile views

Rizta's Achievements

Poring

Poring (1/15)

5

Reputation

3

Community Answers

  1. Hi! Im new at source and dont want to mess everything up so, i would ask for someone more experienced than me where i can: 1. modifiy skill venom splasher to be casted em Boss monster? (or every monster with status immune mode) 2. give weapon element to skills like Shield Chain and Shield Boomerang. 3. increase the damage of critical hits, preferencially with specifiecd weapons if possible. 4. give a damage penalty to a skill if character have much aspd. (more aspd , less damage) This is the current formula of skill that i desired apply the 4. item
  2. Sorry for late response... Im testing this and its all ok for a while xD lets see with a long time testing
  3. Using this based on your last and script ignores the needed mobs values to get % and every give me 1% in each equipped slot. - script Extra_GearConf -1,{ function add_item; OnInit: /* add_item(id, evolution mode, monster id, amount, id...); If you want any monster, use 111. Evolution modes: 1 = Every X numer of mobs (1%). 2 = Experience (1%). */ /* Armor */ add_item(2301, 1, 111,10, 2303, 1, 111,25, 2305, 1, 111, 40, 2307, 1, 111, 65, 2311, 1, 111, 75, 2319, 1, 111,95, 2320, 1, 111,125); /* Adaga */ add_item(13040,1, 111, 1, 1203, 1, 111, 5, 1206, 1, 111, 15, 1209, 1, 111, 25, 1212, 1, 111, 30, 1215, 1, 111, 60, 1218, 1, 111, 70, 1221, 1, 111, 80, 1222, 1, 111, 90, 13048, 1, 111, 150 ); // Adaga /* Shield */ add_item(2101, 1, 111,30, 2103, 1, 111,45, 2105, 1, 111, 70); /* Robe */ add_item(2501, 1, 111,31, 2503, 1, 111,46, 2505, 1, 111, 71); /* Shoes */ add_item(2401, 1, 111,32, 2403, 1, 111,47, 2405, 1, 111, 72); /* Debug */ /* 0 = Won't be evolved automatically. 1 = Will be evolved automatically */ .auto = 1; /* Color of the announces. */ setarray .c$[0],"ffffff", // % of evolution. "03fd20", // Wings evolving. "11f4cc"; // Wings evolved. /* slots to check. EQI_ACC_L (0) - Accessory 1 EQI_ACC_R (1) - Accessory 2 EQI_SHOES (2) - Footgear (shoes, boots) EQI_GARMENT (3) - Garment (mufflers, hoods, manteaux) EQI_HEAD_LOW (4) - Lower Headgear (beards, some masks) EQI_HEAD_MID (5) - Middle Headgear (masks, glasses) EQI_HEAD_TOP (6) - Upper Headgear EQI_ARMOR (7) - Armor (jackets, robes) EQI_HAND_L (8) - Left hand (weapons, shields) EQI_HAND_R (9) - Right hand (weapons) EQI_COSTUME_HEAD_TOP (10) - Upper Costume Headgear EQI_COSTUME_HEAD_MID (11) - Middle Costume Headgear EQI_COSTUME_HEAD_LOW (12) - Lower Costume Headgear EQI_COSTUME_GARMENT (13) - Costume Garment EQI_AMMO (14) - Arrow/Ammunition EQI_SHADOW_ARMOR (15) - Shadow Armor EQI_SHADOW_WEAPON (16) - Shadow Weapon EQI_SHADOW_SHIELD (17) - Shadow Shield EQI_SHADOW_SHOES (18) - Shadow Shoes EQI_SHADOW_ACC_R (19) - Shadow Accessory 2 EQI_SHADOW_ACC_L (20) - Shadow Accessory 1 */ setarray .slots[0], EQI_HAND_L, EQI_ARMOR, EQI_GARMENT, EQI_SHOES; //============================================= end; OnNPCKillEvent: if(@evolve_inuse) end; @evolve_inuse = true; .@size = getarraysize(.slots); while(.@slot < .@size) { .@item_id = getequipid(.slots[.@slot]); .@slot++; if(.@item_id < 0) continue; .@i = 0; while(.@i < .w1) { .@j = 0; .@has_item = false; while(.@j < .w2[.@i] && !.@has_item) { .@item_evo = getd(".it_id_"+.@i+"_"+.@j); if(.@item_id == .@item_evo && getd(".it_id_"+.@i+"_"+(.@j + 1))) { .@mob_id = getd(".it_mob_"+.@i+"_"+.@j); if(killedrid == .@mob_id || .@mob_id < 1001) { if(getd(".it_mode_"+.@i+"_"+.@j) == 1) { .@amount = getd("mobs_"+.@item_id) + 1; setd "mobs_"+.@item_id,.@amount; if(.@amount < getd(".it_amt_"+.@i+"_"+.@j)) continue; setd "mobs_"+.@item_id,0; } else { .@amount = getd("exp_"+.@item_id) + strmobinfo(6,killedrid); setd "exp_"+.@item_id,.@amount; if(.@amount < getd(".it_amt_"+.@i+"_"+.@j)) continue; setd "exp_"+.@item_id,0; } specialeffect2 EF_BEGINSPELL6; sleep2 rand(190,280); specialeffect2 EF_ENERGYDRAIN3; .@percent = getd("evo_"+.@item_id); if(.@percent < 100) { setd "evo_"+.@item_id,++.@percent; announce getitemname(.@item_id)+": "+.@percent+"%.",bc_self,"0x"+.c$[0]; } if(.@percent >= 100 && .auto) { specialeffect2 EF_GUMGANG3; sleep2 500; specialeffect2 EF_BASH3D2; sleep2 300; specialeffect2 EF_BLUEBODY; sleep2 300; announce getitemname(.@item_id)+" está evoluindo...",bc_self,"0x"+.c$[1]; .@k = 3; while(.@k--) { specialeffect2 EF_DOUBLECASTBODY; sleep2 900; } specialeffect2 EF_STORMKICK5; sleep2 200; specialeffect2 EF_BUBBLE_DROP; sleep2 500; if(!.@inventory) { getinventorylist; .@inventory = true; } .@k = inarray(@inventorylist_id,.@item_id); if(.@k != -1) { if(!@inventorylist_expire[.@k]) { setarray .@iteminfo[0],@inventorylist_id[.@k],@inventorylist_refine[.@k],@inventorylist_card1[.@k],@inventorylist_card2[.@k],@inventorylist_card3[.@k],@inventorylist_card4[.@k]; setarray .@roid[0],@inventorylist_option_id1[.@k],@inventorylist_option_id2[.@k],@inventorylist_option_id3[.@k],@inventorylist_option_id4[.@k],@inventorylist_option_id5[.@k]; setarray .@val[0],@inventorylist_option_value1[.@k],@inventorylist_option_value2[.@k],@inventorylist_option_value3[.@k],@inventorylist_option_value4[.@k],@inventorylist_option_value5[.@k]; setarray .@par[0],@inventorylist_option_parameter1[.@k],@inventorylist_option_parameter2[.@k],@inventorylist_option_parameter3[.@k],@inventorylist_option_parameter4[.@k],@inventorylist_option_parameter5[.@k]; .@bound = @inventorylist_bound[.@k]; } else { continue; } .@evo_item = getd(".it_id_"+.@i+"_"+(.@j + 1)); if(getarraysize(.@val)){ delitem3 .@iteminfo[0],1,1,.@iteminfo[1],0,.@iteminfo[2],.@iteminfo[3],.@iteminfo[4],.@iteminfo[5],.@roid,.@val,.@par; if(.@bound) getitembound3 .@evo_item,1,1,.@iteminfo[1],0,.@iteminfo[2],.@iteminfo[3],.@iteminfo[4],.@iteminfo[5],Bound_Account,.@roid,.@val,.@par; else getitem3 .@evo_item,1,1,.@iteminfo[1],0,.@iteminfo[2],.@iteminfo[3],.@iteminfo[4],.@iteminfo[5],.@roid,.@val,.@par; } else { delitem2 .@iteminfo[0],1,1,.@iteminfo[1],0,.@iteminfo[2],.@iteminfo[3],.@iteminfo[4],.@iteminfo[5]; if(.@bound) getitembound2 .@evo_item,1,1,.@iteminfo[1],0,.@iteminfo[2],.@iteminfo[3],.@iteminfo[4],.@iteminfo[5],Bound_Account; else getitem2 .@evo_item,1,1,.@iteminfo[1],0,.@iteminfo[2],.@iteminfo[3],.@iteminfo[4],.@iteminfo[5]; } equip .@evo_item; setd "evo_"+.@item_id,0; announce "Parabéns!! Sua "+getitemname(.@item_id)+" evoluiu para "+getitemname(.@evo_item)+".",bc_self,"0x"+.c$[2]; } .@has_item = true; } else if(.@item_id == .@item_evo) { .@j = .w2[.@i]; } } } .@j++; } .@i++; } } @evolve_inuse = false; end; function add_item { for(.@args = getargcount();.@i < .@args;.@i+= 4) { .@j = .w2[.w1]++; setd ".it_id_"+.w1+"_"+.@j,getarg(.@i); // id. if(getarg(.@i + 4,0) != 0) { setd ".it_mode_"+.w1+"_"+.@j,getarg(.@i + 1); // mode. setd ".it_mob_"+.w1+"_"+.@j,getarg(.@i + 2); // mob id. setd ".it_amt_"+.w1+"_"+.@j,getarg(.@i + 3); // amount. } } .w1++; } }
  4. First script definetely wont work. The second script works almost perfect. The only problem im capable to see is the script cant process % if you kill lots of mobs at same time. Isnt a BIG problem/issue but it is. Btw im thinking and obviously im wrong, but, what do you think of copy script for each slot? If i wanna do that it will need to be different otherwise wont work(variabls problem i think)
  5. it worked but theres a big bug ... all itens share the % and when i kill only 1 mob everything evolve at same time xD
  6. Yeah, ill really need that feature. I can imagine a way to do that but probably ill mess everything xD
  7. Ya, its working but i noticed the script cant evolve more than 1 item at same time (double dagger sin for example or an armor + weapon) lol
  8. its really good. i love it =D Pls do a tutorial! It might help the community ?
  9. Ill test it soon. About characters i think its because UTF-8 / ANSI xD
  10. i fixed this part, and get new error with effect(line 139), and found another one on line 170 (an extra ')'). Script works fine but it really ignore random option. Im trying to do something with it because your version is much better than mine xD Leaving a bit your script i can made it work and now its saves random option, but, the premade order of evolving its not been respected by script. - script Extra_ItemConf -1,{ function add_item; OnInit: /* add_item(id, evolution mode, monster id, amount, id...); If you want any monster, use 111. Evolution modes: 1 = Every X numer of mobs (1%). 2 = Experience (1%). */ /* Adaga */ add_item(13040,1, 111, 1, 1203, 1, 111, 5, 1206, 1, 111, 15, 1209, 1, 111, 25, 1212, 1, 111, 30, 1215, 1, 111, 60, 1218, 1, 111, 70, 1221, 1, 111, 80, 1222, 1, 111, 90, 13048, 1, 111, 150 ); // Adaga /* 1HSword */ add_item(13415,1, 111, 1, 1103, 1, 111, 5, 1106, 1, 111, 15, 1109, 1, 111, 25, 1112, 1, 111, 30, 1115, 1, 111, 60, 1122, 1, 111, 70, 1123, 1, 111, 80, 1126, 1, 111, 90, 1121, 1, 111, 100, 1129, 1, 111, 125, 13422, 1, 111, 150 ); // Espada 1H /* 2HSword */ add_item(1118, 1, 111, 5, 1153, 1, 111, 15, 1156, 1, 111, 25, 1160, 1, 111, 30, 1159, 1, 111, 60, 1163, 1, 111, 70, 1190, 1, 111, 100, 1188, 1, 111, 200 ); // Espada 2H /* 2HAxe */ add_item(1381, 1, 111, 1, 1353, 1, 111, 5, 1356, 1, 111, 15, 1359, 1, 111, 25, 1362, 1, 111, 30, 1388, 1, 111, 100, 1384, 1, 111, 200 ); // Machado 1H /* Maces */ add_item(1545, 1, 111, 1, 1503, 1, 111, 5, 1506, 1, 111, 15, 1509, 1, 111, 25, 1512, 1, 111, 30, 1521, 1, 111, 60, 1515, 1, 111, 70, 1518, 1, 111, 80, 1548, 1, 111, 200 ); // Maces 1H /* Arcos */ add_item(1742, 1, 111, 1, 1703, 1, 111, 5, 1706, 1, 111, 15, 1709, 1, 111, 25, 1712, 1, 111, 30, 1713, 1, 111, 60, 1714, 1, 111, 70, 1735, 1, 111, 80, 18128, 1, 111, 200 ); // Arcos /* Cajados */ add_item(1639, 1, 111, 1, 1603, 1, 111, 5, 1606, 1, 111, 15, 1609, 1, 111, 25, 1612, 1, 111, 30, 1614, 1, 111, 60, 1615, 1, 111, 80, 1636, 1, 111, 100); // Cajados /* 1HSpear */ add_item(1403, 1, 111,10, 1406, 1, 111,15, 1409, 1, 111, 30, 1430, 1, 111, 200); /* 2HSpear */ add_item(1453, 1, 111,20, 1456, 1, 111,30, 1459, 1, 111, 40, 1462, 1, 111, 50, 1465, 1, 111, 70, 1412, 1, 111, 100); /* Knuckles */ add_item(1801, 1, 111,20, 1803, 1, 111,30, 1805, 1, 111, 40, 1809, 1, 111, 50, 1811, 1, 111, 60, 1807, 1, 111, 70, 1814, 1, 111, 80, 1829, 1, 111, 100); /* Violin */ add_item(1901, 1, 111,20, 1903, 1, 111,30, 1905, 1, 111, 40, 1909, 1, 111, 50, 1911, 1, 111, 60, 1907, 1, 111, 80, 1925, 1, 111,100, 1918, 1, 111, 150); /* Whip */ add_item(1950, 1, 111,20, 1952, 1, 111,30, 1954, 1, 111, 40, 1958, 1, 111, 50, 1960, 1, 111, 60, 1958, 1, 111, 80, 1994, 1, 111,100); /* Katar */ add_item(1264, 1, 111,20, 1262, 1, 111,30, 1295, 1, 111, 40, 1250, 1, 111, 50, 1252, 1, 111, 60, 1283, 1, 111, 100); /* Debug */ add_item(2301, 1, 111, 1, 2302, 1, 111, 2); /* 0 = Won't be evolved automatically. 1 = Will be evolved automatically */ .auto = 1; /* Color of the announces. */ setarray .c$[0],"ffffff", // % of evolution. "03fd20", // Wings evolving. "11f4cc"; // Wings evolved. /* slots to check. EQI_ACC_L (0) - Accessory 1 EQI_ACC_R (1) - Accessory 2 EQI_SHOES (2) - Footgear (shoes, boots) EQI_GARMENT (3) - Garment (mufflers, hoods, manteaux) EQI_HEAD_LOW (4) - Lower Headgear (beards, some masks) EQI_HEAD_MID (5) - Middle Headgear (masks, glasses) EQI_HEAD_TOP (6) - Upper Headgear EQI_ARMOR (7) - Armor (jackets, robes) EQI_HAND_L (8) - Left hand (weapons, shields) EQI_HAND_R (9) - Right hand (weapons) EQI_COSTUME_HEAD_TOP (10) - Upper Costume Headgear EQI_COSTUME_HEAD_MID (11) - Middle Costume Headgear EQI_COSTUME_HEAD_LOW (12) - Lower Costume Headgear EQI_COSTUME_GARMENT (13) - Costume Garment EQI_AMMO (14) - Arrow/Ammunition EQI_SHADOW_ARMOR (15) - Shadow Armor EQI_SHADOW_WEAPON (16) - Shadow Weapon EQI_SHADOW_SHIELD (17) - Shadow Shield EQI_SHADOW_SHOES (18) - Shadow Shoes EQI_SHADOW_ACC_R (19) - Shadow Accessory 2 EQI_SHADOW_ACC_L (20) - Shadow Accessory 1 */ setarray .slots[0], /*EQI_HAND_R,*/ EQI_HAND_L, EQI_ARMOR, EQI_SHOES, EQI_GARMENT; //============================================= end; OnNPCKillEvent: if(!@evolving) { // Cache. That old loop on every mob killed... if(@evo_var[0] && isequipped(@evo_var[0])) { .@has_item = true; .@item_id = @evo_var[0]; .@i = @evo_var[1] - 1; .@j = @evo_var[2] - 1; .@slot = @evo_var[3]; .@mob_id = getd(".it_mob_"+.@i+"_"+.@j); if(killedrid != .@mob_id && .@mob_id > 1001) end; } else { .@size = getarraysize(.slots); while(.@slot < .@size && !.@has_item) { .@item_id = getequipid(.slots[.@slot]); .@slot++; if(.@item_id < 0) continue; .@i = 0; while(.@i < .w1 && !.@has_item) { .@j = 0; while(.@j < .w2[.@i] && !.@has_item) { .@item_evo = getd(".it_id_"+.@i+"_"+.@j); if(.@item_id == .@item_evo && getd(".it_id_"+.@i+"_"+(.@j + 1))) { .@mob_id = getd(".it_mob_"+.@i+"_"+.@j); if(killedrid == .@mob_id || .@mob_id < 1001) { .@has_item = true; setarray @evo_var[0],.@item_id,.@i + 1,.@j + 1,.@slot; } } else if(.@item_id == .@item_evo) { end; } if(!.@has_item) .@j++; } if(!.@has_item) .@i++; } } } if(.@has_item) { if(getd(".it_mode_"+.@i+"_"+.@j) == 1) { .@amount = getd("mobs_"+.@item_id) + 1; setd "mobs_"+.@item_id,.@amount; if(.@amount < getd(".it_amt_"+.@i+"_"+.@j)) end; setd "mobs_"+.@item_id,0; } else if(getd(".it_mode_"+.@i+"_"+.@j) == 2) { .@amount = getd("exp_"+.@item_id) + strmobinfo(6,killedrid); setd "exp_"+.@item_id,.@amount; if(.@amount < getd(".it_amt_"+.@i+"_"+.@j)) end; setd "exp_"+.@item_id,0; } else { debugmes "Script Items_Evo, error: wrong mode."; end; } specialeffect2 EF_BEGINSPELL6; sleep2 rand(190,280); //specia?leffect2 EF_ENERGYDRAIN3; .@percent = getd("evo_"+.@item_id); if(.@percent < 100) { setd "evo_"+.@item_id,++.@percent; announce getitemname(.@item_id)+": "+.@percent+"%.",bc_self,"0x"+.c$[0]; } if(.@percent >= 100 && .auto && !@evolving) { @evolving = true; specialeffect2 EF_GUMGANG3; sleep2 500; specialeffect2 EF_BASH3D2; sleep2 300; specialeffect2 EF_BLUEBODY; sleep2 300; announce getitemname(.@item_id)+" está evoluindo...",bc_self,"0x"+.c$[1]; .@k = 3; while(.@k--) { specialeffect2 EF_DOUBLECASTBODY; sleep2 900; } specialeffect2 EF_STORMKICK5; sleep2 200; specialeffect2 EF_BUBBLE_DROP; sleep2 500; .@slot--; //setarray .@card[1],getequipcardid(.slots[.@slot],0),getequipcardid(.slots[.@slot],1),getequipcardid(.slots[.@slot],2),getequipcardid(.slots[.@slot],3); //.@refine = getequiprefinerycnt(.slots[.@slot]); //if(getiteminfo(.@item_id,2) == IT_WEAPON) { // for(.@k = 0;.@k < 5;.@k++) { // .@option_id[.@k] = getequiprandomoption(.slots[.@slot],.@k,ROA_ID); // .@option_val[.@k] = getequiprandomoption(.slots[.@slot],.@k,ROA_VAL); // if(!.@has_option && .@option_val[.@k]) // .@has_option = true; // } //} .@part = .slots[.@slot]; .@OriId = getequipid(.@part); getinventorylist; freeloop 1; for(.@i = 0; .@i < @inventorylist_count; .@i++){ if(@inventorylist_equip[.@i] && @inventorylist_id[.@i] == .@OriId){ if(!@inventorylist_expire[.@i]){ setarray .@iteminfo,@inventorylist_id[.@i],@inventorylist_refine[.@i],@inventorylist_card1[.@i],@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i]; setarray .@roid,@inventorylist_option_id1[.@i],@inventorylist_option_id2[.@i],@inventorylist_option_id3[.@i],@inventorylist_option_id4[.@i],@inventorylist_option_id5[.@i]; setarray .@val,@inventorylist_option_value1[.@i],@inventorylist_option_value2[.@i],@inventorylist_option_value3[.@i],@inventorylist_option_value4[.@i],@inventorylist_option_value5[.@i]; setarray .@par,@inventorylist_option_parameter1[.@i],@inventorylist_option_parameter2[.@i],@inventorylist_option_parameter3[.@i],@inventorylist_option_parameter4[.@i],@inventorylist_option_parameter5[.@i]; .@bound = @inventorylist_bound[.@i]; break; } else end; } } freeloop 0; .@evo_item = getd(".it_id_"+.@i+"_"+(.@j + 1)); //delequip .slots[.@slot]; //if(.@has_option) if(getarraysize(.@val)){ delitem3 .@iteminfo[0],1,1,.@iteminfo[1],0,.@iteminfo[2],.@iteminfo[3],.@iteminfo[4],.@iteminfo[5],.@roid,.@val,.@par; if(.@bound) getitembound3 .@evo_item,1,1,.@iteminfo[1],0,.@iteminfo[2],.@iteminfo[3],.@iteminfo[4],.@iteminfo[5],Bound_Account,.@roid,.@val,.@par; else getitem3 .@evo_item,1,1,.@iteminfo[1],0,.@iteminfo[2],.@iteminfo[3],.@iteminfo[4],.@iteminfo[5],.@roid,.@val,.@par; } else { delitem2 .@iteminfo[0],1,1,.@iteminfo[1],0,.@iteminfo[2],.@iteminfo[3],.@iteminfo[4],.@iteminfo[5]; if(.@bound) getitembound2 .@evo_item,1,1,.@iteminfo[1],0,.@iteminfo[2],.@iteminfo[3],.@iteminfo[4],.@iteminfo[5],Bound_Account; else getitem2 .@evo_item,1,1,.@iteminfo[1],0,.@iteminfo[2],.@iteminfo[3],.@iteminfo[4],.@iteminfo[5]; } // if(getarraysize(.@val)) // getitem3 .@evo_item,1,true,.@refine,false,.@card[1],.@card[2],.@card[3],.@card[4],.@roid,.@val,.@par; //.@option_id,.@option_val,0; // else // getitem2 .@evo_item,1,true,.@refine,false,.@card[1],.@card[2],.@card[3],.@card[4]; equip .@evo_item; setd "evo_"+.@item_id,0; deletearray @evo_var; announce "Parabéns!! Sua "+getitemname(.@item_id)+" evoluiu para "+getitemname(.@evo_item)+".",bc_self,"0x"+.c$[2]; @evolving = false; } } } end; function add_item { for(.@args = getargcount();.@i < .@args;.@i+= 4) { .@j = .w2[.w1]++; setd ".it_id_"+.w1+"_"+.@j,getarg(.@i); // id. if(getarg(.@i + 4,0) != 0) { setd ".it_mode_"+.w1+"_"+.@j,getarg(.@i + 1); // mode. setd ".it_mob_"+.w1+"_"+.@j,getarg(.@i + 2); // mob id. setd ".it_amt_"+.w1+"_"+.@j,getarg(.@i + 3); // amount. } } .w1++; } }
  11. as i said, theres some limitations of what you can do... one possible solution is create another conditional(in the example i give above, simple add an ELSE) that restore the item if user dont match the requirements to receive the bonus, using getitem on script.
  12. im not sure but i think youll need lots of client and source edits xD
×
×
  • Create New...