The following warnings occurred:
Warning [2] Use of undefined constant SAPI_NAME - assumed 'SAPI_NAME' (this will throw an Error in a future version of PHP) - Line: 3388 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3388 errorHandler->error
/showthread.php 116 build_archive_link
Warning [2] Use of undefined constant IN_ARCHIVE - assumed 'IN_ARCHIVE' (this will throw an Error in a future version of PHP) - Line: 3331 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3331 errorHandler->error
/inc/functions.php 3324 build_forum_breadcrumb
/showthread.php 195 build_forum_breadcrumb
Warning [2] Use of undefined constant IN_ARCHIVE - assumed 'IN_ARCHIVE' (this will throw an Error in a future version of PHP) - Line: 3331 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3331 errorHandler->error
/showthread.php 195 build_forum_breadcrumb






Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Vendor Shop HELP
Author Message
Skul
Master
**

Posts: 413
Likes Given: 0
Likes Received: 19 in 15 posts
Joined: Jun 2012
Reputation: 9



Post: #17
RE: Vendor Shop HELP
OK Extreme, here's the code.
Code:
[comment information]
Add PACKET159=f_packet_0x9f to sphere.ini

[function testbuy]
sysmessage Buy from who?
targetf f_testbuy

[function f_testbuy]
if (<argo.ischar>)
    argn1=<argo.uid>
endif
if (<uid.<argn1>.ischar>)
    if (<uid.<argn1>.npc>==brain_vendor)
        if (<uid.<argn1>.findlayer.26.rescount>)
            forcont <uid.<argn1>.findlayer.26>
                if (<tag0.override.value>) || (<value>)
                    local.x += 1
                    local.uid<dlocal.x>=<uid>
                    if (<tag0.override.value>)
                        local.uid<dlocal.x>.value=<tag0.override.value>
                    else
                        local.uid<dlocal.x>.value=<value>
                    endif
                endif
            endfor
            if (<local.x>)
                for x 1 <local.x>
                    if (strmatch(<local.packet>,0))
                        local.packet=d<local.uid<dlocal.x>> w<uid.<local.uid<dlocal.x>>.dispid> w<uid.<local.uid<dlocal.x>>.color> w<uid.<local.uid<dlocal.x>>.amount> w<uid.<local.uid<dlocal.x>>.value> w<eval strlen(<uid.<local.uid<dlocal.x>>.name>)> <asc <uid.<local.uid<dlocal.x>>.name>>
                    else
                        local.packet=<local.packet> d<local.uid<dlocal.x>> w<uid.<local.uid<dlocal.x>>.dispid> w<uid.<local.uid<dlocal.x>>.color> w<uid.<local.uid<dlocal.x>>.amount> w<uid.<local.uid<dlocal.x>>.value> w<eval strlen(<uid.<local.uid<dlocal.x>>.name>)> <asc <uid.<local.uid<dlocal.x>>.name>>
                    endif
                    local.packetlength += <eval <eval strlen(<uid.<local.uid<dlocal.x>>.name>)> +14>
                endfor
                if !(<argn2>)
                    if (<dlocal.x> > 5)
                        uid.<argn1>.speak I have many goods for sale.
                    else
                        uid.<argn1>.speak What would you like yo buy?
                    endif
                endif
                sendpacket 09e w<eval <local.packetlength> +9> d<argn1> w<local.x> <local.packet>
                return 1
            endif
        endif
        if !(<argn2>)
            argo.speak I have nothing to sell.
        endif
    endif
endif

[function f_packet_0x9f]
ref1=<local.char>
ref2=((<local.6> | (<local.5> * 256)) | (( <local.4> | (<local.3> * 256)) * 65536))
for x 1 <local.8>
    local.item<dlocal.x>=((<local.<eval <local.item> +12>> | (<local.<eval <local.item> +11>> * 256)) | (( <local.<eval <local.item> +10>> | (<local.<eval <local.item> +9>> * 256)) * 65536))
    local.item<dlocal.x>.amount=(<local.<eval <local.item> +13>> | <local.<eval <local.item> +14>>)
    local.item += 6
endfor
for x 1 <local.x>
    if (<uid.<local.item<dlocal.x>>.tag0.override.value>)
        local.cost += <uid.<local.item<dlocal.x>>.tag0.override.value>)
    else
        local.cost += <uid.<local.item<dlocal.x>>.value>
    endif
endfor
if (<eval <ref1.findlayer.21.rescount i_gold> +<ref1.findlayer.29.rescount i_gold>> >= <dlocal.cost>) || (<ref1.isgm>)
    if !(<ref1.isgm>)
        forcont <ref1.findlayer.21>
            if (<local.cost>)
                if (<type>==t_gold)
                    if (<amount> > <local.cost>)
                        amount -= <local.cost>
                        update
                        local.cost=
                    else
                        local.cost -= <amount>
                        remove
                    endif
                endif
            endif
        endfor
        if (<local.cost>)
            forcont <ref1.findlayer.29>
                if (<local.cost>)
                    if (<type>==t_gold)
                        if (<amount> > <local.cost>)
                            amount -= <local.cost>
                            update
                            local.cost=
                        else
                            local.cost -= <amount>
                            remove
                        endif
                    endif
                endif
            endfor
        endif
    endif
    for x 1 <local.x>
        if (<uid.<local.item<dlocal.x>>.amount>==<dlocal.item<dlocal.x>.amount>)
            uid.<local.item<dlocal.x>>.cont=<ref1.findlayer.21>
        else
            uid.<local.item<dlocal.x>>.amount -= <local.item<dlocal.x>.amount>
            serv.newitem=<uid.<local.item<dlocal.x>>.baseid>
            new.amount=<local.item<dlocal.x>.amount>
            new.cont=<ref1.findlayer.21>
        endif
        if (strmatch(<local.items>,0))
            local.items=<uid.<local.item<dlocal.x>>.name>
        else
            if !(<local.item<eval <local.x> +1>>)
                local.items=<local.items>, and <uid.<local.item<dlocal.x>>.name>
            else
                local.items=<local.items>, <uid.<local.item<dlocal.x>>.name>
            endif
        endif
    endfor
    ref2.speak Here <qval <dlocal.x>==1 ?is:are> your <qval <dlocal.x>==1 ?item:items> <local.items>.
    ref2.speak That will be <dlocal.cost> gold.
    ref2.speak Thank you very much!
    ref2.findlayer.29.more1 += <local.cost>
    if (<ref2.findlayer.29.more1> > <ref2.findlayer.29.more2>)
        ref2.findlayer.29.more1=<ref2.findlayer.29.more2>
    endif
else
    ref2.speak You can not afford that.
endif
ref1.f_testbuy <ref2.uid>, 1
return 1

"I ask a question to the answer I already know."

Marchadium :: http://www.marchadium.ca/ :: Join us!
09-27-2012 10:33 AM
Visit this user's website Find all posts by this user Like Post Quote this message in a reply
Post Reply 


Messages In This Thread
Vendor Shop HELP - Extreme - 09-23-2012, 01:03 AM
RE: Vendor Shop HELP - Skul - 09-23-2012, 03:30 AM
RE: Vendor Shop HELP - Extreme - 09-23-2012, 04:34 AM
RE: Vendor Shop HELP - Extreme - 09-24-2012, 12:17 PM
RE: Vendor Shop HELP - Skul - 09-24-2012, 12:28 PM
RE: Vendor Shop HELP - Extreme - 09-24-2012, 12:31 PM
RE: Vendor Shop HELP - Skul - 09-24-2012, 12:42 PM
RE: Vendor Shop HELP - Extreme - 09-24-2012, 12:51 PM
RE: Vendor Shop HELP - Skul - 09-24-2012, 12:57 PM
RE: Vendor Shop HELP - Extreme - 09-24-2012, 01:09 PM
RE: Vendor Shop HELP - Skul - 09-24-2012, 02:41 PM
RE: Vendor Shop HELP - Extreme - 09-24-2012, 03:14 PM
RE: Vendor Shop HELP - Skul - 09-24-2012, 03:59 PM
RE: Vendor Shop HELP - Skul - 09-26-2012, 02:13 PM
RE: Vendor Shop HELP - Skul - 09-26-2012, 08:18 PM
RE: Vendor Shop HELP - Extreme - 09-27-2012, 01:22 AM
RE: Vendor Shop HELP - Skul - 09-27-2012 10:33 AM
RE: Vendor Shop HELP - Extreme - 09-27-2012, 12:36 PM

Forum Jump:


User(s) browsing this thread: 2 Guest(s)