Jump to content

ItsFree

Members
  • Posts

    121
  • Joined

  • Last visited

  • Days Won

    1

ItsFree last won the day on September 2 2017

ItsFree had the most liked content!

1 Follower

Profile Information

Recent Profile Visitors

1,760 profile views

ItsFree's Achievements

Santa Poring

Santa Poring (3/15)

  • First Post
  • Collaborator Rare
  • Reacting Well Rare
  • Dedicated
  • Conversation Starter

Recent Badges

7

Reputation

1

Community Answers

  1. como tal una guia en español escrita y actualizada no hay, todas estan en ingles en todo caso, es solo seguir la logica de los videos y editar y probar, en lo que respecta a items como headgears y eso... para item deberas enfocarte en 3 cosas: 1.- Client Side: en la carpeta de System dentro de tu cliente (donde esta el Grf, Emblem, System, ETC) el archivo llamado.... iteminfo.lua Ejemplo: Este sirve para Asignar descripciones y "vincular" el item_db con el sprite, tambien es importante que pongas el numero de slots conforme a como lo pondras, ya que si pones 0 aqui y en el item_db pones 1, no se veran visualmente los slots asi los tenga. [60607] = { unidentifiedDisplayName = "Red Angel Wings", unidentifiedResourceName = "Red_Angel_Wings", unidentifiedDescriptionName = { "" }, identifiedDisplayName = "Red Angel Wings", identifiedResourceName = "Red_Angel_Wings", identifiedDescriptionName = { "^FF0000Costume Only^000000.", "_______________________", "^0000CCType:^000000 Headgear", "^0000CCDefense:^000000 0", "^0000CCPosition:^000000 Low", "^0000CCWeight:^000000 10", "^0000CCArmor Level:^000000 1", "^0000CCRefineable:^000000 No", "_______________________", "^0000CCRequirement:^000000", "All classes" }, slotCount = 0, ClassNum = 6607, costume = true } 2.- Emulador Side: item_db.yml Ejemplo: En este sirve para asignar al objeto dentro del juego una ID, y sus posibles efectos (en el caso que no quieres que sea Costume borra 'Costume_' y te permitira alojarlo en Low Headgear, ya si desear Mid o Top, solo es seguir el patron) - Id: 60607 AegisName: Red_Angel_Wings Name: Red Angel Wings Type: Armor Buy: 20 Weight: 1 Defense: 5 Slots: 0 Locations: Costume_Head_Low: true ArmorLevel: 1 Refineable: false View: 6607 Script: | bonus bAllStats,10; 3.- Grf Side: Dentro del Grf ocuparas diversos archivos en diversas ubicaciones, empecemos con las que asignan ID en este caso los .lub \data\luafiles514\lua files\datainfo\accessoryid.lub ACCESSORY_Red_Angel_Wings = 6607 \data\luafiles514\lua files\datainfo\accname.lub [ACCESSORY_IDs.ACCESSORY_Red_Angel_Wings] = "_Red_Angel_Wings" Seguido de... (Normalmente la parte de acomodar sprites es lo mas facil, solo es revisar que los nombres coincidan y cada sprite empiece como corres ponde, recuerda que son .ACT y .SPR por cada carpeta, para el de Drop, el de Male y el de Female) \data\sprite\¾ÆÀÌÅÛ \data\sprite\¾Ç¼¼»ç¸®\¿© \data\sprite\¾Ç¼¼»ç¸®\³² (Respecto a las ilustraciones similar a los sprites, solo asegurate respetar en el caso de item el 24x24 y en collection revisa las dimensiones de algun otro objeto) \data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\collection \data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\item Y con eso podras crear un objeto en tu server, para crear items ETC, Armas o Armaduras, en el caso de Armaduras y ETC/Consumible no ocupas un sprite de Female/Male, unicamente el de drop y como no ocupas Female/Male no ocupas ni el accessoryid.lub ni el accname.lub; Trate de descomprimir algun grf asi sea viejo que tengas y solo es repetir y repetir hasta que eventualmente salga, nadamas procura siempre poner lo que son los nombres oficiales del sprite para evitar errores y ya con el iteminfo y el item_db.yml con esos 2 les asignas un nombre a tu eleccion, asi te evitas el andar editando sprite por sprite a tu antojo y evitas errores. Espero te pueda servir de algo y lamento si no me explique en algo apropiadamente xD Ojo.... mucho cuidado... recomiendo usar Notepad++, mas que nada porque algunos tienden a confundir los TABs por espacios, incluso yo por descuido propio aun asi cometo esos errores y con el Notepad++ es mas facil distinguir esos detalles, ya que asi tenga el mismo rango y uses espacio pero era TAB... desde ahi tu item_db crashea y te saldra ya todo con error, asi que mucho cuidado. PD: a mi tambien me ayudaron asi que.... dejo mi granito de arena PD2: Si cometi error en algun lado, sean libres de corregirme xP
  2. Thanks! tried but got this: whole script: function script RefineScroll { set [email protected]$,""; for( set [email protected],1; [email protected] = 8; set [email protected],[email protected]+1 ) { if( getequipisequiped([email protected]) ) set [email protected]$, [email protected]$ + [email protected]$[[email protected]] + "-" + "[" + getequipname([email protected]) + "]"; set [email protected]$, [email protected]$ + ":"; } set [email protected],select([email protected]$); // ========================= if(!getequipisequiped([email protected])) { getitem 60712,1; dispbottom "You're not wearing anything there that refines!"; close; } //Check if the item is refinable... if(!getequipisenableref([email protected])) { getitem 60712,1; dispbottom "There is no way that this item could be refined!"; close; } //Check refinement if ( getequiprefinerycnt([email protected]) < 8 || getequiprefinerycnt([email protected]) >= 10 ) { getitem 542,1; dispbottom "I can only refine +8 and +9 items!"; close; } successrefitem [email protected]; dispbottom "There you go, Refine Scroll works like a charm :D"; close; }
  3. Go and search for Lapine or Lapine Upgrade that system do that ☺
  4. Hi i would like some help i found this i like it but i would like a edit but im not enough experienced to do by myself yet. Similar like: but what i want... I want same but only work from +8 to +9 i mean NOT from 1~8 to +9, is just from +8 to +9, is possible to make it works? Thanks
  5. i tried with this: [email protected] = getrefine(); if ([email protected]>=6) atcommand "@refine 4 +1"; but got:
  6. Hi, i'd like to ask how could i put the script and it do the next: [email protected] = getrefine(); if ([email protected]>=6) atcommand i've this but after atcommand i tried with: atcommand "@refine 4,+1" but just dont works, what am i doing bad? thanks! what i want? a consume item that let me refine an item but it needs at least X refine level. Thanks!
  7. i used tech's services and still consulting him for some support always friendly and give you an excellent service i really recommend him a word to resume all? just one: trustworthy
  8. Hi, i read this guide: Info about im using: .exe: 2020-04-01 trunk date: 2021-09-18 Also i used this to test: //===== rAthena Script ======================================= //= Sample Random Option Script //===== Description: ========================================= //= Enchant a weapon with a random element option //= to a weapon with no random option. //===== Changelogs: ========================================== //= 1.0 First version. [Secretdataz] //============================================================ prontera,162,195,4 script Elemental Master 1_M_WIZARD,{ disable_items; mes "[Elemental Master]"; mes "I could enchant your weapon with an element."; mes "Are you interested?"; next; if(select("Yes, I'm interested in that.") == 1){ [email protected] = getequipid(EQI_HAND_R); for([email protected] = 0; [email protected] < .sz; [email protected]){ if([email protected] == .alloweditems[[email protected]]) [email protected] = 1; } mes "[Elemental Master]"; if([email protected] == -1) { mes "You are not holding anything in your hand."; close; } else if([email protected]){ mes "Your item can't be enchanted."; close; } else if(getequiprandomoption(EQI_HAND_R,0,ROA_ID)){ mes "Your weapon has already been enchanted."; close; } mes "Do you want to enchant your " + getitemname([email protected]) + " with a random element?"; next; if(select("Yes, proceed.") == 1){ mes "[Elemental Master]"; mes "*mumble mumble*"; progressbar "#00FF00",2; next; setrandomoption(EQI_HAND_R,0,RDMOPT_WEAPON_ATTR_NOTHING + rand(10),0,0); mes "[Elemental Master]"; mes "Here's your weapon"; close; } close; } else{ close; } OnInit: setarray .alloweditems[0],1201,1202; // Add more item ids here .sz = getarraysize(.alloweditems); } the main problem are with these effects: - Id: 232 Option: ADDEXPPERCENT_KILLRACE_NOTHING Script: | bonus2 bExpAddRace,RC_Formless,getrandomoptinfo(ROA_VALUE); - Id: 233 Option: ADDEXPPERCENT_KILLRACE_UNDEAD Script: | bonus2 bExpAddRace,RC_Undead,getrandomoptinfo(ROA_VALUE); - Id: 234 Option: ADDEXPPERCENT_KILLRACE_ANIMAL Script: | bonus2 bExpAddRace,RC_Brute,getrandomoptinfo(ROA_VALUE); - Id: 235 Option: ADDEXPPERCENT_KILLRACE_PLANT Script: | bonus2 bExpAddRace,RC_Plant,getrandomoptinfo(ROA_VALUE); - Id: 236 Option: ADDEXPPERCENT_KILLRACE_INSECT Script: | bonus2 bExpAddRace,RC_Insect,getrandomoptinfo(ROA_VALUE); - Id: 237 Option: ADDEXPPERCENT_KILLRACE_FISHS Script: | bonus2 bExpAddRace,RC_Fish,getrandomoptinfo(ROA_VALUE); - Id: 238 Option: ADDEXPPERCENT_KILLRACE_DEVIL Script: | bonus2 bExpAddRace,RC_Demon,getrandomoptinfo(ROA_VALUE); - Id: 239 Option: ADDEXPPERCENT_KILLRACE_HUMAN Script: | bonus2 bExpAddRace,RC_DemiHuman,getrandomoptinfo(ROA_VALUE); - Id: 240 Option: ADDEXPPERCENT_KILLRACE_ANGEL Script: | bonus2 bExpAddRace,RC_Angel,getrandomoptinfo(ROA_VALUE); - Id: 241 Option: ADDEXPPERCENT_KILLRACE_DRAGON Script: | bonus2 bExpAddRace,RC_Dragon,getrandomoptinfo(ROA_VALUE); - Id: 242 Option: ADDEXPPERCENT_KILLRACE_ALL Script: | bonus2 bExpAddRace,RC_All,getrandomoptinfo(ROA_VALUE); yeah im using .yml the situation is... for some reason the NPC apply the random option sadly for some reason i dont get the random option i get something like this: the AddEXP just dont show and i dont get any error at console, also gonna shared my client files: addrandomoptionnametable.lub: enumvar.lub: csv2yaml.hpp what can i do? Thanks ^^
  9. i had the same situation and i was looking for a solution even with 3rd party services but not a solution yet looks like is not an easy source mod, i really wish you good luck
  10. Hi, as the title say, im trying with a server with max lvl 500, but the Stat Points are nothing, i tried changing the "statpoint.txt" (im using renewall and i changed the "statpoint.txt" from "re" and "import" and still problem) looks like even if i change the statpoint.txt they dont change, i mean i added my own stat points level for level from 1 to 500... but nothing happen, i check on console and no error at this moment im using this... i tried with something easy like this to test but... didnt work i could use a "fix" changing the Stat Reset and adding more Stat Points, but that dont solve the problem the max Stat Points i got for lvl 500, is around 25k~26k what i want is around 75k~85k how coul i fix this ¿? Thx... if need more info please tell me ^^ //statpoint per lvl 30 30 30 30 30 30 30 30 30 40 40 40 40 40 40 40 40 40 50 50 50 50 50 50 50 50 50 50 60 60 60 60 60 60 60 60 60 60 70 70 70 70 70 70 70 70 70 70 80 80 80 80 80 80 80 80 80 80 90 90 90 90 90 90 90 90 90 90 100 100 100 100 100 100 100 100 100 100 110 110 110 110 110 110 110 110 110 110 120 120 120 120 120 120 120 120 120 120 130 130 130 130 130 130 130 130 130 130 140 140 140 140 140 140 140 140 140 140 150 150 150 150 150 150 150 150 150 150 160 160 160 160 160 160 160 160 160 160 170 170 170 170 170 170 170 170 170 170 180 180 180 180 180 180 180 180 180 180 190 190 190 190 190 190 190 190 190 190 200 200 200 200 200 200 200 200 200 200 210 210 210 210 210 210 210 210 210 210 220 220 220 220 220 220 220 220 220 220 230 230 230 230 230 230 230 230 230 230 240 240 240 240 240 240 240 240 240 240 250 250 250 250 250 250 250 250 250 250 260 260 260 260 260 260 260 260 260 260 270 270 270 270 270 270 270 270 270 270 280 280 280 280 280 280 280 280 280 280 290 290 290 290 290 290 290 290 290 290 300 300 300 300 300 300 300 300 300 300 310 310 310 310 310 310 310 310 310 310 320 320 320 320 320 320 320 320 320 320 330 330 330 330 330 330 330 330 330 330 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 PD: Yeah i already set max stat to 500 even i compile and everything but still the problem.
  11. nice i just was looking for something like this and made by you more to be test, i gonna try download and test on some days, Thx! <3
  12. Sounds like Euphy's Card Changer/Trader try find that NPC and chance the reward amount to rand, there alot of mods of that npc maybe you would find something like you want c:
  13. Hi, rAthena Community i've this script is working and everything... but is there a way to add more timers ¿? i mean... i've those 3 maps... but i want that "guild_vs3" as pvp for 4 days, then "guild_vs2" for 3 days and "guild_vs1" for 2 days... how can i do it ¿? // ________________________________________________________ // / \ // | _ _ _ _ | // | | |__ _ __ / \ | |_| |__ ___ _ __ __ _ | // | | '_ \| '__/ _ \| __| '_ \ / _ \ '_ \ / _` | | // | | |_) | | / ___ \ |_| | | | __/ | | | (_| | | // | |_.__/|_|/_/ \_\__|_| |_|\___|_| |_|\__,_| | // | | // | brAthena Script | // |--------------------------------------------------------| // | Name of Script: Rotative PVP | // |--------------------------------------------------------| // | Created by: Neko | // |--------------------------------------------------------| // | Version rA/brA: 1.0 | // |--------------------------------------------------------| // | Description: PVP NPC | // | - An NPC that alternates the current PVP map from time | // | to time, the chosen map for rotation are configured by | // | the administrator in the script. The idea is to have | // | multiple pvp rooms, without having to divide the players| // | of your server among them, this way pvps are more crowded| // | and funnier. | // |--------------------------------------------------------| // | Changelog: | // | 1.0 Script Created [Neko] | // |--------------------------------------------------------| // | - Note: | // | *There is a temporary global variable named [email protected]$ in| // | this NPC, watch out for global variables with the same | // | name in other NPCs of yours. | // |--------------------------------------------------------| // | Any problem with this NPC please report directly to me.| // \________________________________________________________/ - script PvpRotative -1,{ OnInit: // ====================================== // Configurations *********************** // ====================================== // Which map will be on the rotation? setarray .lista$[0],"guild_vs3","guild_vs2","guild_vs1"; // From how much time to time will the maps change? (Standard value 30 minutes/18000000) // WARNING, DO NOT SET VALUES HERE SMALLER THAN 60000 (1 Minute). set .rotatetime, 864000000; // ====================================== set [email protected]$, ""+.lista$[0]+""; set .count, getarraysize(.lista$); for( set [email protected],0; [email protected] < .count; set [email protected], [email protected]+1 ){ sleep .rotatetime-60000; mapannounce ""+.lista$[[email protected]]+"","The PVP map will change in 30 seconds.",8; sleep 30000; mapannounce ""+.lista$[[email protected]]+"","The PVP map will change in 20 seconds.",8; sleep 20000; mapannounce ""+.lista$[[email protected]]+"","The PVP map will change in 10 seconds.",8; sleep 10000; if(.lista$[[email protected]] == .lista$[.count-1]){ mapwarp ""+.lista$[[email protected]]+"",""+.lista$[0]+"",0,0; set [email protected]$, ""+.lista$[0]+""; set [email protected],-1; } else{ mapwarp ""+.lista$[[email protected]]+"",""+.lista$[[email protected]+1]+"",0,0; set [email protected]$, ""+.lista$[[email protected]+1]+""; } } } prontera,153,179,4 script PvP Keeper 459,{ mes "[PvP Keeper]"; mes "Ready for a bloody"; mes "and glorious battle today?"; if (select("Enter PVP. ["+getmapusers(""[email protected]$+"") +"]:I'm out of potions today.") == 1) { warp ""[email protected]$+"",0,0; end; } next; mes "[PvP Keeper]"; mes "Haha!~"; mes "It's okay to be scared!!"; mes "HAHAHAHAHAHA!"; close; } Thx! ^^
  14. Hi rAthena Community, im requesting some help about "edit" the Euphy's Quest Shop... This one: //===== rAthena Script ======================================= //= Euphy's Quest Shop //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.6b //===== Compatible With: ===================================== //= rAthena SVN r16862+ //===== Description: ========================================= //= A dynamic quest shop based on Lunar's, with easier config. //= Includes support for multiple shops & cashpoints. //= Item Preview script by ToastOfDoom. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.2 Added category support. //= 1.3 More options and fixes. //= 1.4 Added debug settings. //= 1.5 Replaced categories with shop IDs. //= 1.6 Added support for purchasing stackables. //= 1.6a Added support for previewing costumes and robes. //= 1.6b Added 'disable_items' command. //============================================================ // Shop NPCs -- supplying no argument displays entire menu. // callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}}; //============================================================ prontera,164,203,6 script Quest Shop#1 998,{ callfunc "qshop"; } // Script Core //============================================================ - script quest_shop -1,{ function Add; function Chk; function Slot; function A_An; OnInit: freeloop(1); // ----------------------------------------------------------- // Basic shop settings. // ----------------------------------------------------------- set .Announce,1; // Announce quest completion? (1: yes / 0: no) set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never) set .ShowID,0; // Show item IDs? (1: yes / 0: no) set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no) set .MaxStack,100; // Max number of quest items purchased at one time. // ----------------------------------------------------------- // Points variable -- optional quest requirement. // setarray .Points$[0],"<variable name>","<display name>"; // ----------------------------------------------------------- setarray .Points$[0],"#CASHPOINTS","Cash Points"; // ----------------------------------------------------------- // Shop IDs -- to add shops, copy dummy data at bottom of file. // setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...}; // ----------------------------------------------------------- setarray .Shops$[1],"Headgears","Weapons","Other"; // ----------------------------------------------------------- // Quest items -- do NOT use a reward item more than once! // Add(<shop ID>,<reward ID>,<reward amount>, // <Zeny cost>,<point cost>, // <required item ID>,<required item amount>{,...}); // ----------------------------------------------------------- Add(1,5022,1,0,0,7086,1,969,10,999,40,1003,50,984,2); Add(1,5032,1,0,0,1059,250,2221,1,2227,1,7063,600); Add(1,5027,1,0,0,2252,1,1036,400,7001,50,4052,1); Add(1,5045,1,0,0,2252,1,1054,450,943,1200); Add(2,1224,1,0,0,7297,30,969,10,999,50,714,10); Add(2,1225,1,0,0,7292,30,969,10,999,50,714,10); Add(3,531,1,3,0,512,1,713,1); Add(3,532,1,3,0,513,1,713,1); Add(3,533,1,3,0,514,1,713,1); Add(3,534,1,3,0,515,1,713,1); // ----------------------------------------------------------- freeloop(0); set .menu$,""; for(set [email protected],1; [email protected]<=getarraysize(.Shops$); set [email protected],[email protected]+1) { set .menu$, .menu$+.Shops$[[email protected]]+":"; npcshopdelitem "qshop"[email protected],909; } end; OnMenu: set [email protected], getarraysize(@i); if ([email protected]) set [email protected], select(.menu$); else if ([email protected] == 1) set [email protected], @i[0]; else { for(set [email protected],0; [email protected]<[email protected]; set [email protected],[email protected]+1) set [email protected]$, [email protected]$+.Shops$[@i[[email protected]]]+":"; set [email protected], @i[select([email protected]$)-1]; } deletearray @i[0],getarraysize(@i); if (.Shops$[[email protected]] == "") { message strcharinfo(0),"An error has occurred."; end; } dispbottom "Select one item at a time."; callshop "qshop"[email protected],1; npcshopattach "qshop"[email protected]; end; OnBuyItem: // [email protected][] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... } setarray [email protected][0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]); copyarray [email protected][3],getd(".q_"[email protected][0]+"[0]"),getarraysize(getd(".q_"[email protected][0])); set [email protected][2],[email protected][1]*[email protected][3]; if ([email protected][2] || [email protected][2] > 30000) { message strcharinfo(0),"You can't purchase that many "+getitemname([email protected][0])+"."; end; } mes "[Quest Shop]"; mes "Reward: ^0055FF"+(([email protected][2] > 1)[email protected][2]+"x ":"")+Slot([email protected][0])+"^000000"; mes "Requirements:"; disable_items; if ([email protected][4]) mes " > "+Chk(Zeny,[email protected][4]*[email protected][1])+([email protected][4]*[email protected][1])+" Zeny^000000"; if ([email protected][5]) mes " > "+Chk(getd(.Points$[0]),[email protected][5]*[email protected][1])+([email protected][5]*[email protected][1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+([email protected][5]*[email protected][1])+")^000000"; if ([email protected][6]) for(set [email protected],6; [email protected]<getarraysize([email protected]); set [email protected],[email protected]+2) mes " > "+Chk(countitem([email protected][[email protected]]),[email protected][[email protected]+1]*[email protected][1])+((.ShowID)?"{"[email protected][[email protected]]+"} ":"")+Slot([email protected][[email protected]])+" ("+countitem([email protected][[email protected]])+"/"+([email protected][[email protected]+1]*[email protected][1])+")^000000"; next; setarray @qe[1], getiteminfo([email protected][0],5), getiteminfo([email protected][0],11); if (@qe[2] > 0 && ((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512) || (@qe[1] & 1024) || (@qe[1] & 2048) || (@qe[1] & 4096) || (@qe[1] & 4) || (@qe[1] & 8192))) set [email protected],1; addtimer 1000, strnpcinfo(0)+"::OnEnd"; while(1) { switch(select(" ~ Purchase ^0055FF"+getitemname([email protected][0])+"^000000:"+(([email protected] && [email protected][7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) { case 1: if (@qe[0]) { mes "[Quest Shop]"; mes "You're missing one or more quest requirements."; close; } if (!checkweight([email protected][0],[email protected][2])) { mes "[Quest Shop]"; mes "^FF0000You need "+((([email protected][2]*getiteminfo([email protected][0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000"; close; } if ([email protected][4]) set Zeny, Zeny-([email protected][4]*[email protected][1]); if ([email protected][5]) setd .Points$[0], getd(.Points$[0])-([email protected][5]*[email protected][1]); if ([email protected][6]) for(set [email protected],6; [email protected]<getarraysize([email protected]); set [email protected],[email protected]+2) delitem [email protected][[email protected]],[email protected][[email protected]+1]*[email protected][1]; getitem [email protected][0],[email protected][2]; if (.Announce) announce strcharinfo(0)+" has created "+(([email protected][2] > 1)[email protected][2]+"x "+getitemname([email protected][0]):A_An(getitemname([email protected][0])))+"!",0; specialeffect2 EF_FLOWERLEAF; close; case 2: setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1; if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2]; else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2]; else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2]; else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2]; break; case 3: close; } } OnEnd: if (@qe[7]) { changelook LOOK_HEAD_BOTTOM, @qe[3]; changelook LOOK_HEAD_TOP, @qe[4]; changelook LOOK_HEAD_MID, @qe[5]; changelook LOOK_ROBE, @qe[6]; } deletearray @qe[0],8; end; function Add { if (getitemname(getarg(1)) == "null") { debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; } setarray [email protected][0],getarg(2),getarg(3),getarg(4); for(set [email protected],5; [email protected]<getargcount(); set [email protected],[email protected]+2) { if (getitemname(getarg([email protected])) == "null") { debugmes "Quest requirement #"+getarg([email protected])+" invalid (skipped)."; return; } else setarray [email protected][[email protected]],getarg([email protected]),getarg([email protected]+1); } copyarray getd(".q_"+getarg(1)+"[0]"),[email protected][0],getarraysize([email protected]); npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0); return; } function Chk { if (getarg(0) < getarg(1)) { set @qe[0],1; return "^FF0000"; } else return "^00FF00"; } function Slot { set [email protected]$,getitemname(getarg(0)); switch(.ShowSlot) { case 1: if (!getitemslots(getarg(0))) return [email protected]$; case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return [email protected]$+" ["+getitemslots(getarg(0))+"]"; default: return [email protected]$; } } function A_An { setarray [email protected]$[0],"a","e","i","o","u"; set [email protected]$, "_"+getarg(0); for(set [email protected],0; [email protected]<5; set [email protected],[email protected]+1) if (compare([email protected]$,"_"[email protected]$[[email protected]])) return "an "+getarg(0); return "a "+getarg(0); } } function script qshop { deletearray @i[0],getarraysize(@i); for(set [email protected],0; [email protected]<getargcount(); set [email protected],[email protected]+1) set @i[[email protected]],getarg([email protected]); doevent "quest_shop::OnMenu"; end; } // Dummy shop data -- copy as needed. //============================================================ - shop qshop1 -1,909:-1 - shop qshop2 -1,909:-1 - shop qshop3 -1,909:-1 - shop qshop4 -1,909:-1 - shop qshop5 -1,909:-1 what i want is add a "cool down/delay" of creation for each quest, what i mean ¿? for example... if i wanna create a Valkyrian Armor, i'll need some items... but after i deliver the items i've to wait 60~120 minutes i mean something like "come on 120 minutes" the npc will tell me or something like that... even can count the minutes if the character log out but once i accept to create 1 quest, i cant accept a new one only after i get the stuff im already waiting... i found a similar script well i guess... This NPC is a warpear with delay i want something like that but i've wait the time to get the item im thinking on Euphy's Quest Shop because usually is the one the people use as base, if have a better NPC to do this i'll accept c: the basic idea is that, complete the quest but have to wait 120 minutes to claim the quest, if i click the npc it will tell me something like "is not ready yet" and only can do other quest after complete the last (wait those 120 minutes and get the quest) if need more information pls tell me to try to explain better.... i gonna try find more examples like these PD: i saw this once on a server some years ago so i guess is still possible ><
  15. oh seeing on that perspective ok now i get it (yeah i know maths... sometimes i just thinks would be more hard but now i see not, ok now i get it, thx!
×
×
  • Create New...

Important Information

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