Jump to content

-Chuck-

Members
  • Posts

    17
  • Joined

  • Last visited

  • Days Won

    1

-Chuck- last won the day on April 15 2020

-Chuck- had the most liked content!

Profile Information

  • Gender
    Male
  • Location
    Brazil
  • Server
    RagnAlpha

Recent Profile Visitors

2544 profile views

-Chuck-'s Achievements

Poring

Poring (1/15)

5

Reputation

1

Community Answers

  1. You can use both events in one npc... I have modify it for you, please give a try.. - script pvp1 -1,{ OnPCDieEvent: getmapxy @mapdie1$,@x,@y; if (@mapdie1$ != "coca_cola") end; set @CID,getcharid(0); set @name$,""; set @points,0; query_sql "SELECT `deaths_pvp1` FROM `rankpvp01` WHERE `char_id`="+@CID+"",@points; query_sql "SELECT `name` FROM `rankpvp01` WHERE `char_id`="+@CID+"",@name$; if ( @name$ == "" ) { query_sql "INSERT INTO `rankpvp01` (`char_id`,`name`,`deaths_pvp1`,`saldo_pvp1`) VALUES ("+@CID+",'"+strcharinfo(0)+"',1,-1)"; end; } query_sql "UPDATE `rankpvp01` SET `deaths_pvp1` = `deaths_pvp1` + 1, `saldo_pvp1` = `saldo_pvp1` - 1 WHERE `char_id`="+@CID; end; OnPCKillEvent: getmapxy @map1$,@x,@y; if ( @map1$ != "coca_cola" ) end; set @CID, getcharid(0); set @name$, ""; set @points, 0; query_sql "SELECT `kills_pvp1` FROM `rankpvp01` WHERE `char_id`="+@CID+"", @points; query_sql "SELECT `name` FROM `rankpvp01` WHERE `char_id`="+@CID+"", @name$; if ( @name$ == "" ) { query_sql "INSERT INTO `rankpvp01` (`char_id`,`name`,`kills_pvp1`,`saldo_pvp1`) VALUES ("+@CID+",'"+strcharinfo(0)+"',1,1)"; dispbottom "Você Matou seu primeiro jogador"; end; } query_sql "UPDATE `rankpvp01` SET `kills_pvp1` = `kills_pvp1` + 1, `saldo_pvp1` = `saldo_pvp1` + 1 WHERE `char_id`="+@CID; set @points, @points + 1; announce "Você matou [ "+rid2name(killedrid)+" ] e chegou a "+@points+" jogadores mortos.",bc_self,0x90FFFF; end; }
  2. Yes, just go to your server folder using cd command, type the command I sent above and press enter. This will start and save logs when its running.
  3. Run the server with this command: ./athena-start start --enlog This will save into log/map-server.log
  4. Im not sure, but i think you could do this on: db/skill_damage_db.txt
  5. Try a new 'System' folder.. And check if there is those files: 'OngoingQuestInfoList_Sakray.lub', 'RecommendedQuestInfoList_Sakray.lub'
  6. Why dont you use the diff on you pc, and then send the files using a FTP? (Like Filezilla)
  7. Disable "Ignore Lua errors", "Ignore Missing Pallete Errors" and "Ignore Resource Errors" when diffing you hexed. Then you will know what is missing...
  8. src/config/renewal.hpp #define RENEWAL #define RENEWAL_CAST #define RENEWAL_DROP #define RENEWAL_LVDMG #define RENEWAL_ASPD #define RENEWAL_STAT If you keep like that, everything work with renewal formulas, if you want some of them working like Pre-Re, just add // (disable by commenting the line) And recompile after saving..
  9. Esse erro é porque o servidor não achou a tabela loginlog no banco de dados ragnarok.. Recomendo dar uma lida nesse guia, ele é bem completo..:
  10. Na pasta conf/battle/drops.conf Nos dois último você não mexe, que são as chances mínimas e máximas. Os 3 primeiros são, cartas comuns, mini-boss e mvp, consecutivamente. 100 significa 0,01%
  11. You will need to save the npctimer into a variable when logginout...
  12. Try the end;s after the condition.. prontera,154,181,3 script testnpc::npctimerX0000 876,{ mes "Timer value" + getnpctimer(0); mes "State timer" + getnpctimer(1,"npctimerX0000"); mes "Number of events" + getnpctimer(2); switch(select("Initialization:Stop:Start:Settings")) { case 1: //initnpctimer; close; case 2: stopnpctimer; close; case 3: attachnpctimer strcharinfo(0); startnpctimer; end; case 4: input .@temp; setnpctimer .@temp; close; } OnTimer1000: dispbottom "After a second..."; message strcharinfo(0),"You have "+((getnpctimer(0))/1000)+" Seconds."; end; OnTimer5000: dispbottom "After 5 seconds..."; end; OnTimer10000: dispbottom "Times up! warping you to your home town"; stopnpctimer; end; OnPCLogoutEvent: if ( getnpctimer(0) == 0 ){ dispbottom " Why stop timer if it did not start yet"; } else { stopnpctimer; } end; OnPCLoginEvent: if ( getnpctimer(0) == 0 ){ dispbottom "no start countdown since it didn't start yet"; } else { startnpctimer; } end; }
  13. Ive just tried it here and got no errors.. I will paste into code.. Was reading this code, is called OnMVPDeath, but there is nothing on this event.. just a end; prontera,119,168,6 script Skormy 641,{ if(getgmlevel()<.gmlevel) end; set .@MVPID,-3; L_Menu: mes .NPC$; mes "Select an option from the menu below and click [ ^0000FFSummon!^000000 ] when you're done."; next; if(.@MVPID == -3){ set .@tmp$,"Random MVP"; } else if ( .@MVPID ) { set .@tmp$,getmonsterinfo(.@MVPID,0); } else { set .@tmp$,"NULL"; } Switch(select("Monster ID ( ^0000FF"+.@tmp$+"^000000 ) :Map Name ( ^0000FF"+.@MAPNAME$+"^000000 ) :Amount ( ^0000FF"+.@AMOUNT+"^000000 ):[ ^0000FFSummon!^000000 ]")) { case 1: mes .NPC$; mes "Input the id of the monster you'd like to spawn."; next; input(.@MVPID); while(!query_sql("(SELECT `ID` from `mob_db` where `ID` = "+.@MVPID+") UNION ALL (SELECT `ID` from `mob_db2` where `ID` = "+.@MVPID+" LIMIT 1);",.@a)) input(.@MVPID); if( compare(.blacklist$,"|"+.@MVPID+"|" ) ) { message strcharinfo(0),"I'm sorry but that monster was blacklisted!"; message strcharinfo(0),"Please use a different id."; set(.@MVPID,0); } goto L_Menu; case 2: mes .NPC$; mes "Input the name of the map you'd like to spawn the monster on."; next; input(.@MAPNAME$); while(mobcount(.@MAPNAME$,"all")==-1){ input(.@MAPNAME$); if(mobcount(.@MAPNAME$,"all")!=-1){ mes "Would you like to spawn "+(.@MVPID==-3?"Random MVPs":getmonsterinfo(.@MVPID,0))+" on the map "+.@MAPNAME$+"?"; next; if(select("Yes:No")-1) { set .@MAPNAME$,""; continue; } else { break; } } } goto L_Menu; case 3: mes .NPC$; mes "Input the amount you'd like to spawn."; mes "( Maximum "+.Lamount+" )"; next; input(.@AMOUNT); while(.@AMOUNT<=0||.@AMOUNT>.Lamount) { input(.@AMOUNT); if(.@AMOUNT>0&&.@AMOUNT<=.Lamount) { mes "Would you like to spawn "+.@AMOUNT+" monsters?"; next; if(select("Yes:No")-1) { set .@AMOUNT,0; continue; } else { break; } } } goto L_Menu; case 4: if( mobcount(.@MAPNAME$,"all")==-1 || .@AMOUNT<=0 ) { if(!.fiesta) { mes .NPC$; mes "I'm sorry you need to fill-out all the fields before summoning a monster!"; next; goto L_Menu; } else { if(mobcount(.@MAPNAME$,"all")==-1) set .@MAPNAME$,"this"; if(.@AMOUNT<=0) set .@AMOUNT,.fiesta; } } if(.Mamount){ if(mobcount(.@MAPNAME$,"Skormy::OnMVPDeath")+.@AMOUNT>.Mamount&&.Mamount>0) { mes .NPC$; mes "I'm sorry but there can only be "+.Mamount+" MVPs in one map."; set .@tmp,.Mamount-mobcount(.@MAPNAME$,"Skormy::OnMVPDeath"); if(.@tmp>0) { mes "Would you like to spawn "+.@tmp+" instead?"; if(select("Yes:No")-1) { mes "Ok!"; close; } announce ""+strcharinfo(0)+" : Summoned "+.@AMOUNT+" "+.@tmp$+"(s) in "+(.@MAPNAME$=="this"?strcharinfo(3):.@MAPNAME$)+".",bc_all,"0x"+.fontcolor$; monster .@MAPNAME$,0,0,"--ja--",.@MVPID,.@tmp,"Skormy::OnMVPDeath"; close; } next; goto L_Menu; } } announce ""+strcharinfo(0)+" : Summoned "+.@AMOUNT+" "+.@tmp$+"(s) in "+(.@MAPNAME$=="this"?strcharinfo(3):.@MAPNAME$)+".",bc_all,"0x"+.fontcolor$; monster .@MAPNAME$,0,0,"--ja--",.@MVPID,.@AMOUNT,"Skormy::OnMVPDeath"; close; } end; OnMVPDeath: end; OnInit: //=-=-=-=-=-=Configuration=-=-=-=-=-= set .NPC$,"[ ^D2691ESkormy^000000 ]"; // Npc Name set .gmlevel,60; //Minimum Gm level allowed to spawn MVPS. set .fiesta,0; // If enabled will spawn that many random MVPs on the players map if no other information is provided! (Off=0) Will bypass Maximum amount! set .fontcolor$,"FFFF00"; // Hexi color text is announced in. set .Lamount,20; // Maximum amount of mvps that can be spawned at once. set .Mamount,100; // Maximum amount of mvps on one map at a time. (Off=0) set .blacklist$,"|1288|1003|1004|1005|"; //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= }
  14. You can try this idea: OnNPCKillEvent: if (getequipid(EQUIP_TYPE) == EQUIP_ID) { setiteminfo ITEM_ID,3,NEW_CHANCE; //1 = 0.01% , etc.. } EQUIP TYPES: EQI_COMPOUND_ON (-1) - Item slot that calls this script (In context of item script) 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 If is a lot of items, you can create an array, and do a loop... Hope you understand.. You can do like that: if (rand(10000) < PERCENT) getitem ID,QTY; 1 = 0.01%, 100 = 1%...
  15. I didnt look how the npc works, only fixed the error... Could you try this please?
×
×
  • Create New...