Jump to content

Elijah23

Members
  • Posts

    292
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by Elijah23

  1. kulang ka ng isang table sa SQL mo.. yung loginlog na table.. try mo rerun yung SQL script mo..
  2. Hi everyone!.. So I got a map server crash and I don't know what the error is all about.. Here is the error.. Error occured on Saturday, March 10, 2012 at 18:10:06. D:\Trial2\map-server_sql.exe caused a Stack Overflow at location 00530397 in module D:\Trial2\map-server_sql.exe. Registers: eax=00032000 ebx=1448f8a4 ecx=00000000 edx=1090d048 esi=144ee9ec edi=0000019b eip=00530397 esp=0012bdc0 ebp=0012bdc8 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 Call stack: 00530397 D:\Trial2\map-server_sql.exe:00530397 _chkstk f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\chkstk.asm:99 004B440F D:\Trial2\map-server_sql.exe:004B440F run_func d:\trial2\src\map\script.c:3216 004B490B D:\Trial2\map-server_sql.exe:004B490B run_script_main d:\trial2\src\map\script.c:3447 004919DC D:\Trial2\map-server_sql.exe:004919DC npc_script_event d:\trial2\src\map\npc.c:3408 0045033D D:\Trial2\map-server_sql.exe:0045033D clif_parse_LoadEndAck d:\trial2\src\map\clif.c:9128 0045F024 D:\Trial2\map-server_sql.exe:0045F024 clif_parse d:\trial2\src\map\clif.c:15568 00408DBF D:\Trial2\map-server_sql.exe:00408DBF do_sockets d:\trial2\src\common\socket.c:773 00401292 D:\Trial2\map-server_sql.exe:00401292 main d:\trial2\src\common\core.c:256 00525B0F D:\Trial2\map-server_sql.exe:00525B0F __tmainCRTStartup f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c:278 76011174 C:\Windows\system32\kernel32.dll:76011174 BaseThreadInitThunk 77ABB3F5 C:\Windows\SYSTEM32\ntdll.dll:77ABB3F5 RtlInitializeExceptionChain 77ABB3C8 C:\Windows\SYSTEM32\ntdll.dll:77ABB3C8 RtlInitializeExceptionChain I tried looking about the said lines in the source, but i still don't know what is happening.. For example, 004B440F D:\Trial2\map-server_sql.exe:004B440F run_func d:\trial2\src\map\script.c:3216 So I tried looking at script.c line 3216, and what i saw is this.. So anyone could help me regarding this?. xD Thanks in advance..
  3. They take the same hex with their 2nd job..
  4. Already did it and still don't get the difference between VPS and Cloud VPS.. So maybe someone who have experienced using Cloud VPS may give some comments regarding this..
  5. Nice scripts ghost.. But I have a question regarding the pvp script of yours?.. I have use this in all maps... But is it possible to disable it from certain maps?.. Like 3-5 maps?... Thanks..
  6. actually you can alter the table of SQL to add the quest title.. but i think it would should be added in the src to make it automatic.. What you can do is made the npc script who is giving the quest auto add the quest name after giving the quest... For example.. setquest (quest_id); query_sql Update here.. like that...
  7. you can look in the data or rdata grf for available images.. or add custom image.. it's located in the item folder in texture... BMP format and 85x85 size Edit: Related to the first question, maybe you can use query_sql... to find if the charid has quest which has state as 1...
  8. Hi everyone!... So I'm having a problem regarding homunculus.. I can't delete them using the delete button in the client window.. I don't know why... Using client 2011-5-17 I didn't change anything regarding homunculus.. so I'm a little confused about this.. Advance Thanks for those who will respond.. Edit: Seems feeding the homunculus isn't working either... Really don't have any idea...
  9. Hi everyone!... So I'm having a problem regarding homunculus.. I can't delete them using the delete button in the client window.. I don't know why... Using client 2011-5-17 I didn't change anything regarding homunculus.. so I'm a little confused about this.. Advance Thanks for those who will respond..
  10. Wow, thanks for this.. Really nice job.. But just one question... Do you also have the translated questid2display.txt for this quests?... thanks..
  11. Yes you can use the costume system of RA and it works perfectly.. just search in the timeline of RA and download the diff and apply it manually..
  12. yeah SunDeath is right, the first image is skill image... you can put it in the item folder in texture.. 24x24 and 32x32 can do.. bmp format.. The 2nd picture is also located in the item folder in texture.. bmp format too.. 85x85 size for me.. Hope that helps..
  13. Hi everyone.. So I have found a Donation Npc from EA using SQL... I edited the npc and just get the things i need which is the add donation and claim donation thing using SQL... It's working as intended but I got a problem with the claiming part and needed a help with this.. So I can add and claim, but the deleting part after claiming is my problem.. It's not deleting in the SQL... Here's the retrieve function... // ************************* [Yhn] ******************************** // RetrieveDonatedItems // *RetrieveDonatedItems(); // **************************************************************** function script RetrieveDonatedItems { if ($useSQL) { query_sql "SELECT `item_id`,`amount` FROM `"+$database_name$+"`.`"+$table_items$+"` WHERE `donation_id`=(SELECT `donation_id` FROM `"+$database_name$+"`.`"+$table_balance$+"` WHERE `account_id`='"+getcharid(3)+"')",@itemid,@amount; } else { copyarray @itemid[0],getd("$don_item_ids_"+getcharid(3)+"[0]"),getarraysize(getd("$don_item_ids_"+getcharid(3))); copyarray @amount[0],getd("$don_amount_"+getcharid(3)+"[0]"),getarraysize(getd("$don_amount_"+getcharid(3))); } if (getarraysize(@itemid) < 1) { mes "["+$donation_name$+"]"; mes "There are no items for you at the moment."; mes "If you have donated and haven't got your items yet, please contact a GM or try again later."; next; } else { for (set @i,0; @i < getarraysize(@itemid); set @i,@i+1) { if (checkweight(@itemid[@i],@amount[@i])) { getitem @itemid[@i],@amount[@i]; callfunc "RemoveDonationItemSub",getcharid(3),@itemid[@i],@amount[@i]; } else { mes "["+$donation_name$+"]"; mes "You don't have enough free weight to get this donation:"; mes "^FF0000"+@amount[@i]+" "+getitemname(@itemid[@i])+"(s)^000000"; mes "Please come get this one after you have more free weight."; next; menu "Continue with the other donations",L_Cont,"Give me as much of these items as I can carry.",-,"Bring me back to the menu",L_Back; set @j,0; while (checkweight(@itemid[@i],(@j+1)) && @j < @amount[@i]) { set @j,@j+1; } getitem @itemid[@i],@j; callfunc "DecreaseDonationItem",getcharid(3),@itemid[@i],@amount[@i],@j; L_Cont: } } mes "["+$donation_name$+"]"; mes "Have fun with your items, and thanks for the donation!"; next; } L_Back: deletearray @itemid[0],getarraysize(@itemid); deletearray @amount[0],getarraysize(@amount); return; } Then this is the remove function... // ************************* [Yhn] ******************************** // RemoveDonationItem Sub // *RemoveDonationItemSub(account id,item_id,amount); // **************************************************************** function script RemoveDonationItemSub { if ($useSQL) { if (getarg(2) == 0) { query_sql "DELETE FROM `"+$database_name$+"`.`"+$table_items$+"` WHERE `donation_id`=(SELECT `donation_id` FROM `"+$database_name$+"`.`"+$table_balance$+"` WHERE `account_id`='"+getarg(0)+"') && `item_id`='"+getarg(1)+"'"; } else { query_sql "DELETE FROM `"+$database_name$+"`.`"+$table_items$+"` WHERE `donation_id`=(SELECT `donation_id` FROM `"+$database_name$+"`.`"+$table_balance$+"` WHERE `account_id`='"+getarg(0)+"') && `item_id`='"+getarg(1)+"' && `amount`='"+getarg(2)+"'"; } } else { for (set .@i,0; .@i < getarraysize(getd("$don_item_ids_"+getarg(0))); set .@i,.@i+1) { if (getd("$don_item_ids_"+getarg(0)+"["+.@i+"]") == getarg(1)) { if (getarg(2) == -1) { deletearray getd("$don_item_ids_"+getarg(0)+"["+.@i+"]"),1; deletearray getd("$don_amount_"+getarg(0)+"["+.@i+"]"),1; } else { if (getd("$don_amount_"+getarg(0)+"["+.@i+"]") == getarg(2)) { deletearray getd("$don_item_ids_"+getarg(0)+"["+.@i+"]"),1; deletearray getd("$don_amount_"+getarg(0)+"["+.@i+"]"),1; break; } } } } } return; } After claiming the item, it's not deleted in the SQL.. But if I used this function, it can delete the item in the SQL... // ************************* [Yhn] ******************************** // RemoveDonationItem // *RemoveDonationItem(); // **************************************************************** function script RemoveDonationItem { mes "["+$donation_name$+"]"; mes "To remove a donated item for someone to collect from this npc, I will need some information."; mes "If you input the information I ask you, then everything should be allright."; next; L_Input: mes "["+$donation_name$+"]"; mes "Please tell me the ^FF0000account id^000000 of the person to remove the item from."; input @aid; mes "Now, please input the ^FF0000Item ID^000000 of the item you want to remove."; input @itemid; next; mes "["+$donation_name$+"]"; mes "Now, I need to know how many of the items are meant to be given. This is so that I can delete the righ entry from the system. If you do not know, or want to remove ^FF0000all^000000 the items with the given item id, please put 0."; input @amount; next; mes "["+$donation_name$+"]"; mes "Please confirm if the following information is ^FF0000correct^000000."; mes "Account ID: ^FF0000"+@aid+"^000000."; mes "Item: ^FF0000"+@itemid+"^000000(^FF0000"+getitemname(@itemid)+"^000000)."; if (@amount > 0) mes "Amount: ^FF0000"+@amount+"^000000."; if (@amount == 0) mes "Amount: ^FF0000ALL^000000."; next; menu "Yes, correct.",-,"No, please let me input again",L_Input,"No, and take me back to the GM menu",L_Back; callfunc "RemoveDonationItemSub",@aid,@itemid,@amount; mes "["+$donation_name$+"]"; mes "It has been done."; next; L_Back: return; } No error in the map server.. It seems like it's not calling the function removeitemsub after the getitem arg.. Thanks in advance.. Edit: Seems the problem is in this line.. I tried it manually and it works.. And I'm a little bit confused on where the problem is.. Thanks..
  14. I think it goes like this... just an example.. For more info.. see script_commands.txt
  15. Thanks for your reply sir Gepard.. Follow up questions regarding that.. If I'm going to increase the Max Quest Objective, should I add a table in sql?... And regarding the item objective, yes I'm using countitem.. But I'm going to add multiple items which will use And I want to make the item id to be get from an array... Like, setarray .requirements,512,513,514,and so on.. And make it show in the npc like this... Tried combining my script with the dynamic quest menu made by Lunar, but still no avail.. Thanks in advance.. Edit: Already added custom item objective...
  16. Hi everyone!.. I don't know where to put this, so decided to put it here... I have done a quest log script already and functioning properly... What I wanted to do is add Item Objectives and more Mob Objectives cause the quest log system is limited to 3 mobs objectives as far as I know... (sorry if I'm wrong)... And I think that it could be done through a script... Already tried putting it in arrays but I'm still having a hard time that's why I decided to ask for help.. Thanks.. But if ever someone knows how to do it src mod, would you mind to share?.. Thanks in advance..
  17. Elijah23

    DoTA Runes

    I'm not having any problems at all.. Working fine with me, always respawning even for hours... Found the bug, it stops showing when after the cooldown, you're standing on the respawn point of the rune.... Fix: Remove ALL stopnpctimer in the script...
  18. Elijah23

    DoTA Runes

    Just added the random respawn... - script Runes -1,{ set .@dif, strnpcinfo(2); if ( .remind[.@dif] == 0 ) { set .remind[.@dif], 1; initnpctimer; } dispbottom "Walkthrough to get Runes."; end; OnTouch: switch( .Runes ){ Case 1: // Double Damage sc_start SC_INCATKRATE,( .Duration * 1000 ),100; sc_start SC_INCMATKRATE,( .Duration * 1000 ),100; break; Case 2: // Invisibilty initnpctimer "Runes",1; skill "AS_CLOAKING",10,1; sc_start SC_CLOAKING,( .Duration * 1000 ),10; stopnpctimer "Runes",1; break; Case 3: // Regeneration sc_start4 SC_REGENERATION,( .Duration * 1000 ),-10,1,0,0; break; Case 4: // Illusion getmapxy( .@Map$,.@X,.@Y,0,strcharinfo(0) ); clone .@Map$,.@X,.@Y,"",getcharid(0),getcharid(0),"",1,.Duration; clone .@Map$,.@X,.@Y,"",getcharid(0),getcharid(0),"",1,.Duration; break; Case 5: // Haste sc_start SC_SpeedUp1,( .Duration * 1000 ),0; break; Case 6: // Increase Flee sc_start SC_INCFLEE,( .Duration * 1000 ),300; break; Case 7: // Double HP sc_start SC_INCMHPRATE,( .Duration * 1000 ),100; break; //Add New Runes Here... } dispbottom "You have gained "+.Names$[.Runes]+" for 1 minute!"; disablenpc strnpcinfo(0); set .Runes,0; initnpctimer; set .timeout, 1; // Set this for the cooldown of Runes in minutes... if ( .timeout == 0 ) set .timeout, 1; // Set this for the cooldown of Runes... set .@dif, strnpcinfo(2); set .remind[.@dif], 0; set .starttime[.@dif], gettimetick(2); do { set .remaintime[.@dif], .timeout * 60 + .starttime[.@dif] - gettimetick(2); set .@hour[.@dif], .remainTime[.@dif] / 3600 ; set .@min[.@dif], .remainTime[.@dif] % 3600 / 60 ; set .@sec[.@dif], .remainTime[.@dif] % 3600 % 60 ; delwaitingroom strnpcinfo(0); waitingroom "Cooldown "+( ( .@hour[.@dif] )?( .@hour[.@dif] +":"):"" )+( ( .@min[.@dif] < 10 )?"0"+ .@min[.@dif]: .@min[.@dif] )+":"+( ( .@sec[.@dif] < 10 )?"0"+ .@sec[.@dif]: .@sec[.@dif] ), 0; set .Runes,rand(1,( getarraysize( .Names$ ) - 1 )); sleep 995; } while ( .remaintime[.@dif] > 1 ); set .remaintime[.@dif], 0; delwaitingroom strnpcinfo(0); end; OnInit: OnTimer60000: //Change this if you changed the cooldown for Runes... setarray .Names$[1], "Double Damage", "Invisibility", "Regeneration", "Illusion", "Haste", "Increase Flee", "Double HP"; //Add the Name of the Rune Here.. // Random Coordinate where NPC will Shown Again setarray .CoordinateX[0],150,155; setarray .CoordinateY[0],175,175; // Status to be ended.... sc_end SC_CLOAKING; set .Random,rand( getarraysize( .CoordinateX ) ); movenpc strnpcinfo(0),.CoordinateX[ .Random ],.CoordinateY[ .Random ]; // NPC will show again... enablenpc strnpcinfo(0); // Settings set .Duration,60; //Change the Duration of Runes here... set .Runes,rand( 1,( getarraysize( .Names$ ) - 1 )); stopnpctimer; } //Duplicates here.... prontera,159,164,4, duplicate(Runes) Runes#1 837,2,2 prontera,154,159,4, duplicate(Runes) Runes#2 837,2,2
  19. Elijah23

    DoTA Runes

    You can modify it to your likings... Just have made what has been requested by the TS... Emistry's script has a change respawn thing... after the npc has been triggered, it will respawn to random coordinates which has been set in the settings... I tested the random coordinate into my script but not the whole script he made...
  20. Elijah23

    DoTA Runes

    Yes you can change the sprite to your custom sprite.. and if you want onClick, delete the following...
  21. Elijah23

    DoTA Runes

    Can't find for the others.. maybe I just overlooked them... Added some requested runes and cleaned the script a little bit.. - script Runes -1,{ set .@dif, strnpcinfo(2); if ( .remind[.@dif] == 0 ) { set .remind[.@dif], 1; initnpctimer; } dispbottom "Walkthrough to get Runes."; end; OnTouch: switch( .Runes ){ Case 1: // Double Damage sc_start SC_INCATKRATE,( .Duration * 1000 ),100; sc_start SC_INCMATKRATE,( .Duration * 1000 ),100; break; Case 2: // Invisibilty initnpctimer "Runes",1; skill "AS_CLOAKING",10,1; sc_start SC_CLOAKING,( .Duration * 1000 ),10; stopnpctimer "Runes",1; break; Case 3: // Regeneration sc_start4 SC_REGENERATION,( .Duration * 1000 ),-10,1,0,0; break; Case 4: // Illusion getmapxy( .@Map$,.@X,.@Y,0,strcharinfo(0) ); clone .@Map$,.@X,.@Y,"",getcharid(0),getcharid(0),"",1,.Duration; clone .@Map$,.@X,.@Y,"",getcharid(0),getcharid(0),"",1,.Duration; break; Case 5: // Haste sc_start SC_SpeedUp1,( .Duration * 1000 ),0; break; Case 6: // Increase Flee sc_start SC_INCFLEE,( .Duration * 1000 ),300; break; Case 7: // Double HP sc_start SC_INCMHPRATE,( .Duration * 1000 ),100; break; //Add New Runes Here... } dispbottom "You have gained "+.Names$[.Runes]+" for 1 minute!"; disablenpc strnpcinfo(0); set .Runes,0; initnpctimer; set .timeout, 1; // Set this for the cooldown of Runes in minutes... if ( .timeout == 0 ) set .timeout, 1; // Set this for the cooldown of Runes... set .@dif, strnpcinfo(2); set .remind[.@dif], 0; set .starttime[.@dif], gettimetick(2); do { set .remaintime[.@dif], .timeout * 60 + .starttime[.@dif] - gettimetick(2); set .@hour[.@dif], .remainTime[.@dif] / 3600 ; set .@min[.@dif], .remainTime[.@dif] % 3600 / 60 ; set .@sec[.@dif], .remainTime[.@dif] % 3600 % 60 ; delwaitingroom strnpcinfo(0); waitingroom "Cooldown "+( ( .@hour[.@dif] )?( .@hour[.@dif] +":"):"" )+( ( .@min[.@dif] < 10 )?"0"+ .@min[.@dif]: .@min[.@dif] )+":"+( ( .@sec[.@dif] < 10 )?"0"+ .@sec[.@dif]: .@sec[.@dif] ), 0; set .Runes,rand(1,( getarraysize( .Names$ ) - 1 )); sleep 995; } while ( .remaintime[.@dif] > 1 ); set .remaintime[.@dif], 0; delwaitingroom strnpcinfo(0); end; OnInit: OnTimer60000: //Change this if you changed the cooldown for Runes... setarray .Names$[1], "Double Damage", "Invisibility", "Regeneration", "Illusion", "Haste", "Increase Flee", "Double HP"; //Add the Name of the Rune Here.. // Status to be ended.... sc_end SC_CLOAKING; // NPC will show again... enablenpc strnpcinfo(0); // Settings set .Duration,60; //Change the Duration of Runes here... set .Runes,rand( 1,( getarraysize( .Names$ ) - 1 )); stopnpctimer; } //Duplicates here.... prontera,159,164,4, duplicate(Runes) Runes#1 837,2,2 prontera,154,159,4, duplicate(Runes) Runes#2 837,2,2
  22. Elijah23

    DoTA Runes

    Here, I was able to make it duplicable but can't make it to have the duplicates have their own Waitingroom with the rune they have... Each duplicate will have their own cooldown and will appear after the duration of the runes... Each duplicate has different runes... - script Runes -1,{ set .@dif, strnpcinfo(2); if ( .remind[.@dif] == 0 ) { set .remind[.@dif], 1; initnpctimer; } dispbottom "Walkthrough to get Runes."; end; OnTouch: switch( .Runes ){ Case 1: sc_start SC_INCATKRATE,60000,100; sc_start SC_INCMATKRATE,60000,100; break; Case 2: initnpctimer "Runes",1; skill "AS_CLOAKING",10,1; sc_start SC_CLOAKING,60000,10; stopnpctimer "Runes",1; break; Case 3: sc_start4 SC_REGENERATION,60000,-10,1,0,0; break; Case 4: getmapxy( .@Map$,.@X,.@Y,0,strcharinfo(0) ); clone .@Map$,.@X,.@Y,"",getcharid(0),getcharid(0),"",1,60; clone .@Map$,.@X,.@Y,"",getcharid(0),getcharid(0),"",1,60; break; Case 5: sc_start SC_SpeedUp1,60000,0; break; } dispbottom "You have gained "+.Names$[.Runes]+" for 1 minute!"; disablenpc strnpcinfo(0); set .Runes,0; initnpctimer; set .timeout, 1; // Set this for the cooldown of Runes if ( .timeout == 0 ) set .timeout, 1; // Set this for the cooldown of Runes set .@dif, strnpcinfo(2); set .remind[.@dif], 0; set .starttime[.@dif], gettimetick(2); do { set .remaintime[.@dif], .timeout * 60 + .starttime[.@dif] - gettimetick(2); set .@hour[.@dif], .remainTime[.@dif] / 3600 ; set .@min[.@dif], .remainTime[.@dif] % 3600 / 60 ; set .@sec[.@dif], .remainTime[.@dif] % 3600 % 60 ; delwaitingroom strnpcinfo(0); waitingroom "Cooldown "+( ( .@hour[.@dif] )?( .@hour[.@dif] +":"):"" )+( ( .@min[.@dif] < 10 )?"0"+ .@min[.@dif]: .@min[.@dif] )+":"+( ( .@sec[.@dif] < 10 )?"0"+ .@sec[.@dif]: .@sec[.@dif] ), 0; set .Runes,rand(1,5); sleep 995; } while ( .remaintime[.@dif] > 1 ); set .remaintime[.@dif], 0; delwaitingroom strnpcinfo(0); end; OnInit: OnTimer60000: //Change this if you changed the cooldown for Runes... setarray .Names$,"Runes","Double Damage","Invisibility","Regeneration","Clone","Haste"; sc_end SC_CLOAKING; enablenpc strnpcinfo(0); set .Runes,rand( 1,5); stopnpctimer; } prontera,159,164,4, duplicate(Runes) Runes#1 837,2,2 prontera,154,159,4, duplicate(Runes) Runes#2 837,2,2
  23. Elijah23

    DoTA Runes

    EDIT: ATM, you can try to change the OnTimer... 60000 = 1min. 120000 = 2min. and so on.. after changing the on timer.. just change the value of if your Ontimer is 120000... change it to... Yes, that's why I'm planning to change the timer just like in ToastofDoom's WOE Setter or AnnieRuru's Private MVP Room.. but it's complicated.. XD But I will try my best to do so.. i think you cold just insert it like this in the itemdb.. EDIT: Tested and working with me but it will not uncloak you... { skill "AS_CLOAKING",10,1; sc_start SC_CLOAKING,60000,10; },{},{}
×
×
  • Create New...