viewing paste vending_control | Text

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291
//===== Hercules Script ====================================
//= Vendor Control
//===== By: ================================================
//= Original by Emistry
//= Rewrite by AnnieRuru
//===== Current Version: ===================================
//= 2.1
//===== Compatible With: ===================================
//= Hercules 2018-06-02
//===== Description: =======================================
//= Vendors only vend on certain coordinate, looks tidy :P
//===== Topic ==============================================
//= http://herc.ws/board/topic/4509-vendor-control-rewrite/
//===== Additional Comments: ===============================
//= Revert back to use unitwalk
//==========================================================
mall,99,95,4    script  Vending Helper  4_F_JPN2,{
        mes "["+ strnpcinfo(NPC_NAME_VISIBLE) +"]";
        if ( !getskilllv( "MC_VENDING" ) ) {
                mes "You dont have ^0055FFVending Skill^000000.";
                close;
        }
        mes "Select a slot and start vending.";
        while ( true ) {
                .@menu$ = .@currentpage ? "Previous Page:" : ":";
                .@pageindex = .@currentpage * .slotperpage;
                for ( .@i = 0; .@i < .slotperpage && .@pageindex + .@i < .count; ++.@i ) {
                        if ( !getmapxy( .@map$, .@x, .@y, UNITTYPE_NPC, "#vend_slot"+( .@pageindex + .@i ) ) && getareausers( .map$, .@x, .@y, .@x, .@y ) )
                                .@menu$ += "Slot No."+( .@pageindex + .@i +1 )+" - ^FF0000[Unavailable]^000000:";
                        else
                                .@menu$ += "Slot No."+( .@pageindex + .@i +1 )+" - ^00CC00[Available]^000000:";
                }
                if ( .@currentpage != .maxpage )
                        .@menu$ = .@menu$ + "Next Page";
                .@pick = select( .@menu$ ) -1;
                if ( !.@pick )
                        { --.@currentpage; }
                else if ( .@pick == .slotperpage +1 )
                        { ++.@currentpage; }
                else
                        break;
        }
        .@s =  .@currentpage * .slotperpage + .@pick -1 ;
        if ( !getmapxy( .@map$, .@x, .@y, UNITTYPE_NPC, "#vend_slot"+ .@s ) && getareausers( .map$, .@x, .@y, .@x, .@y ) ) {
                mes " ";
                mes "This slot is ^FF0000[UnAvailable]^000000.";
                close;
        }
        warp .@map$, .@x, .@y;
        hideonnpc "#vend_slot"+ .@s;
        donpcevent "#vend_slot"+ .@s +"::OnCheckAvailable";
        end;
OnInit:
//      ======================= Configuration HERE =============================
        .map$ = "mall"; // map
        setarray .@x, 65,68,71,74,77,80,83,86,89,110,113,116,119,122,125,128,131,134; // x coordinates
        setarray .@y, 106,104,102,100,98,96,94; // y coordinates
        .slotperpage = 20; // display how many slots per page (prevent making the menu too long)
 
        freeloop true;
        setcell .map$, 0,0, 500,500, cell_novending, true;
        .@x_size = getarraysize( .@x );
        .@y_size = getarraysize( .@y );
        for ( .@i = 0; .@i < .@y_size; ++.@i ) {
                for ( .@j = 0; .@j < .@x_size; ++.@j ) {
                        if ( checkcell( .map$, .@x[.@j], .@y[.@i], cell_chkpass ) ) {
                                movenpc "#vend_slot"+ .count, .@x[.@j], .@y[.@i];
                                setcell .map$, .@x[.@j], .@y[.@i], .@x[.@j], .@y[.@i], cell_novending, false;
                                if ( getareausers( .map$, .@x[.@j], .@y[.@i], .@x[.@j], .@y[.@i] ) ) {
                                        hideonnpc "#vend_slot"+ .count;
                                        donpcevent "#vend_slot"+ .count +"::OnCheckAvailable";
                                }
                                ++.count;
                        }
                }
        }
        .maxpage = .count / .slotperpage + ( .count % .slotperpage > 0 ) -1;
        end;
}
 
-       script  vend_slot       FAKE_NPC,{
        mes "[Vending Slot]";
        if ( !getskilllv( "MC_VENDING" ) ) {
                mes "You dont have ^0055FFVending Skill^000000.";
                close;
        }
        getmapxy .@map$, .@x, .@y, UNITTYPE_NPC;
        if ( getareausers( .@map$, .@x, .@y, .@x, .@y ) ) {
                mes "Someone already using this slot";
                close;
        }
        unitwalk getcharid(3), .@x, .@y;
        mes "Spot : ^777777Available^000000";
        mes "^0055FF[ Vending Area Rules ]^000000";
        mes "^FF0000 ~ Use proper Shop Name.^000000";
        mes "^777777Player who failed to follow these rules will be punished.^000000";
        hideonnpc strnpcinfo(NPC_NAME);
        donpcevent strnpcinfo(NPC_NAME)+"::OnCheckAvailable";
        close;
OnCheckAvailable:
        sleep 10000;
        getmapxy .@map$, .@x, .@y, UNITTYPE_NPC;
        while ( getareausers( .@map$, .@x, .@y, .@x, .@y ) )
                sleep 10000;
        hideoffnpc strnpcinfo(NPC_NAME);
        end;
}
 
// Add more if needed.
mall,1,1,4      duplicate(vend_slot)    #vend_slot1     4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot2     4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot3     4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot4     4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot5     4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot6     4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot7     4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot8     4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot9     4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot10    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot11    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot12    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot13    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot14    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot15    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot16    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot17    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot18    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot19    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot20    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot21    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot22    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot23    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot24    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot25    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot26    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot27    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot28    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot29    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot30    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot31    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot32    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot33    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot34    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot35    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot36    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot37    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot38    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot39    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot40    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot41    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot42    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot43    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot44    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot45    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot46    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot47    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot48    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot49    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot50    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot51    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot52    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot53    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot54    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot55    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot56    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot57    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot58    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot59    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot60    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot61    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot62    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot63    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot64    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot65    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot66    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot67    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot68    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot69    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot70    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot71    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot72    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot73    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot74    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot75    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot76    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot77    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot78    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot79    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot80    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot81    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot82    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot83    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot84    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot85    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot86    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot87    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot88    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot89    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot90    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot91    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot92    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot93    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot94    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot95    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot96    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot97    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot98    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot99    4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot100   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot101   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot102   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot103   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot104   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot105   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot106   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot107   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot108   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot109   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot110   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot111   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot112   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot113   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot114   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot115   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot116   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot117   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot118   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot119   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot120   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot121   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot122   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot123   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot124   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot125   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot126   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot127   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot128   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot129   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot130   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot131   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot132   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot133   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot134   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot135   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot136   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot137   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot139   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot140   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot141   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot142   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot143   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot144   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot145   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot146   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot147   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot148   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot149   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot150   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot151   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot152   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot153   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot154   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot155   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot156   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot157   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot158   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot159   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot160   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot161   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot162   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot163   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot164   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot165   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot166   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot167   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot168   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot169   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot170   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot171   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot172   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot173   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot174   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot175   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot176   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot177   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot178   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot179   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot180   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot181   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot182   4_BOARD3
mall,1,1,4      duplicate(vend_slot)    #vend_slot183   4_BOARD3
Viewed 826 times, submitted by Begin.