Jump to content

GM Takumirai

Members
  • Posts

    592
  • Joined

  • Last visited

Posts posted by GM Takumirai

  1. im just wondering how to make it a 1 npc but all players can rent that npc.. its to waste of space if we duplicate the npc..

    
    //Author Goddameit
    //Version 2012/11/23
    //Web http://bit.ly/MDuQ9F
    - script DedicatedNPCMain -1,{
    set .@type,atoi(strnpcinfo(2));
    if( getd(".n_"+.@type+"_status") == 0 )
    {
    for(set .@i,1;.@i<=.amount;set .@i,.@i+1)
    if( getd(".n_"+.@i+"_master") == getcharid(3) )
    {
    end;
    }
    mes "Hi, will you hire me?";
    select("Yes");
    set .@type,atoi(strnpcinfo(2));
    setd ".n_"+.@type+"_status",1;
    setd ".n_"+.@type+"_master",getcharid(3);
    setd ".n_"+.@type+"_time",10;
    setd ".n_"+.@type+"_name$",strcharinfo(0);
    getmapxy(getd(".n_"+.@type+"_origin_map$"),getd(".n_"+.@type+"_origin_x"),getd(".n_"+.@type+"_origin_y"),1,strnpcinfo(0));
    initnpctimer;
    close;
    }else
    {
    set .@type,atoi(strnpcinfo(2));
    if( getd(".n_"+.@type+"_master") == getcharid(3) )
    {
    mes "Hi, any problem?";
    switch(select("Storage","Repair all","Dismissal"))
    {
    case 1:
    openstorage;
    close;
    case 2:
    repairall;
    close;
    case 3:
    callsub OnEndd;
    close;
    }
    }else
    {
    end;
    }
    }
    end;
    OnPCLogoutevent:
    callsub OnEndd;
    end;
    OnEndd:
    set .@type,atoi(strnpcinfo(2));
    if(getd(".n_"+.@type+"_origin_map$")!="")
    unitwarp getd(".n_"+.@type+"_unit_id"),getd(".n_"+.@type+"_origin_map$"),getd(".n_"+.@type+"_origin_x"),getd(".n_"+.@type+"_origin_y");
    if(isloggedin(getd(".n_"+.@type+"_master")))
    message getd(".n_"+.@type+"_name$"),strnpcinfo(1)+" : See you!";
    stopnpctimer;
    setd ".n_"+.@type+"_status",0;
    setd ".n_"+.@type+"_tmp_time",0;
    setd ".n_"+.@type+"_master",0;
    setd ".n_"+.@type+"_time",0;
    setd ".n_"+.@type+"_name$","";
    setd ".n_"+.@type+"_master_map$","";
    setd ".n_"+.@type+"_master_x",0;
    setd ".n_"+.@type+"_master_y",0;
    setd ".n_"+.@type+"_npc_map$","";
    setd ".n_"+.@type+"_npc_x",0;
    setd ".n_"+.@type+"_npc_y",0;
    return;
    OnTimer1000:
    {
    set .@type,atoi(strnpcinfo(2));
    for(;isloggedin(getd(".n_"+.@type+"_master"))
    {
    set .@type,atoi(strnpcinfo(2));
    set .@aid,getd(".n_"+.@type+"_master");
    if(attachrid(.@aid))
    {
    getmapxy(getd(".n_"+.@type+"_master_map$"),getd(".n_"+.@type+"_master_x"),getd(".n_"+.@type+"_master_y"),0);
    getmapxy(getd(".n_"+.@type+"_npc_map$"),getd(".n_"+.@type+"_npc_x"),getd(".n_"+.@type+"_npc_y"),1,strnpcinfo(0));
    if(maxhp/hp>=4)
    {
    percentheal 15,15;
    specialeffect2 312;
    }
    if(getd(".n_"+.@type+"_tmp_time") == 0)
    {
    sc_start SC_BLESSING,60000,10;
    specialeffect2 42;
    
    sc_start SC_INCREASEAGI,60000,10;
    specialeffect2 37;
    
    sc_start SC_IMPOSITIO,60000,10;
    specialeffect2 84;
    
    sc_start SC_MAGNIFICAT,60000,10;
    specialeffect2 76;
    
    sc_start SC_GLORIA,60000,10;
    specialeffect2 75;
    
    sc_start SC_SUFFRAGIUM,60000,10;
    specialeffect2 88;
    
    sc_start SC_ASSUMPTIO,60000,10;
    specialeffect2 375;
    }
    set .@tmp_time,getd(".n_"+.@type+"_tmp_time");
    setd ".n_"+.@type+"_tmp_time",.@tmp_time+1;
    if( .@tmp_time >= 59 )
    setd ".n_"+.@type+"_tmp_time",0;
    }
    detachrid; 
    if(!isloggedin(.@aid))
    {
    callsub OnEndd;
    break;
    }
    set .@map$,getd(".n_"+.@type+"_master_map$");
    set .@x,getd(".n_"+.@type+"_master_x");
    set .@y,getd(".n_"+.@type+"_master_y");
    set .@uid,getd(".n_"+.@type+"_unit_id");
    if(distance(getd(".n_"+.@type+"_npc_x"),getd(".n_"+.@type+"_npc_y"),.@x,.@y)>=8||.@map$!=getd(".n_"+.@type+"_npc_map$"))
    unitwarp .@uid,.@map$,.@x,.@y;
    else
    unitwalk .@uid,.@x+rand(-3,3),.@y+rand(-3,3);
    setd ".n_"+.@type+"_time",getd(".n_"+.@type+"_time")-1;
    if( getd(".n_"+.@type+"_time") <= 0 )
    {
    callsub OnEndd;
    break;
    }
    sleep2 1000;
    }
    }
    callsub OnEndd;
    end;
    OnInit:
    setd ".n_"+atoi(strnpcinfo(2))+"_unit_id",getnpcid(0);
    set .amount,.amount+1;
    end;
    }
    prontera,155,180,4 duplicate(DedicatedNPCMain) Dedicated Poring 1#1 1002
    prontera,157,180,4 duplicate(DedicatedNPCMain) Dedicated Poring 2#2 1002
    prontera,159,180,4 duplicate(DedicatedNPCMain) Dedicated Poring 3#3 1002
    

  2. yes go to your svn/db/re/item_noequip.txt

    choose Zone 2: because its a jail zone

    ItemID,64

    - ItemID of the item

    - 64 - zone 2 number

    example: 1827,64

    then go to your svn/conf/mapflag/restricted.txt

    add this

    payg_cas02 mapflag restricted 2
    

  3. - script fixautoattack -1,{
    OnPCLoginEvent:
    if (@at == 0 && (getequipid(<equipment slot>) == 29002 ))
    {end;} else if (@at == 1 && (getequipid(<equipment slot>) == 29002 )) { atcommand "@autoattack"; set @at,0;};
    end;}

    Try this

    sir how about if i make the item equipable

    example if i equip the item it will trigger command @autoattack..

    but if i un-equip the item, @autoattack will trigger off.. but the problem on the patch of God there's no @autoattack on and @autoattack off command, only it trigger @autoattack.. is there any solution?..

    and also a checker if the item gone and still in the state of @autoattack, it will automaticaly disable the @autoattack..

  4. Oh that's why, thanks Toast

    it seem that its not working..

    // Auto Attack Box to make the card have rental or expire time

    29056,Auto_Attack_Box,Auto Attack Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ rentitem 29002,604800; },{},{}
    

    29002,autoatk_Card,Auto Attack Card,11,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{ callfunc "command__"; set @at,1;},{ callfunc "command__"; set @at,0;}
    

    //This command is tfor the Auto Attack Card to used it

    
    function script command__ {
    
    atcommand "@autoattack";
    return;}
    

    //This Code is to check if the item Auto Attack Card Expired the Auto Attack Command will force to cancel

    
    - script fixautoattack -1,{
    OnPCLoginEvent:
    if (@at == 0)
    {end;} else { atcommand "@autoattack"; set @at,0;};
    end;}
    

    i dont know what is the problem there's no error in map..

  5. Thanks Testing this /lv

    got error

    try this

    30001,Auto_Attack_Card,Auto Attack,11,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{ callfunc "command__"; set @at,1;},{ callfunc "command__"; set @at,0;}
    

    function script command__ {
    
    attachnpctimer getcharid(3);
    if
    atcommand "@autoattack";
    initnpctimer;
    return;
    

    and

    - script fixautoattack {
    OnPCLoginEvent:
    if (@at == 0)
    {end;} else { atcommand "@autoattack"; set @at,0;};
    end;
    

    
    [Error]: npc_parsesrcfile: Unknown syntax in file 'npc/AGNRO/VIP/VIP-auto-attack.txt', line '1'. Stopping...
    * w1=function script command__ {
    * w2=
    * w3=
    * w4=
    [Error]: npc_parsesrcfile: Unknown syntax in file 'npc/AGNRO/VIP/VIP-auto-attack-checker.txt', line '1'. Stopping...
    * w1=- script fixautoattack {
    * w2=
    * w3=
    * w4=
    

  6. if your using renewal go to svn/db/job_db1.txt change the hp of the class

    
    // Super Novice
    23, 20000,0	,500  ,100  ,440  ,590  ,610  ,2000 ,2000 ,2000 ,540  ,2000 ,540  ,540  ,690  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,690  ,540
    

    JobID,Weight,HPFactor,HPMultiplicator,SPFactor,Unarmed,Dagger,1HSword,2HSword,1HSpear,2HSpear,1HAxe,2HAxe,1HMace,2HMace(unused),Rod,Bow,Knuckle,Instrument,Whip,Book,Katar,Revolver,Rifle,Gatling Gun,Shotgun,Grenade Launcher,Fuuma Shuriken,2HStaff,Shield
    

    • Upvote 1
  7. Hahaha happy thanks giving anyway..

    - a 4 team compose of 7 member will register

    team A

    team B

    team C

    team D

    from the team we divide it to 2 division

    division 1 and division 2

    in division 1

    team A vs team B

    team A and team B will fight each other for 3 rounds [ or lets make it a BG scoring first player to get 3 points win ]

    next

    in division 2

    team C and team D will fight each other for 3 rounds .

    who ever win in division 1 will fight the winner of division 2..

    - we can make it a GM activation npc [only GM can activate]

    - or we can make it a automated npc activation

    - it will be good if its automated give the prize to the winner.. [ if not possible ] a winner team will be posted by the NPC ] - so that GM will just manually give to those winner..

    also lets put a set wall per match and a count down..

    - if it's also possible . every match map will be change

    example first match will be guild_vs1 after that next match guild_vs2..

  8. here's a rip script, i don't know if its work.. sorry for my noobish script :D

    						  
    set @minnumber,1;
    set @maxnumber,10;
    set @input, input(@number, @minnumber, @maxnumber);
    
    mes "[Mr. Trader]";
    mes "Please Input your desired points, the minimum is 1 and maximum is 10 points";
    next;
    mes "Do you want to trade?";
    switch(select("Yes:Cancel:What is the convertion?")) {
    case 1:
    if(.@input == 1) {
    set Zeny,Zeny+100;
    set #CASHPOINTS,#CASHPOINTS-1;
    }
    if(.@input == 2) {
    set Zeny,Zeny+200;
    set #CASHPOINTS,#CASHPOINTS-2;
    }
    if(.@input == 3) {
    set Zeny,Zeny+300;
    set #CASHPOINTS,#CASHPOINTS-3;
    }
    if(.@input == 4) {
    set Zeny,Zeny+400;
    set #CASHPOINTS,#CASHPOINTS-4;
    }
    if(.@input == 5) {
    set Zeny,Zeny+500;
    set #CASHPOINTS,#CASHPOINTS-5;
    }
    if(.@input == 6) {
    set Zeny,Zeny+600;
    set #CASHPOINTS,#CASHPOINTS-6;
    }
    if(.@input == 7) {
    set Zeny,Zeny+700;
    set #CASHPOINTS,#CASHPOINTS-7;
    }
    if(.@input == 8) {
    set Zeny,Zeny+800;
    set #CASHPOINTS,#CASHPOINTS-8;
    }
    if(.@input == 9) {
    set Zeny,Zeny+900;
    set #CASHPOINTS,#CASHPOINTS-9;
    }
    if(.@input == 10) {
    set Zeny,Zeny+1000;
    set #CASHPOINTS,#CASHPOINTS-10;
    }
    close;
    
    case 2:
    mes "Come back again.";
    close;
    case 3:
    mes "[Mr. Trader]";
    mes "Here is the convertion.";
    mes "1 Point = 100z.";
    close;
    }
    

    Dastgir script is better :D

    - sorry for my noobish script :D

    • Upvote 1
×
×
  • Create New...