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-nmm6 (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-nmm6 (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-nmm6 (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
HELP WITH LOOPS WITH MULTIPLE VARIABLES
Author Message
kn4tseb
Master
**

Posts: 392
Likes Given: 45
Likes Received: 10 in 10 posts
Joined: May 2014
Reputation: 0



Post: #1
HELP WITH LOOPS WITH MULTIPLE VARIABLES
OK guys, ive been trying to make this work for hours but i just cant..

here's mosly what i need

Code:
OBJ=<ARGO.UID>
ARGS=<OBJ.SKILLMAKE>     /// lets SUPPOSE THAT ARGS ARE 100.0 BLACKSMITHING,40.0 ARMSLORE,60.0 CARPENTRY
WHILE !(<isempty <ARGV[<LOCAL._WHILE>]>>)
LOCAL.SKILLMAKE=<<STREAT <ARGV[<LOCAL._WHILE>]>>>  // THIS IS UID'S SKILL
LOCAL.SKILLREQ=<STRARG <ARGV[<LOCAL._WHILE>]>> // AND THIS IS THE SKILL REQUIRED IN ARGS (100,40,60) on this example
IF (<dLOCAL.SKILLMAKE> >= <EVAL <dLOCAL.SKILLREQ>+200>)
serv.log hello
ENDIF
ENWHILE

IN CASE ONE REQUIREMENT IS MET I WILL ONLY GET 1 HELLO CONSOLE MESSAGE
IN CASE ALL REQUIREMENTS ARE MET I WILL GET 3 HELLO CONSOLE MESSAGES
what i want is to only get one message if ALL REQUIREMENTS ARE MET.

The thing is that if two or more skills are required to do something
how do i check that all requirements are met.

ON this specific case nomatter if nth requirements return false, it only needs 1 to succeed to continue the script and thats what i dont want to..

i want it only to succeed if all requirements are met, on this case skill levels.
(This post was last modified: 08-12-2014 06:31 AM by kn4tseb.)
08-12-2014 06:23 AM
Find all posts by this user Like Post Quote this message in a reply
darksun84
Sir Spamalot
****

Posts: 1,687
Likes Given: 245
Likes Received: 162 in 151 posts
Joined: Mar 2012
Reputation: 35



Post: #2
RE: HELP WITH LOOPS WITH MULTIPLE VARIABLES
Why don't use canskillmake Tongue ?
Code:
if (<canskillmake <args>>)  //args contains the itemdef of the item
serv.log ok you can make <serv.itemdef.<args>.name>
else
serv.log ko you can't make <serv.itemdef.<args>.name>
endif
08-12-2014 06:58 AM
Find all posts by this user Like Post Quote this message in a reply
kn4tseb
Master
**

Posts: 392
Likes Given: 45
Likes Received: 10 in 10 posts
Joined: May 2014
Reputation: 0



Post: #3
RE: HELP WITH LOOPS WITH MULTIPLE VARIABLES
i might try it ^^
let you know how it goes
THANKS

WELL IM NOT SO SURE HOW IT WORKS BUT I THINK IT WONT WORK FOR ME...

for example, in case i need 100 skill1 and 20 skill2 to make something.. how do i make a loop that checks both skills with player doing the action and returns true only if both requirements are met?
(This post was last modified: 08-12-2014 07:59 AM by kn4tseb.)
08-12-2014 07:30 AM
Find all posts by this user Like Post Quote this message in a reply
XuN
Sphere Developer
*****

Posts: 852
Likes Given: 102
Likes Received: 156 in 119 posts
Joined: Jul 2013
Reputation: 30



Post: #4
RE: HELP WITH LOOPS WITH MULTIPLE VARIABLES
http://forum.spherecommunity.net/Thread-...7#pid17637 !!!!!!!!!! break!!!!


Code:
OBJ=<ARGO.UID>
ARGS=<OBJ.SKILLMAKE>     /// lets SUPPOSE THAT ARGS ARE 100.0 BLACKSMITHING,40.0 ARMSLORE,60.0 CARPENTRY
WHILE !(<isempty <ARGV[<LOCAL._WHILE>]>>)
LOCAL.SKILLMAKE=<<STREAT <ARGV[<LOCAL._WHILE>]>>>  // THIS IS UID'S SKILL
LOCAL.SKILLREQ=<STRARG <ARGV[<LOCAL._WHILE>]>> // AND THIS IS THE SKILL REQUIRED IN ARGS (100,40,60) on this example
IF !(<dLOCAL.SKILLMAKE> >= <EVAL <dLOCAL.SKILLREQ>+200>)
break // this req was not meet, we don't need any more checks
ENDIF
local.check ++
ENWHILE
if (<local.check> == <argv> ) // You will only have as much local.check as <argv> count if all requirements were OK.
serv.log hello
endif
08-12-2014 07:34 AM
Find all posts by this user Like Post Quote this message in a reply
kn4tseb
Master
**

Posts: 392
Likes Given: 45
Likes Received: 10 in 10 posts
Joined: May 2014
Reputation: 0



Post: #5
RE: HELP WITH LOOPS WITH MULTIPLE VARIABLES
how would it be if i have 5 checks:

Code:
IF (<dLOCAL.SKILLMAKE> >= <EVAL <dLOCAL.SKILLREQ>+200>)
serv.log 1
ELIF (<dLOCAL.SKILLMAKE> >= <dLOCAL.SKILLREQ> && (<dLOCAL.SKILLMAKE> < <EVAL <dLOCAL.SKILLREQ>+200>)
serv.log 2
ELIF (<dLOCAL.SKILLMAKE> >= <dLOCAL.SKILLREQ>)
serv.log 3
ELIF (<dLOCAL.SKILLMAKE> < <dLOCAL.SKILLREQ>) && (<dLOCAL.SKILLMAKE> >= <EVAL <dLOCAL.SKILLREQ>-200>)
serv.log 4
ELIF (<dLOCAL.SKILLMAKE> < <dLOCAL.SKILLREQ>)
serv.log 5
ELSE
serv.log 6
BREAK
ENDIF

asumming that i have 2 argvs
(This post was last modified: 08-12-2014 09:21 AM by kn4tseb.)
08-12-2014 08:19 AM
Find all posts by this user Like Post Quote this message in a reply
darksun84
Sir Spamalot
****

Posts: 1,687
Likes Given: 245
Likes Received: 162 in 151 posts
Joined: Mar 2012
Reputation: 35



Post: #6
RE: HELP WITH LOOPS WITH MULTIPLE VARIABLES
(08-12-2014 07:30 AM)kn4tseb Wrote:  i might try it ^^
let you know how it goes
THANKS

WELL IM NOT SO SURE HOW IT WORKS BUT I THINK IT WONT WORK FOR ME...

for example, in case i need 100 skill1 and 20 skill2 to make something.. how do i make a loop that checks both skills with player doing the action and returns true only if both requirements are met?

canmakeskill does that without using loop,

Added CANMAKESKILL to test ONLY for the ability to make an item skillwise (it ONLY
tests the SKILLMAKE line), not resources.
08-12-2014 08:37 AM
Find all posts by this user Like Post Quote this message in a reply
kn4tseb
Master
**

Posts: 392
Likes Given: 45
Likes Received: 10 in 10 posts
Joined: May 2014
Reputation: 0



Post: #7
RE: HELP WITH LOOPS WITH MULTIPLE VARIABLES
@DARKSUN, but what would be the itemdef number of a custom item?
08-12-2014 09:26 AM
Find all posts by this user Like Post Quote this message in a reply
darksun84
Sir Spamalot
****

Posts: 1,687
Likes Given: 245
Likes Received: 162 in 151 posts
Joined: Mar 2012
Reputation: 35



Post: #8
RE: HELP WITH LOOPS WITH MULTIPLE VARIABLES
You pass the item definition (itemdef) to canskillmake

[ITEMDEF i_wand_test] //this one
Id = i_wand
Type = t_weapon_bow
Skillmake = blacksmithing 100.0, armslore 40.0, tinkering 60.0
TDATA3=
TDATA4=i_fireball

ON=@Create
Hitpoints = 100

So

canskillmake i_wand_test
(This post was last modified: 08-12-2014 09:37 AM by darksun84.)
08-12-2014 09:36 AM
Find all posts by this user Like Post Quote this message in a reply
kn4tseb
Master
**

Posts: 392
Likes Given: 45
Likes Received: 10 in 10 posts
Joined: May 2014
Reputation: 0



Post: #9
RE: HELP WITH LOOPS WITH MULTIPLE VARIABLES
serv.log <canskillmake i_leather_cap>
Can't resolve <canskillmake i_leather_cap>

I will modify the checks for now because would be needed so many of them if more than one skill is needed >.<
(This post was last modified: 08-12-2014 09:53 AM by kn4tseb.)
08-12-2014 09:46 AM
Find all posts by this user Like Post Quote this message in a reply
Post Reply 


Forum Jump:


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