Jump to content

letstry

Members
  • Posts

    219
  • Joined

  • Last visited

Posts posted by letstry

  1. How do I make this like if Im pkoff and map is gvg OR pvp I wont be attacked?

    How will I add OR PVP at the script?

    And if we're on a party ( Im pk off and my party is pk off ) I can devotion him

    Heres the code

    if( (sd->pk_enable == false && map[sd->bl.m].flag.gvg == 0) && s_bl->type == BL_PC && ((TBL_PC*)s_bl)->pk_enable == false )
    return 0;

    Bump

  2. Already tried that.. Still doesn't work.. It only works when attacking normally..

    What I want to happen is, make it autocast when also casting skills like if you cast Desperado and it his enemies, there's a chance to activate Lv1 EDP..

    Btw, Here's my script

    { bonus3 bAutoSpell,"ASC_EDP",1,20; }

    Anyone?

  3. The event wont stop even though there's only 1 novice left in the map..

    Help please Thanks

    - script announce_nvz -1,{
    OnClock0130:
    OnClock0430:
    OnClock0730:
    OnClock1030:
    OnClock1330:
    OnClock1630:
    OnClock1930:
    OnClock2230:
    announce "The event for Zombie vs. Novice will begin in 3 minutes",0;
    killmonsterall "quiz_01";
    sleep 5000;
    announce "Proceed @go event and talk to the Zombie NPC to join.",0;
    enablenpc "Novice vs. Zombie";
    sleep 55000;
    announce "Event Zombie vs. Novice will begin in 2 minutes.",0;
    sleep 60000;
    announce "Event Zombie vs. Novice will begin in 1 minute.",0;
    sleep 30000;
    mapannounce "quiz_01","In 30 seconds the Zombies will arrive!",0;
    sleep 25000;
    announce "Event Zombie vs. Novice will start in 5",0;
    sleep 1000;
    announce "Event Zombie vs. Novice will start in 4",0;
    sleep 1000;
    announce "Event Zombie vs. Novice will start in 3",0;
    sleep 1000;
    announce "Event Zombie vs. Novice will start in 2",0;
    sleep 1000;
    announce "Event Zombie vs. Novice will start in 1",0;
    sleep 1000;
    announce "Event 'Zombie vs. Novice' has begun!",0,0x00FF00;
    monster "quiz_01",42,369,"Zombie",1015,3;
    disablenpc "Novice vs. Zombie";
    sleep 10000;
    monster "quiz_01",42,369,"Zombie",1015,3;
    sleep 10000;
    monster "quiz_01",42,369,"Zombie",1015,3;
    sleep 10000;
    monster "quiz_01",42,369,"Ghoul",1036,5;
    initnpctimer;
    end;
    OnTimer5000:
    if ( getmapusers("quiz_01") == 0 )
    {
    killmonsterall "quiz_01";
    announce "'Zombie Vs. Novice' has ended, no one survived!",0;
    disablenpc "Prize";
    stopnpctimer;
    end;
    }
    else if ( getmapusers("quiz_01") > 1 )
    {
    mapannounce "quiz_01",getmapusers("quiz_01") +" survivors are still on the map.",0,0x00FF00;;
    initnpctimer;
    end;
    }
    if ( .@mapnvz$ == "quiz_01" && getmapusers("quiz_01") = 1 ) {
    killmonsterall "quiz_01";
    mapannounce "quiz_01","You've won! Please approach to the Prize Giver to get your award.",0;
    enablenpc "Prize";
    stopnpctimer;
    end;
    }
    initnpctimer;
    end;
    OnPCDieEvent:
    getmapxy .@mapnvz$,.@xnvz,.@ynvz,0;
    if ( .@mapnvz$ == "quiz_01") {
    sleep2 1;
    warp "prontera",156,223;
    atcommand "@alive "+ strcharinfo(0);
    dispbottom "You were beaten by a Zombie.";
    }
    sleep2 1000;
    end;
    }
    quiz_01,42,369,3 script Prize 72,{
    if (sex == 1) {
    announce "Wow! " + strcharinfo (0) + " has won! He survived versus the Zombies.",0;
    }
    else {
    announce "Wow! " + strcharinfo (0) + " has won! She survived versus the Zombies.",0;
    };
    getitem 675,1;
    warp "prontera",156,223;
    sleep2 250;
    disablenpc "Prize";
    end;
    }
    brasilis,116,337,3 script Novice vs. Zombie 1015,{
    if ( Weight > 0 ){
    mes "You must clear all your items in your Equipment Field and Inventory before joining this event.";
    close;
    }
    if (BaseLevel > 1) goto NO;
    if (class == 0) goto event;
    if (class > 0) goto NO;
    event:
    mes "[^0000FFZombie Vs. Novice^000000]";
    mes "You wish to get on the Zombie Vs. Novice arena?";
    next;
    switch(select("Yes","No")) {
    case 1:
    sc_end SC_ALL;
    sc_start SC_DECREASEAGI,300000,10;
    percentheal 100,100;
    warp "quiz_01",42,369;
    end;
    break;
    case 2:
    mes "[^0000FFZombie Vs. Novice^000000]";
    mes "Okay, talk to me when you've changed your mind.";
    close;
    break;
    NO:
    mes "[^0000FFZombie Vs. Novice^000000]";
    mes "You don't meet the requirements. Only Level 1 Novice can join.";
    close;
    }
    OnInit:
    disablenpc "Novice vs. Zombie";
    disablenpc "Prize";
    end;
    }
    quiz_01 mapflag nowarp
    quiz_01 mapflag nowarpto
    quiz_01 mapflag noteleport
    quiz_01 mapflag nosave
    quiz_01 mapflag nomemo
    quiz_01 mapflag nobranch
    quiz_01 mapflag noloot
    quiz_01 mapflag noskill
    quiz_01 mapflag nightenabled
    quiz_01 mapflag nodrop
    quiz_01 mapflag noexp
    quiz_01 mapflag pvp off
    quiz_01 mapflag pvp_noparty
    quiz_01 mapflag pvp_noguild
    quiz_01 mapflag nocommand 80
    

  4. Requesting a npc which will trade all things in exchange of some in just 1 click..

    Example:

    I have 10 jellopy, then if I clicked the npc, I will have 10 fluff.

    But if I have 6 jellopy only, Ill only have 6 fluff.

    Thanks

  5. I want to only allow the use of @pkmode on town maps only :(

    How can I do that?

    int atcommand_pkmode( const int fd, struct map_session_data *sd, const char *command, const char *message ) {

    int flag;

    if ((map[sd->bl.m].flag.gvg) && (10 >= pc_isGM(sd))) { // Allows GM's Over lvl 10 or Higher To Still Use Command

    clif_displaymessage(sd->fd,"Sorry, You Cant Use This Command Your Current Map.");

    return -1;

    }

    BUMP

    BUMP

    Bump

  6. Why I cant talk to this NPC?

    //====================================================================================
    //Script Name: Vote For Points NPC Script for FluxCP
    //SVN: Tested in rAthena r156513
    //Developed By: JayPee Mateo
    //Version: 1.0
    //Requirement(s): FluxCP V4P Addon
    //Description: This is a npc script for FluxCP Vote for points in order for the players
    //to claim their vote points
    //====================================================================================
    prontera,151,175,5 script VoteForPoints 89,{
    //Function Prototypes
    function garbagecol;//Garbage collection for the Character variables
    garbagecol();
    function add_item; //Syntanx: add_item(ItemID,QUANTITY,POINTS,CATEGORY);
    function makeCategory;//This will return a list of the categories
    function getItemsByCat;//This will return the list of items associated to the particular category
    function getItemDetails;//This will return the details of the item
    function getPoints;//This will return the points of the player stored in the database
    function updatePoints;//This will updates the points of the player stored in the database
    
    //NPC Name
    set .npcname$,"[ Vote For Points ]";
    //Initialization of the Rewards
    add_item(555,1,100,"Hello");
    add_item(556,2,101,"Hello");
    add_item(557,3,101,"Hello1");
    add_item(607,1,10,"Ygg");
    
    //Script Start
    mes .npcname$;
    mes "Hi! Do you want to exchange your vote points?:";
    switch(select("Yes, I want to exchange my points:See my points"))
    {
    case 1:
    next;
    mes .npcname$;
    mes "Please choose a category:";
    set .@selected,select(makeCategory())-1;
    next;
    mes .npcname$;
    mes "Please the item you want:";
    set .@selected,select(getItemsByCat(@listCat$[.@selected]))-1;
    next;
    mes .npcname$;
    set .@rItemID,getItemDetails(@itemKeys[.@selected],"ItemID");
    set .@rquantity,getItemDetails(@itemKeys[.@selected],"quantity");
    set .@rpoints,getItemDetails(@itemKeys[.@selected],"points");
    mes "Item ID:"+.@rItemID;
    mes "Item Name: "+getitemname(.@rItemID);
    mes "Item Quantity: "+.@rquantity+" pc(s).";
    mes "Required Points: "+.@rpoints+" pt(s).";
    mes "\n";
    mes "Do you want to this item?";
    if(select("Yes:No")==1)
    {
    set .@points,getPoints(getcharid(3));
    if(.@points>=.@rpoints)
    {
    next;
    mes .npcname$;
    updatePoints(getcharid(3),.@rpoints);
    getitem .@rItemID,.@rquantity;
    mes "Here you go!. Thank you for voting. Don't forget to vote again. ";
    }
    else
    mes "Sorry, you do not have enough points for this item.";
    }
    else
    {
    next;
    mes .npcname$;
    mes "Okay bye!";
    }
    garbagecol();
    close;
    case 2:
    next;
    mes .npcname$;
    set .@points,getPoints(getcharid(3));
    mes "You currently have "+.@points+" pt(s).";
    garbagecol();
    close;
    }
    end;
    //Functions Bodies
    function updatePoints {
    set .@account_id,getarg(0);
    set .@usedPoints,getarg(1);
    query_sql("UPDATE `cp_v4p_voters` SET points=(points-"+.@usedPoints+") WHERE account_id='"+.@account_id+"'");
    return;
    }
    function getPoints {
    set .@account_id,getarg(0);
    query_sql("SELECT `points` FROM `cp_v4p_voters` WHERE account_id="+.@account_id+" LIMIT 1",.@points);
    if(getarraysize(.@points)==0)
    return 0;
    return .@points[0];
    }
    function getItemDetails {
    set .@key,getarg(0); //Key
    set .@detail$,getarg(1); //What details to return such as ItemID, Points, Quantity, Category
    if(.@detail$ == "ItemID")
    return @ItemID[.@key];
    else if((.@detail$ == "Quantity") || (.@detail$ == "quantity"))
    return @itemQ[.@key];
    else if((.@detail$ == "Points") || (.@detail$ == "points"))
    return @points[.@key];
    else if((.@detail$ == "Category") || (.@detail$ == "category"))
    return @category$[.@key];
    }
    function getItemsByCat {
    set .@selectedCat$,getarg(0);
    set .@make_string$,"";
    set .@x,0;
    for(set .@i,0; .@i<getarraysize(@category$); set .@i,.@i+1)
    {
    if(.@selectedCat$ == @category$[.@i]);
    {
    setarray @itemKeys[.@x],.@i;
    if(.@make_string$ == "")
    set .@make_string$,getitemname(@ItemID[.@i]);
    else
    set .@make_string$,.@make_string$+":"+getitemname(@ItemID[.@i]);
    set .@x,.@x+1;
    }
    }
    return .@make_string$;
    }
    
    function makeCategory {
    set .@make_string$,"";
    for(set .@i,0; .@i<getarraysize(@category$); set .@i,.@i+1)
    {
    if(.@make_string$ == "")
    {
    setarray @listCat$[getarraysize(@listCat$)],@category$[.@i];
    set .@make_string$,@category$[.@i];
    }
    else
    {
    if(compare(.@make_string$,@category$[.@i])==0)
    {
    setarray @listCat$[getarraysize(@listCat$)],@category$[.@i];
    set .@make_string$,.@make_string$+":"+@category$[.@i];
    }
    }
    }
    return .@make_string$;
    }
    function add_item
    {
    set .@ItemID,getarg(0,-1); //IteID
    set .@itemQ,getarg(1,-1); //Item Quantity
    set .@points,getarg(2,-1);
    set .@cat$,getarg(3,"Uncategorized"); //Category
    
    if(.@ItemID == -1)
    {
    debugmes "Invalid Item ID. Script not completely loaded.";
    end;
    }
    else if(.@itemQ == -1)
    {
    debugmes "Invalid Item Quantity. Script not completely loaded.";
    end;
    }
    else if(.@points == -1)
    {
    debugmes "Points assignment error. Script not completely loaded.";
    end;
    }
    set .@key,getarraysize(@ItemID);
    setarray @ItemID[.@key],.@ItemID;
    setarray @itemQ[.@key],.@itemQ;
    setarray @points[.@key],.@points;
    setarray @category$[.@key],.@cat$;
    return 1; //return 1 as success
    }
    function garbagecol{
    deletearray @ItemID[0],128;
    deletearray @itemQ[0],128;
    deletearray @points[0],128;
    deletearray @category$[0],128;
    deletearray @listCat$[0],128;
    deletearray @itemKeys[0],128;
    return;
    }
    

×
×
  • Create New...