Demande aide code

Logiciel Payant (à licence). C'est l'un des plus aboutis graphiquement.
Avatar du membre
Neuralnoise
Beketien Exalté
Messages : 2323
Enregistré le : sam. 11 juil. 2009 01:00
Date de naissance : 18 mai 1989

Demande aide code

Message par Neuralnoise » lun. 19 févr. 2018 20:09

Bonjours tous,

Pour mon extension Forbidden Lands, je souhaite intégrer une case pour les Consumables qui sont représentés par un dé à lancer. Mon problème c'est que le code que j'ai pour faire cela ne fonctionne que pour le premier (Food), les lancés et les drag&drop de dés sont automatiquement pour Food, peut importer si je drop dans Water, Arrows ou Torches (cf le screenshot).

Image

Mon soucis c'est que le script qui pose se problème (celui de Food) s'applique à toute ma fiche et prédomine sur les autres (celui de Water, Arrrows et Food). Quel est le moyen pour que chaque script soit individualisé à chaque Consumables? Le plus simple je pense serait de les intégrer dans un "controls" et non dans le "windowclass" comme actuellement mais lequel? Ou alors je fais un "windowclass" par Consummable?

Merci pour l'aide !

Voici le code :

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-1"?>

<!-- 
  Please see the license.html file included with this distribution for 
  attribution and copyright information.
-->

<root>
	<windowclass name="charsheet_inventory">
		<margins control="0,0,0,3" />		
  <!-- CONSUMMABLES SCRIPTS -->
		<!-- FOOD -->	
		<script>
			function onDragStart(button, x, y, draginfo)
				if labelfood.isEmpty() and dicefood.isEmpty() and bonusfood.getValue() == 0 then
					return nil;
				end

				if dicefood.isEmpty() then
					draginfo.setType("number");
					draginfo.setDescription(labelfood.getValue());
					draginfo.setStringData(labelfood.getValue());
					draginfo.setNumberData(bonusfood.getValue());
				else
					local rRoll = { sType = "dice", sDesc = labelfood.getValue(), aDice = dicefood.getDice(), nMod = bonusfood.getValue() };
					ActionsManager.performAction(draginfo, nil, rRoll);
				end
				return true;
			end
			
			function onDoubleClick(x, y)
				if dicefood.isEmpty() then
					ModifierStack.addSlot(labelfood.getValue(), bonusfood.getValue());
				else
					local rRoll = { sType = "dice", sDesc = labelfood.getValue(), aDice = dicefood.getDice(), nMod = bonusfood.getValue() };
					ActionsManager.performAction(nil, nil, rRoll);
				end
				return true;
			end

			function onDrop(x, y, draginfo)
				local sDragType = draginfo.getType();
				if sDragType == "dice" then
					local aDropDice = draginfo.getDieList();
					for _,vDie in ipairs(aDropDice) do
						dicefood.addDie(vDie.type);
					end
					return true;
				end
			end
		</script>
		<!--WATER-->
		<script>
			function onDragStart(button, x, y, draginfo)
				if labelwater.isEmpty() and dicewater.isEmpty() and bonuswater.getValue() == 0 then
					return nil;
				end

				if dicewater.isEmpty() then
					draginfo.setType("number");
					draginfo.setDescription(labelwater.getValue());
					draginfo.setStringData(labelwater.getValue());
					draginfo.setNumberData(bonuswater.getValue());
				else
					local rRoll = { sType = "dice", sDesc = labelwater.getValue(), aDice = dicewater.getDice(), nMod = bonuswater.getValue() };
					ActionsManager.performAction(draginfo, nil, rRoll);
				end
				return true;
			end
			
			function onDoubleClick(x, y)
				if dicewater.isEmpty() then
					ModifierStack.addSlot(labelwater.getValue(), bonuswater.getValue());
				else
					local rRoll = { sType = "dice", sDesc = labelwater.getValue(), aDice = dicewater.getDice(), nMod = bonuswater.getValue() };
					ActionsManager.performAction(nil, nil, rRoll);
				end
				return true;
			end

			function onDrop(x, y, draginfo)
				local sDragType = draginfo.getType();
				if sDragType == "dice" then
					local aDropDice = draginfo.getDieList();
					for _,vDie in ipairs(aDropDice) do
						dicewater.addDie(vDie.type);
					end
					return true;
				end
			end
		</script>
		<!--ARROWS-->
		<script>
			function onDragStart(button, x, y, draginfo)
				if labelarrows.isEmpty() and dicearrows.isEmpty() and bonusarrows.getValue() == 0 then
					return nil;
				end

				if dicearrows.isEmpty() then
					draginfo.setType("number");
					draginfo.setDescription(labelarrows.getValue());
					draginfo.setStringData(labelarrows.getValue());
					draginfo.setNumberData(bonusarrows.getValue());
				else
					local rRoll = { sType = "dice", sDesc = labelarrows.getValue(), aDice = dicearrows.getDice(), nMod = bonusarrows.getValue() };
					ActionsManager.performAction(draginfo, nil, rRoll);
				end
				return true;
			end
			
			function onDoubleClick(x, y)
				if dicearrows.isEmpty() then
					ModifierStack.addSlot(labelarrows.getValue(), bonusarrows.getValue());
				else
					local rRoll = { sType = "dice", sDesc = labelarrows.getValue(), aDice = dicearrows.getDice(), nMod = bonusarrows.getValue() };
					ActionsManager.performAction(nil, nil, rRoll);
				end
				return true;
			end

			function onDrop(x, y, draginfo)
				local sDragType = draginfo.getType();
				if sDragType == "dice" then
					local aDropDice = draginfo.getDieList();
					for _,vDie in ipairs(aDropDice) do
						dicearrows.addDie(vDie.type);
					end
					return true;
				end
			end
		</script>		
		<!--TORCHES-->
		<script>
			function onDragStart(button, x, y, draginfo)
				if labeltorches.isEmpty() and dicetorches.isEmpty() and bonustorches.getValue() == 0 then
					return nil;
				end

				if dicetorches.isEmpty() then
					draginfo.setType("number");
					draginfo.setDescription(labeltorches.getValue());
					draginfo.setStringData(labeltorches.getValue());
					draginfo.setNumberData(bonustorches.getValue());
				else
					local rRoll = { sType = "dice", sDesc = labeltorches.getValue(), aDice = dicetorches.getDice(), nMod = bonustorches.getValue() };
					ActionsManager.performAction(draginfo, nil, rRoll);
				end
				return true;
			end
			
			function onDoubleClick(x, y)
				if dicetorches.isEmpty() then
					ModifierStack.addSlot(labeltorches.getValue(), bonustorches.getValue());
				else
					local rRoll = { sType = "dice", sDesc = labeltorches.getValue(), aDice = dicetorches.getDice(), nMod = bonustorches.getValue() };
					ActionsManager.performAction(nil, nil, rRoll);
				end
				return true;
			end

			function onDrop(x, y, draginfo)
				local sDragType = draginfo.getType();
				if sDragType == "dice" then
					local aDropDice = draginfo.getDieList();
					for _,vDie in ipairs(aDropDice) do
						dicetorches.addDie(vDie.type);
					end
					return true;
				end
			end
		</script>		

		<sheetdata>
		<!--INVENTOY -->
		<frame_char name="inventoryframe">
				<bounds>15,0,-29,-205</bounds>
			</frame_char>
			
			<label name="count_label">
				<anchored to="inventoryframe" position="insidetopleft" offset="20,10" width="20" />
				<center />
				<static>#</static>
			</label>
			<genericcontrol name="rightanchor">
				<anchored to="inventoryframe" width="0" height="0">
					<top offset="10" />
					<right offset="-20" />
				</anchored>
				<invisible />
			</genericcontrol>
			<genericcontrol name="idelete_header">
				<anchored to="rightanchor" width="20" height="20">
					<top />
					<right anchor="left" relation="relative" offset="-5" />
				</anchored>
				<disabled />
			</genericcontrol>
			<genericcontrol name="shortcut_header">
				<anchored to="rightanchor" width="20" height="20">
					<top />
					<right anchor="left" relation="relative" offset="-2" />
				</anchored>
				<disabled />
			</genericcontrol>
			<genericcontrol name="carried_header">
				<anchored to="rightanchor" width="20" height="20">
					<top />
					<right anchor="left" relation="relative" offset="-5" />
				</anchored>
				<icon>char_inv_carried_header</icon>
				<tooltip textres="char_tooltip_itemcarried" />
			</genericcontrol>
			<label name="weight_label">
				<anchored to="rightanchor" width="30">
					<top />
					<right anchor="left" relation="relative" offset="-10" />
				</anchored>
				<center />
				<static textres="char_label_itemweight" />
				<tooltip textres="char_tooltip_itemweight" />
			</label>
			<label name="location_label">
				<anchored to="rightanchor" width="80">
					<top />
					<right anchor="left" relation="relative" offset="-10" />
				</anchored>
				<center />
				<static textres="char_label_itemlocation" />
			</label>
			<label name="name_label">
				<anchored to="rightanchor">
					<top />
					<left parent="inventoryframe" offset="55" />
					<right anchor="left" relation="relative" offset="-5" />
				</anchored>
				<static textres="char_label_itemname" />
				<center />
			</label>

			<list_charinv name="inventorylist">
				<anchored to="inventoryframe">
					<top offset="40" />
					<left offset="15" />
					<right offset="-20" />
					<bottom offset="-15" />
				</anchored>
			</list_charinv>
			<scrollbar>
				<anchored to="inventorylist" />
				<target>inventorylist</target>
			</scrollbar>

			<button_iedit name="inventorylist_iedit">
				<anchored to="inventorylist" position="aboveright" offset="5,10" />
				<target>inventorylist</target>
			</button_iedit>
			<button_iadd name="inventorylist_iadd">
				<anchored to="inventorylist_iedit" position="lefthigh" offset="5,0" />
				<target>inventorylist</target>
			</button_iadd>
			
			<frame_char name="encumbranceframe">
				<bounds>15,-205,240,50</bounds>
			</frame_char>
			<number_dropadd name="encumbrance" source="encumbrance.slot.amount">
				<anchored to="encumbranceframe" position="insidetopleft" offset="160,15" width="40" height="20" />
				<description field="name" />
			</number_dropadd>			
			<label name="encumbrance_label">
				<anchored to="encumbranceframe" position="insidetopleft" offset="30,15" />
				<static textres="char_label_encumbrance" />
			</label>

			<frame_char name="xpframe">
				<bounds>255,-205,-29,50</bounds>
			</frame_char>
			<number_dropadd name="xp" source="xp.slot.amount">
				<anchored to="xpframe" position="insidetopleft" offset="160,15" width="40" height="20" />
				<description field="name" />
			</number_dropadd>
			<label name="xp_label">
				<anchored to="xpframe" position="insidetopleft" offset="50,15" />
				<static textres="char_label_xp" />
			</label>			

<!-- CONSUMMABLES --> 

			<frame_char name="consumablesframe">
				<bounds>15,-155,240,150</bounds>
			</frame_char>
			<label_frametop name="consumables_label">
				<anchored to="consumablesframe" />
				<static textres="char_label_consumables" />
			</label_frametop>

			<!-- FOOD -->
			<basicnumber name="bonusfood">
				<anchored to="consumablesframe" position="insidetopleft" offset="20,30" width="40" height="20" />
				<script>
					function onDragStart(button, x, y, draginfo)
						return window.onDragStart(button, x, y, draginfo);
					end

					function onDoubleClick(x, y)
						return window.onDoubleClick(x, y);
					end

					function onGainFocus()
						window.setFrame("rowshade");
					end

					function onLoseFocus()
						window.setFrame(nil);
					end
				</script>
			</basicnumber>
			<basicdice name="dicefood">
				<anchored to="consumablesframe" position="insidetopleft" offset="20,30" width="40" height="20" />
				<frame name="fielddark" offset="7,5,7,5" />
				<script>
					function onInit()
						onValueChanged();
					end
					
					function onValueChanged()
						setVisible(not isEmpty());
					end

					function onDragStart(button, x, y, draginfo)
						return window.onDragStart(button, x, y, draginfo);
					end

					function onDoubleClick(x, y)
						return window.onDoubleClick(x, y);
					end
				</script>
			</basicdice>
			<stringcontrol name="labelfood">
				<anchored to="consumablesframe" position="insidetopleft" offset="70,30" width="150" height="20" />
				<font>reference-b-large</font>
				<nodrag />
				<script>
					function onDragStart(button, x, y, draginfo)
						return window.onDragStart(button, x, y, draginfo);
					end

					function onDoubleClick(x, y)
						return window.onDoubleClick(x, y);
					end
				</script>				
				<static textres="char_label_food" />
			</stringcontrol>		
			
			<!-- WATER -->
			<basicnumber name="bonuswater">
				<anchored to="consumablesframe" position="insidetopleft" offset="20,58" width="40" height="20" />
				<script>
					function onDragStart(button, x, y, draginfo)
						return window.onDragStart(button, x, y, draginfo);
					end

					function onDoubleClick(x, y)
						return window.onDoubleClick(x, y);
					end

					function onGainFocus()
						window.setFrame("rowshade");
					end

					function onLoseFocus()
						window.setFrame(nil);
					end
				</script>
			</basicnumber>
			<basicdice name="dicewater">
				<anchored to="consumablesframe" position="insidetopleft" offset="20,58" width="40" height="20" />
				<frame name="fielddark" offset="7,5,7,5" />
				<script>
					function onInit()
						onValueChanged();
					end
					
					function onValueChanged()
						setVisible(not isEmpty());
					end

					function onDragStart(button, x, y, draginfo)
						return window.onDragStart(button, x, y, draginfo);
					end

					function onDoubleClick(x, y)
						return window.onDoubleClick(x, y);
					end
				</script>
			</basicdice>
			<stringcontrol name="labelwater">
				<anchored to="consumablesframe" position="insidetopleft" offset="70,58" width="150" height="20" />
				<font>reference-b-large</font>
				<nodrag />
				<script>
					function onDragStart(button, x, y, draginfo)
						return window.onDragStart(button, x, y, draginfo);
					end

					function onDoubleClick(x, y)
						return window.onDoubleClick(x, y);
					end
				</script>				
				<static textres="char_label_water" />
			</stringcontrol>
			
			<!-- ARROWS -->			
			<basicnumber name="bonusarrows">
				<anchored to="consumablesframe" position="insidetopleft" offset="20,86" width="40" height="20" />
				<script>
					function onDragStart(button, x, y, draginfo)
						return window.onDragStart(button, x, y, draginfo);
					end

					function onDoubleClick(x, y)
						return window.onDoubleClick(x, y);
					end

					function onGainFocus()
						window.setFrame("rowshade");
					end

					function onLoseFocus()
						window.setFrame(nil);
					end
				</script>
			</basicnumber>
			<basicdice name="dicearrows">
				<anchored to="consumablesframe" position="insidetopleft" offset="20,86" width="40" height="20" />
				<frame name="fielddark" offset="7,5,7,5" />
				<script>
					function onInit()
						onValueChanged();
					end
					
					function onValueChanged()
						setVisible(not isEmpty());
					end

					function onDragStart(button, x, y, draginfo)
						return window.onDragStart(button, x, y, draginfo);
					end

					function onDoubleClick(x, y)
						return window.onDoubleClick(x, y);
					end
				</script>
			</basicdice>
			<stringcontrol name="labelarrows">
				<anchored to="consumablesframe" position="insidetopleft" offset="70,86" width="150" height="20" />
				<font>reference-b-large</font>
				<nodrag />
				<script>
					function onDragStart(button, x, y, draginfo)
						return window.onDragStart(button, x, y, draginfo);
					end

					function onDoubleClick(x, y)
						return window.onDoubleClick(x, y);
					end
				</script>				
				<static textres="char_label_arrows" />
			</stringcontrol>	
			
			<!-- TORCHES -->
			<basicnumber name="bonustorches">
				<anchored to="consumablesframe" position="insidetopleft" offset="20,114" width="40" height="20" />
				<script>
					function onDragStart(button, x, y, draginfo)
						return window.onDragStart(button, x, y, draginfo);
					end

					function onDoubleClick(x, y)
						return window.onDoubleClick(x, y);
					end

					function onGainFocus()
						window.setFrame("rowshade");
					end

					function onLoseFocus()
						window.setFrame(nil);
					end
				</script>
			</basicnumber>
			<basicdice name="dicetorches">
				<anchored to="consumablesframe" position="insidetopleft" offset="20,114" width="40" height="20" />
				<frame name="fielddark" offset="7,5,7,5" />
				<script>
					function onInit()
						onValueChanged();
					end
					
					function onValueChanged()
						setVisible(not isEmpty());
					end

					function onDragStart(button, x, y, draginfo)
						return window.onDragStart(button, x, y, draginfo);
					end

					function onDoubleClick(x, y)
						return window.onDoubleClick(x, y);
					end
				</script>
			</basicdice>
			<stringcontrol name="labeltorches">
				<anchored to="consumablesframe" position="insidetopleft" offset="70,114" width="150" height="20" />
				<font>reference-b-large</font>
				<nodrag />
				<script>
					function onDragStart(button, x, y, draginfo)
						return window.onDragStart(button, x, y, draginfo);
					end

					function onDoubleClick(x, y)
						return window.onDoubleClick(x, y);
					end
				</script>				
				<static textres="char_label_torches" />
			</stringcontrol>	

			<basicstring name="consumablesother">
				<anchored to="consumablesframe" position="insidetopleft" offset="130,35" width="90" height="100" />
				<multilinespacing>20</multilinespacing>
			</basicstring>

		<!-- COINS -->
			<frame_char name="coinframe">
				<bounds>255,-155,-29,150</bounds>
			</frame_char>
			<label_frametop name="coin_label">
				<anchored to="coinframe" />
				<static textres="char_label_money" />
			</label_frametop>
			<number_dropadd name="coinamount1" source="coins.slot1.amount">
				<anchored to="coinframe" position="insidetopleft" offset="20,45" width="40" height="20" />
				<description field="name" />
			</number_dropadd>
			<stringu name="coinname1" source="coins.slot1.name">
				<anchored to="coinframe" position="insidetopleft" offset="70,45" width="60" height="20" />
			</stringu>
			<number_dropadd name="coinamount2" source="coins.slot2.amount">
				<anchored to="coinamount1" position="below" offset="0,6" height="20" />
				<description field="name" />
			</number_dropadd>
			<stringu name="coinname2" source="coins.slot2.name">
				<anchored to="coinname1" position="below" offset="0,6" height="20" />
			</stringu>
			<number_dropadd name="coinamount3" source="coins.slot3.amount">
				<anchored to="coinamount2" position="below" offset="0,6" height="20" />
				<description field="name" />
			</number_dropadd>
			<stringu name="coinname3" source="coins.slot3.name">
				<anchored to="coinname2" position="below" offset="0,6" height="20" />
			</stringu>

			<basicstring name="coinother">
				<anchored>
					<left parent="coinname1" anchor="right" offset="10" />
					<right parent="coinframe" offset="-15" />
					<top parent="coinamount1" />
					<bottom parent="coinamount3" />
				</anchored>
				<multilinespacing>20</multilinespacing>
			</basicstring>
		</sheetdata>
	</windowclass>
	
	<windowclass name="char_invitem">
		<margins control="0,0,0,2" />
		<script>
			function onInit()
				onIDChanged();
				getDatabaseNode().onDelete = onDelete;
			end

			function onIDChanged()
				local bID = LibraryData.getIDState("item", getDatabaseNode(), true);
				name.setVisible(bID);
				nonid_name.setVisible(not bID);
			end

			function onDelete(node)
				ItemManager.onCharRemoveEvent(node);
			end
		</script>
		<sheetdata>
			<hn name="isidentified">
				<script>
					function onValueChanged()
						window.onIDChanged();
					end
				</script>
			</hn>

			<number_charinv name="count">
				<bounds>5,2,20,20</bounds>
				<tabtarget next="name" />
				<default>1</default>
			</number_charinv>

			<genericcontrol name="rightanchor">
				<anchored width="0" height="0">
					<top />
					<right />
				</anchored>
				<invisible />
			</genericcontrol>
			<button_idelete name="idelete">
				<anchored width="20" height="20">
					<top offset="2" />
					<right parent="rightanchor" anchor="left" relation="relative" offset="-5" />
				</anchored>
			</button_idelete>
			<linkcontrol_id name="shortcut">
				<anchored width="20" height="20">
					<top offset="2" />
					<right parent="rightanchor" anchor="left" relation="relative" offset="-2" />
				</anchored>
				<class>item</class>
				<readonly />
			</linkcontrol_id>
			<button_char_inv_carried name="carried">
				<anchored width="20" height="20">
					<top offset="2" />
					<right parent="rightanchor" anchor="left" relation="relative" offset="-5" />
				</anchored>
			</button_char_inv_carried>
			<number_charinv name="weight">
				<anchored width="30" height="20">
					<top offset="2" />
					<right parent="rightanchor" anchor="left" relation="relative" offset="-10" />
				</anchored>
				<delaykeyupdate />
				<tabtarget prev="location" />
			</number_charinv>
			<string_charinvloc name="location">
				<anchored width="80" height="20">
					<top offset="2" />
					<right parent="rightanchor" anchor="left" relation="relative" offset="-10" />
				</anchored>
				<tabtarget next="weight" prev="nonid_name" />
			</string_charinvloc>

			<string_charinvname name="name">
				<anchored position="insidetopleft" offset="35,2" height="20">
					<right parent="rightanchor" anchor="left" relation="current" offset="-5" />
				</anchored>
				<tabtarget next="nonid_name" prev="count" />
			</string_charinvname>
			<string_charinvname name="nonid_name">
				<anchored position="insidetopleft" offset="35,2" height="20">
					<right parent="rightanchor" anchor="left" relation="current" offset="-5" />
				</anchored>
				<empty textres="library_recordtype_empty_nonid_item" />
				<invisible />
				<tabtarget next="location" prev="name" />
			</string_charinvname>
		</sheetdata>
	</windowclass>
</root>
- Où est le pognon Lebowski ?! Où il est ton putain de pognon, connard ?!
- Il doit être là, dans le fond, quelque part. Refais voir.

• The Big Lebowski •

Avatar du membre
Neuralnoise
Beketien Exalté
Messages : 2323
Enregistré le : sam. 11 juil. 2009 01:00
Date de naissance : 18 mai 1989

Re: Demande aide code

Message par Neuralnoise » mar. 27 févr. 2018 21:33

Up
- Où est le pognon Lebowski ?! Où il est ton putain de pognon, connard ?!
- Il doit être là, dans le fond, quelque part. Refais voir.

• The Big Lebowski •

Avatar du membre
Rule of Three
Beholder Comptable Tzigane
Messages : 5056
Enregistré le : mar. 15 avr. 2008 01:00
Date de naissance : 31 mai 1974

Re: Demande aide code

Message par Rule of Three » lun. 5 mars 2018 11:17

Salut. Cela fait 10 ans qui je n'ai pas touché à un script avec FG, je ne peux donc que te donner des informations générales (mais je compte bientôt commencer les tutos pour programmer en lua et xml) :

Le problème vient des 4 scripts du départ :
* dans tes balises FOOD ..., tu déclares des fonctions onDrop ect qui appellent elles-mêmes les fonctions de ta fenêtre en renvoyant certaines informations.

Code : Tout sélectionner

<!-- FOOD -->
<basicnumber name="bonusfood">
	<anchored to="consumablesframe" position="insidetopleft" offset="20,30" width="40" height="20" />
	<script>
		function onDragStart(button, x, y, draginfo)
			return window.onDragStart(button, x, y, draginfo);
		end

		function onDoubleClick(x, y)
			return window.onDoubleClick(x, y);
		end

		function onGainFocus()
			window.setFrame("rowshade");
		end

		function onLoseFocus()
			window.setFrame(nil);
		end
	</script>
</basicnumber>
window.onDragStart(button, x, y, draginfo) veut dire d'aller executer la fonction onDragStart de ton objet window, donc la méthode de ton début de script, celle qui est directement dans la balise script de ta balise window.

* dans les scripts de départ, tu crées plusieurs fonctions qui portent le même nom alors que tu ne devrais prendre qu'une seule fonction et gérer les informations contenues dans le draginfo, quitte à en rajouter. Ici, tu crées 4 fonctions onDragStart à la suite dans ta fenêtre. Visiblement, on ne garde que le premier en Lua (ce qui est bizarre car la plupart du temps, c'est la dernière version qui écrase les autres).

Si tu as compris d'où vient ton problème, tu devrais déjà pouvoir le gérer. Mais je n'ai plus assez de recul avec FG pour me souvenir comme ça comment rajouter des infos dans l'objet draginfo. Mais une recherche dans les codes des rulesets existants devrait pouvoir t'aider.

Avatar du membre
Neuralnoise
Beketien Exalté
Messages : 2323
Enregistré le : sam. 11 juil. 2009 01:00
Date de naissance : 18 mai 1989

Re: Demande aide code

Message par Neuralnoise » lun. 5 mars 2018 17:49

Merci RoT pour ta réponse. Ok pour l'explication. A savoir que j'ai rien codé, que j'ai pompé ce qui m'intéressait et que j'essaye de l'appliquer autrement (code et script du record_char_main.xml du ruleset Core de FG).

Je vois ce que tu veux dire mais je n'ai pas les connaissances/compétences pour aller plus loin. A vrai dire, je ne sais pas exactement quelle fonction à telle ligne de code. J'ai des grosses suppositions (suffit de lire...) mais pas de certitudes des tenants et aboutissants. Tout ce qui m'intéresse c'est de drop un dé dans la case, de pouvoir le lancer et d'afficher dans le tchat le résultat et le consummable associé.

M'est d'avis que j'ai trois fois trop de code dans cette feuille et qu'avoir seulement 1 script dans un "control" adapté suffirait.

Je vais me renseigner sur d'autres scripts comme proposé. Grimmbat m'avait pas mal aidé à une époque pour des rulesets, peut être que la réponse est dans l'un d'entre eux :D
- Où est le pognon Lebowski ?! Où il est ton putain de pognon, connard ?!
- Il doit être là, dans le fond, quelque part. Refais voir.

• The Big Lebowski •

Avatar du membre
Neuralnoise
Beketien Exalté
Messages : 2323
Enregistré le : sam. 11 juil. 2009 01:00
Date de naissance : 18 mai 1989

Re: Demande aide code

Message par Neuralnoise » mar. 6 mars 2018 20:58

Après moultes recherches, je tourne en rond.

Je suis allé voir les rulesets d'ici et du forum FG. Systématiquement c'est des dés qui sont inhérents au système sous deux formes :
- dans le script on indique quel type de dés à lancer
- un bouton à cliquer lance un type de dé

Je n'ai pas le ruleset Savage World mais je pense que c'est le système de jeu qui pourrait le plus se rapprocher en terme de script de ce que je recherche.

Du coup j'ai viré tous les scripts (que ce soit en début de feuille que ceux inclus dans les controls) et j'ai viré le control basicnumber de chaque consummables. Ne reste que le stringcontrol et le basicdice pour chacun. Suffirait juste d'un script dans le control basicdice pour lancer le dé en appelant le label du stringcontrol et c'est panard.
- Où est le pognon Lebowski ?! Où il est ton putain de pognon, connard ?!
- Il doit être là, dans le fond, quelque part. Refais voir.

• The Big Lebowski •

Avatar du membre
Rule of Three
Beholder Comptable Tzigane
Messages : 5056
Enregistré le : mar. 15 avr. 2008 01:00
Date de naissance : 31 mai 1974

Re: Demande aide code

Message par Rule of Three » mar. 6 mars 2018 21:04

Si tu donnes le ruleset, je peux regarder comment faire ce que tu veux. C'est juste que je ne suis plus assez sur de moi sur lua pour te dire quoi faire comme ça. Entre C++, javascript et Python, ça commence à faire trop pour ma petite tête :)
Je te file mon adresse email en MP.

Avatar du membre
Neuralnoise
Beketien Exalté
Messages : 2323
Enregistré le : sam. 11 juil. 2009 01:00
Date de naissance : 18 mai 1989

Re: Demande aide code

Message par Neuralnoise » mar. 6 mars 2018 21:09

En tout cas merci RoT pour te donner la peine. Voilà où j'en suis : https://www.catupload.com/download/122a ... 86405.html
- Où est le pognon Lebowski ?! Où il est ton putain de pognon, connard ?!
- Il doit être là, dans le fond, quelque part. Refais voir.

• The Big Lebowski •

Avatar du membre
Rule of Three
Beholder Comptable Tzigane
Messages : 5056
Enregistré le : mar. 15 avr. 2008 01:00
Date de naissance : 31 mai 1974

Re: Demande aide code

Message par Rule of Three » mar. 6 mars 2018 21:12

Ok. Je tente de regarder ça demain.

Avatar du membre
Rule of Three
Beholder Comptable Tzigane
Messages : 5056
Enregistré le : mar. 15 avr. 2008 01:00
Date de naissance : 31 mai 1974

Re: Demande aide code

Message par Rule of Three » sam. 10 mars 2018 17:43

J'ai regardé ton code actuel :
* on peut bien placer les dés qu'on veut dans les cases.
* on peut faire du drag and drop vers le chat. On obtient bien le bon jet de dé mais sans indication de ce qu'on fait. Ca c'est pas compliqué à régler.
* je trouve dans le code des trucs du type bonusarrow mais aucun objet ou balise de ce type n'existe nul part... C'est une scorie ou un truc que tu as oublié d'implanter ?

Avatar du membre
Neuralnoise
Beketien Exalté
Messages : 2323
Enregistré le : sam. 11 juil. 2009 01:00
Date de naissance : 18 mai 1989

Re: Demande aide code

Message par Neuralnoise » sam. 10 mars 2018 17:57

Ca pour être simple je le pense aussi, mais je n'ai rien trouvé, meme dans la docu de FG pour faire ce que je veux.
Rule of Three a écrit :
sam. 10 mars 2018 17:43
* je trouve dans le code des trucs du type bonusarrow mais aucun objet ou balise de ce type n'existe nul part... C'est une scorie ou un truc que tu as oublié d'implanter ?
C'est du scorie, des tests que je supprimerai de la prochaine version.
- Où est le pognon Lebowski ?! Où il est ton putain de pognon, connard ?!
- Il doit être là, dans le fond, quelque part. Refais voir.

• The Big Lebowski •

Répondre

Retourner vers « Fantasy Grounds »

Qui est en ligne

Utilisateurs parcourant ce forum : Le_Père_Haplo et 10 invités