Seite 1 von 1

Makeitem außerhalb von Standard Spheremenüs

Verfasst: 19 Mär 2008 10:42
von tharyl
Hallo zusammen.
Nachdem ich nun Jahrelang aus den Resourcen von UODEV schöpfen durfte und einige Amüsante Threads lesen konnte, vorallem von Nazghul, Moe usw. ist mir aufgefallen, dass bei den fertigen Scripten kaum noch wer postet. Desshalb dachte ich setze ich diese Funktion hier herein zum nutzen. Ist keine Großartige Sache und vielleicht gibt`s nen besseren Weg, aber bei mir funktioniert sie hervoragend. Zu den Copyrights... mir isses Egal ob ihr sie für eure eigene Funktion ausgebt und auf nen Vermerk bestehe ich ganz sicher nicht. Für Fragen und bugberichte bin ich natürlich offen, ebenso wie für Verbesserungen.

So, dann:

Code: Alles auswählen

//<------------------------------------------------------------------------------------>
// Diese Funktionssammlung hat den Sinn den Spherestandart MAKEITEM soft zu Coden.
//
// Getestete SPHERE-REVISION
//	56b - GUILDVERSION - REL: 03.2008
//
//
// FUNKTIONEN:
// F_MAKEITEM <ID>				Erwartet die ID eines Items. Erzeugt nach Abfrage von Skill
//								Und Resourcen ein Item und verbraucht die Resourcen.
//								1 Bei Erfolgreichem Ablauf, 0 bei gescheitertem.
//
// F_PRUEF_RES <RESOURCEN>		Erwartet die Resorucensammlung eines Items. Beispiel:
//								18 i_cloth, 2 i_leather_hide...
//								Prüft mittels "restest" nach ob sich alle Gegenstände im Backpack
//								befinden. 
//								1 Bei erfolgreicher Prüfung, 0 bei Fehlendem Item.
//
// F_CONSUME_RES <RESOURCEN>	Erwartet die Resorucensammlung eines Items. Beispiel:
//								18 i_cloth, 2 i_leather_hide...
//								Verbraucht alle aufgeführten Resourcen und wirft anschließend 1 zurück.
//
// F_CAN_MAKE <ID>				Prüft, ob der Anwender das Item theoretisch herstellen könnte.
//								Sowohl SKILLMAKE als auch RESOURCES werden abgefragt.
//								Gibt 1 bei erfolgreicher Prüfung und 0 bei nicht erfolgreicher Prüfung zurück.
//
// F_CAN_MAKESKILL <ID>			Prüft, ob der Anwender das Item theoretisch herstellen könnte nur
//								Unter der Berücksichtigung des SKILLMAKE. Nützlich für Herrstell-GUMPS.
//								Beispiel:
//								IF (<SRC.F_CAN_MAKESKILL i_robe>)
//									tilepic ...
//									button ...
//									text ...
//								ENDIF
//								Gibt 1 bei erfolgreicher Prüfung und 0 bei nicht erfolgreicher Prüfung zurück.
//<------------------------------------------------------------------------------------>
//
// Anwendungsbereich - Beispiel
//
// [DIALOG D_MENUE_SCHNEIDER]
// 0,0
// ...
// IF (<F_CAN_MAKESKILL i_robe>)
//	tilepic ...
//	button ... 1
//	text ...
//ENDIF
//
// [DIALOG D_MENUE_SCHNEIDER BUTTON]
//
// ON=1
// IF (<SRC.F_MAKEITEM i_robe>)	
// 		SKILLGAIN - Prozeduren ?
// ENDIF
//


[FUNCTION F_MAKEITEM]

IF (<F_CAN_MAKE <ARGS>>)

	Serv.NEWITEM <ARGS>						//Das Zielitem erschaffen
	var.temp_resources = <NEW.RESOURCES>	//Die Resourcen abgreifen.
	
	F_CONSUME_RES <var.temp_resources>		//Die Resourcen verbrauchen.

	BOUNCE <NEW>							//Und ins Backpack packen.

	return 1								//Wir geben 1 für den Erfolg zurück.

ELSE

	SYSMESSAGE "Ihr habt nicht alles dabei was ihr benoetigt."
	return 0

ENDIF

//<-------------------------------------------------------->

[FUNCTION F_PRUEF_RES]
// <ARGV[0..n]> <-- Resourcen Form: <int0> <id0>[,..<intN> <idN>]

FOR <EVAL <ARGV>>								
	IF !(<restest <ARGV[<local._for>-1]>>)
		return 0
	ENDIF	
ENDFOR	

return 1

//<-------------------------------------------------------->
[FUNCTION F_CONSUME_RES]
// <ARGV[0..n]> <-- Resourcen Form: <int0> <id0>[,..<intN> <idN>]
FOR <EVAL <ARGV>>
	CONSUME <ARGV[<local._for>-1]>
ENDFOR

return 1

//<-------------------------------------------------------->
[FUNCTION F_CAN_MAKE]
//<ARGS> = ID

Serv.NEWITEM <ARGS>									//Wir erstellen das Item ersteinmal.
var.temp_skillmake = <NEW.SKILLMAKE>				//Speichern der Skills, die benötigt werden.
var.temp_resources = <NEW.RESOURCES>				//Speichern der Resourcen die Benötigt werden.
NEW.REMOVE											//Jetzt ist das Item überflüssig, löschen.


IF !(<F_PRUEF_RES <var.temp_skillmake>>)
	return 0
ENDIF

IF !(<F_PRUEF_RES <var.temp_resources>>)
	return 0
ENDIF

return 1

//<-------------------------------------------------------->
[FUNCTION F_CAN_MAKESKILL]
//<ARGS> = ID

Serv.NEWITEM <ARGS>									//Wir erstellen das Item ersteinmal.
var.temp_skillmake = <NEW.SKILLMAKE>				//Speichern der Skills, die benötigt werden.
NEW.REMOVE											//Jetzt ist das Item überflüssig, löschen.


IF !(<F_PRUEF_RES <var.temp_skillmake>>)
	return 0
ENDIF

return 1
mfg
Tharyl

Verfasst: 19 Mär 2008 18:27
von Sedin
Um auch einen kleinen Teil beitragen zu können:

-> Standard


;)

Verfasst: 20 Mär 2008 09:15
von tharyl
Oha, korrigiert ^^.

<- Wer dauernd irgendwelche englischen Revisions von irgendwas liest...

Verdammte Rechtschreibregeln... warum haben wir sowas eigendlich?

mfg

Verfasst: 20 Mär 2008 10:55
von Torfo
Damit man Standard und Standarte auseinanderhalten kann.

Verfasst: 20 Mär 2008 12:59
von nazghul
...und Standard ist auch im Englischen "standard"