GWCA Foren

12/04/2009 16:43 Hilthorien#1
Weiß wer ob noch irgentwelche GWCA foren vorhanden sind die funktionieren und hat wer den Sourcecode für nen funktionierendes GWCAConstants ( ohne syntax Error) und falls es grad kein laufendes Forum gibt kann mir wer nen paar Item Funcs schicken die funktionieren? Thx für antworten.:o
12/04/2009 17:02 ddl#2
[Only registered and activated users can see links. Click Here To Register...]
12/06/2009 02:54 Jonas_93#3
Das ist soweit ich mich noch erinnere die Constants der Rev107 (bzw. der rev davor). Diese benutze ich persönlich immernoch - ist meiner Meinung nach die beste :P.


Code:
; # -+-+-+-+-+-+-+ #
;   GWCA Constants
;	  By Sune C
; # +-+-+-+-+-+-+- #

#include-once

; The SkillLog structure for use with the Skill Log feature
Global $tagSKILLLOGSTRUCT = "long AgentId;long MyId;long SkillId;float Activation;byte TeamId;ushort Allegiance;float Distance;long Ping"

; The constants
Global Enum $CA_GetCurrentTarget = 0x401, $CA_GetMyId, $CA_Casting, $CA_SkillRecharge, $CA_SkillAdrenaline, _
			$CA_StoreVar, $CA_SetLogAndHwnd, $CA_GetAgentAndTargetPtr, $CA_GetSkillbarSkillId, $CA_GetMyMaxHP, $CA_GetMyMaxEnergy, $CA_GetBuildNumber, _
			$CA_ChangeMaxZoom, $CA_GetLastDialogId, $CA_SetEngineHook, _
			$CA_Attack = 0x410, $CA_Move, $CA_UseSkill, _
			$CA_ChangeWeaponSet, $CA_ZoneMap, $CA_DropGold, $CA_GoNpc, $CA_GoPlayer, $CA_GoSignpost, $CA_UseAttackSkill, _
			$CA_EnterChallenge, $CA_OpenChest, $CA_SetEventSkillMode, $CA_UseSkillbarSkill, $CA_PickupItem, _
			$CA_UseSkillbarAttackSkill, $CA_Dialog, $CA_ChangeTarget, $CA_StatusBot, $CA_TargetNearestFoe, $CA_TargetNearestAlly, _
			$CA_TargetNearestItem, $CA_StatusDelay, $CA_TargetCalledTarget, $CA_UseHero1Skill, $CA_UseHero2Skill, $CA_UseHero3Skill, $CA_StatusMiss, _
			$CA_CancelAction, $CA_StatusTab, $CA_GetNamePtr, $CA_CommandHero1, $CA_CommandHero2, $CA_CommandHero3, $CA_CommandAll, $CA_ChangeDistrict, _
			$CA_Resign, $CA_ReturnToOutpost, _
			$CA_GetMapLoading = 0x440, $CA_GetMapId, $CA_GetPing, $CA_GetLoggedIn, $CA_GetDead, $CA_GetBalthFaction, $CA_GetKurzFaction, $CA_GetLuxonFaction, _
			$CA_GetTitleTreasure, $CA_GetTitleLucky, $CA_GetTitleUnlucky, $CA_GetTitleWisdom, _
			$CA_GetAgentExist = 0x450, $CA_GetProfessions, $CA_GetPlayerNumber, _
			$CA_GetHP, $CA_GetRotation, _
			$CA_GetSkill, $CA_GetCoords, $CA_GetWeaponSpeeds, $CA_GetSpiritRange, $CA_GetTeamId, $CA_GetCombatMode, _
			$CA_GetModelMode, $CA_GetHpPips, $CA_GetEffects, $CA_GetHex, $CA_GetModelAnimation, $CA_GetEnergy, $CA_GetAgentPtr, _
			$CA_GetType, $CA_GetLevel, $CA_GetNameProperties, $CA_GetMaxId, $CA_GetMyNearestAgent, _
			$CA_GetMyDistanceToAgent, $CA_GetNearestAgentToAgent, $CA_GetDistanceFromAgentToAgent, $CA_GetNearestAgentToAgentEx, _
			$CA_GetModelState, $CA_GetIsAttacking, $CA_GetIsKnockedDown, $CA_GetIsMoving, $CA_GetIsDead, $CA_GetIsCasting, _
			$CA_GetFirstAgentByPlayerNumber, $CA_GetAllegiance, $CA_GetNearestEnemyToAgentEx, $CA_GetIsAttackedMelee, $CA_GetNearestItemToAgentEx, _
			$CA_GetNearestAgentByPlayerNumber, $CA_GetSpeed, $CA_GetNearestEnemyToAgentByAllegiance, $CA_GetNearestAliveEnemyToAgent, _
			$CA_GetWeaponType, $CA_GetNearestSignpostToAgent, $CA_GetNearestNpcToAgentByAllegiance, $CA_GetNearestAgentToCoords, $CA_GetVars, _
			$CA_GetNearestNpcToCoords, $CA_GetLoginNumber, _
			$CA_GetGold = 0x510, $CA_GetBagSize, $CA_SetBag, $CA_GetItemId, _
			$CA_GetIdKit, $CA_IdentifyItem, $CA_IdentifyItemById, $CA_DepositGold, $CA_WithdrawGold, $CA_SellItem, $CA_SellItemById, _
			$CA_BuyIdKit, $CA_BuySuperiorIdKit, $CA_PrepareMoveItem, $CA_MoveItem, $CA_GetItemInfo, _
			$CA_UseItem, $CA_UseItemById, $CA_DropItem, $CA_DropItemById, _
			$CA_AcceptAllItems, $CA_GetItemLastModifier, _
			$CA_GetTitleSunspear = 0x550, $CA_GetTitleLightbringer, $CA_GetTitleVanguard, $CA_GetTitleNorn, $CA_GetTitleAsura, $CA_GetTitleDeldrimor, _
			$CA_GetTitleNorthMastery, $CA_GetTitleDrunkard, $CA_GetTitleSweet, $CA_GetTitleParty, $CA_GetTitleCommander, $CA_GetTitleLuxon, $CA_GetTitleKurzick, _
			$CA_AddHero = 0x580, $CA_KickHero, $CA_SwitchMode, $CA_AddNpc, $CA_KickNpc, $CA_TravelGH, $CA_LeaveGH


Global Enum $RARITY_WHITE = 0x3D, $RARITY_BLUE = 0x3F, $RARITY_PURPLE = 0x42, $RARITY_GOLD = 0x40, $RARITY_GREEN = 0x43

Global Enum $BAG_BACKPACK = 1, $BAG_BELTPOUCH, $BAG_BAG1, $BAG_BAG2, $BAG_EQUIPMENTPACK, $BAG_UNCLAIMEDITEMS = 7, $BAG_STORAGE1, $BAG_STORAGE2, _
			$BAG_STORAGE3, $BAG_STORAGE4, $BAG_STORAGE5, $BAG_STORAGE6, $BAG_STORAGE7, $BAG_STORAGE8, $BAG_STORAGEANNIVERSARY

Global Enum $HERO_NORGU = 1, $HERO_GOREN, $HERO_TAHLKORA, $HERO_MASTEROFWHISPERS, $HERO_ACOLYTEJIN, $HERO_KOSS, $HERO_DUNKORO, $HERO_ACOLYTESOUSUKE, $HERO_MELONNI, _
			$HERO_ZHEDSHADOWHOOF, $HERO_GENERALMORGAHN, $HERO_MARGRIDTHESLY, $HERO_OLIAS = 14, $HERO_RAZAH, $HERO_MOX, $HERO_JORA = 18, $HERO_PYREFIERCESHOT, _
			$HERO_LIVIA = 21, $HERO_KAHMU, $HERO_GWEN, $HERO_XANDRA, $HERO_VEKK, $HERO_OGDEN

; VARIABLES

Opt("WinTitleMatchMode", -1) ;Make sure that Guild Wars receives the messages (1 = match start, 2 = substring, 3 = exact)

Global $cbType = "int" ;What to read the callback values as
Global $cbVar[2] ;Array for callback wParam and lParam
Global $sGW = "Guild Wars -" ;Name of window
Global $cGUI = 0 ;Init GUI hwnd var
Global $bGWCA_INTERNAL = False ;Is set to True when inside a Cmd() or CmdCB() call

; FUNCTIONS

Func _IntToFloat($iInt)
	Local $tFloat, $tInt

	$tInt = DllStructCreate("int")
	$tFloat = DllStructCreate("float", DllStructGetPtr($tInt))
	DllStructSetData($tInt, 1, $iInt)
	Return DllStructGetData($tFloat, 1)
EndFunc

Func _FloatToInt($fFloat)
	Local $tFloat, $tInt

	$tFloat = DllStructCreate("float")
	$tInt = DllStructCreate("int", DllStructGetPtr($tFloat))
	DllStructSetData($tFloat, 1, $fFloat)
	Return DllStructGetData($tInt, 1)
EndFunc

Func WndCallback($hwnd, $msg, $wparam, $lparam)
	Switch($cbType)
		Case "float"
			$wparam = _IntToFloat($wparam)
			$lparam = _IntToFloat($lparam)
		Case "int"
			$wparam = Number($wparam)
			$lparam = Number($lparam)
		Case "hex" ;Do nothing
	EndSwitch

	$cbVar[0] = $wparam
	$cbVar[1] = $lparam
EndFunc

Func Cmd($uMsg, $wparam = 0, $lparam = 0)
	$bGWCA_INTERNAL = True
	$cbVar[0] = ""
	$cbVar[1] = ""
	DllCall("user32.dll", "lparam", "PostMessage", "hwnd", WinGetHandle($sGW), "int", $uMsg, "wparam", $wparam, "lparam", $lparam)
	$bGWCA_INTERNAL = False
EndFunc

Func CmdCB($uMsg, $wparam = 0)
	$bGWCA_INTERNAL = True
	$cbVar[0] = ""
	$cbVar[1] = ""
	DllCall("user32.dll", "lparam", "SendMessage", "hwnd", WinGetHandle($sGW), "int", $uMsg, "wparam", $wparam, "lparam", $cGUI)
	If $cbVar[0] = "" AND $cbVar[1] = "" Then SetError(-1)
	$bGWCA_INTERNAL = False
	Return $cbVar
EndFunc

Func CmdCBEx($uMsg, $wParam = 0, $msTimeout = 60)
	CmdCB($uMsg, $wParam)
	$tEscape = TimerInit()
	Do
		Sleep(0)
	Until TimerDiff($tEscape) > $msTimeout OR $cbVar[0] <> ""
EndFunc

Func MoveEx($x, $y, $random = 50)
	Cmd($CA_MOVE, _FloatToInt($x+Random(-$random,$random)), _FloatToInt($y+Random(-$random,$random)))
EndFunc

Func GetNearestAgentToCoords($x, $y)
	$oldCbType = $cbType

	$cbType = "int"
	Cmd($CA_GETNEARESTAGENTTOCOORDS, _FloatToInt($x), _FloatToInt($y))
	Sleep(50)
	CmdCB($CA_GETVARS)

	$cbType = $oldCbType

	Return $cbVar[1]
EndFunc

Func GetNearestNPCToCoords($x, $y)
	$oldCbType = $cbType

	$cbType = "int"
	Cmd($CA_GETNEARESTNPCTOCOORDS, _FloatToInt($x), _FloatToInt($y))
	Sleep(50)
	CmdCB($CA_GETVARS)

	$cbType = $oldCbType

	Return $cbVar[1]
EndFunc

Func TravelTo($iMapId)
	$tMap = TimerInit()
	Cmd($CA_ZONEMAP, $iMapId)
	Do
		Sleep(200)
		$aLoad = CmdCB($CA_GETMAPLOADING)
		If TimerDiff($tMap) > 20000 AND $aLoad[0] <> 2 Then Cmd($CA_ZONEMAP, $iMapId)
		$aTmpMap = CmdCB($CA_GETMAPID)
	Until $aLoad[0] = 0 AND $aTmpMap[0] = $iMapId
EndFunc

Func MoveItem($itemBag, $itemSlot, $newBag, $newSlot)
	Cmd($CA_PREPAREMOVEITEM, $itemBag, $itemSlot)
	Sleep(20)
	Cmd($CA_MOVEITEM, $newBag, $newSlot)
EndFunc

Func MoveItemById($itemId, $newBag, $newSlot)
	Cmd($CA_PREPAREMOVEITEM, $itemId)
	Sleep(20)
	Cmd($CA_MOVEITEM, $newBag, $newSlot)
EndFunc

Func PickupItems($iItems = -1, $fMaxDistance = 1012)
	Local $iItemsPicked = 0

	$oldCbType = $cbType

	$cbType = "int"

	$tDeadlock = TimerInit()
	Do
		$aItem = CmdCB($CA_GETNEARESTITEMTOAGENTEX, -2)
		If $aItem[0] = 0 OR _IntToFloat($aItem[1]) > $fMaxDistance OR TimerDiff($tDeadlock) > 30000 Then ExitLoop

		Cmd($CA_PICKUPITEM, $aItem[0])
		$tDeadlock = TimerInit()
		Do
			Sleep(500)
			CmdCB($CA_GETAGENTEXIST, $aItem[0])
			If TimerDiff($tDeadlock) > 5000 Then ContinueLoop 2
		Until $cbVar[0] = 0

		$iItemsPicked += 1
	Until $iItemsPicked = $iItems

	$cbType = $oldCbType
EndFunc

Func GetItemId($iBag, $iSlot)
	$oldCbType = $cbType

	$cbType = "int"

	CmdCB($CA_SetBag, $iBag)
	CmdCB($CA_GetItemId, $iSlot)

	$cbType = $oldCbType

	Return $cbVar
EndFunc

Func GetItemInfo($iBag, $iSlot)
	$oldCbType = $cbType

	$cbType = "int"

	CmdCB($CA_SetBag, $iBag)
	CmdCB($CA_GetItemInfo, $iSlot)

	$cbType = $oldCbType

	Return $cbVar
EndFunc

Func GetItemLastModifier($iBag, $iSlot)
	$oldCbType = $cbType

	$cbType = "int"

	CmdCB($CA_SetBag, $iBag)
	CmdCB($CA_GetItemLastModifier, $iSlot)

	$cbType = $oldCbType

	Return $cbVar
EndFunc

; END OF FILE
ItemFuncs ( hab ich jetzt schnell aus meinem Raptor bot rauskopiert - also noch nicht verallgemeinert, hoffe es hilft dir trotzdem :P):

identen - mit check gold (Backpack,Beltpouch,Bag1) :

Code:
$cbType = "int"
	If GUICtrlRead($checkIdentify) = 1 Then
		UpdateStatus("Identifying items")
		For $i = 1 To 20 Step 1
			CmdCB($CA_GETIDKIT)
			If $cbVar[0] = 0 Then
				Cmd($CA_WITHDRAWGOLD, 100)
				sleep(250)
				Cmd($CA_BUYIDKIT)
			EndIf

			$bIdentItem = True
			If GUICtrlRead($checkNoIdentGold) = 1 Then
				GetItemInfo($BAG_BACKPACK, $i)
				If $cbVar[0] = $RARITY_GOLD Then
					$bIdentItem = False
				EndIf
			EndIf

			If $bIdentItem Then Cmd($CA_IDENTIFYITEM, $BAG_BACKPACK, $i)

			Sleep(500)
		Next

		For $i = 1 To 5 Step 1
			CmdCB($CA_GETIDKIT)
			If $cbVar[0] = 0 Then
				Cmd($CA_WITHDRAWGOLD, 100)
				sleep(250)
				Cmd($CA_BUYIDKIT)
			EndIf

			$bIdentItem = True
			If GUICtrlRead($checkNoIdentGold) = 1 Then
				GetItemInfo($BAG_BELTPOUCH, $i)
				If $cbVar[0] = $RARITY_GOLD Then
					$bIdentItem = False
				EndIf
			EndIf

			If $bIdentItem Then Cmd($CA_IDENTIFYITEM, $BAG_BELTPOUCH, $i)

			Sleep(500)
		Next

		For $i = 1 To 10 Step 1
			CmdCB($CA_GETIDKIT)
			If $cbVar[0] = 0 Then
				Cmd($CA_WITHDRAWGOLD, 100)
				sleep(250)
				Cmd($CA_BUYIDKIT)
			EndIf

			$bIdentItem = True
			If GUICtrlRead($checkNoIdentGold) = 1 Then
				GetItemInfo($BAG_BAG1, $i)
				If $cbVar[0] = $RARITY_GOLD Then
					$bIdentItem = False
				EndIf
			EndIf

			If $bIdentItem Then Cmd($CA_IDENTIFYITEM, $BAG_BAG1, $i)

			Sleep(500)
		Next
	EndIf

goldene Items in Truhe stecken (muss vor dem sellen kommen):

Code:
If GUICtrlRead($checkStoreGold) = 1 Then
		UpdateStatus("Storage Golds")
		get_gitems()
		sleep(250)
		golds()
		sleep(500)	
	
        Endif
Code:
func chest_reg($ngitems)
   if $ngitems > 0 and $ngitems < 21 Then
      return 8
   elseif $ngitems > 20 and $ngitems < 41 Then
      return 9
   elseif $ngitems > 40 and $ngitems < 61 Then
      return 10
   elseif $ngitems > 60 and $ngitems < 81 Then
      return 11
   elseif $ngitems > 80 Then
      msgbox(0," Raptor Bot","Truhe voll! Wird beendet.")
      exit
   endif
endfunc

func golds()
   $ocbty=$cbtype
   
   $cbType="hex"
   

   for $slot=1 to 35 step 1
      If $slot < 21 Then
            $i_info=GetItemInfo(1,$slot)
            If $i_info[0] = $RARITY_GOLD Then
               $GItems += 1
               $c_reg=chest_reg($GItems)
               MoveItem(1,$slot, $c_reg, 0)
               Sleep(Random(150,200))
            EndIf
      EndIf
      if $slot > 20 And $slot < 26 Then
            $i_info=GetItemInfo(2,($slot-20))
            If $i_info[0] = $RARITY_GOLD Then
               $GItems += 1
               $c_reg=chest_reg($GItems)
               MoveItem(2,($slot-20), $c_reg, 0)
               Sleep(Random(150,200))
            EndIf
      EndIf
      if $slot > 25 and $slot < 36 then   
            $i_info=GetItemInfo(3,($slot-25))
            If $i_info[0] = $RARITY_GOLD Then
               $GItems += 1
               $c_reg=chest_reg($GItems)
               MoveItem(3,($slot-25), $c_reg, 0)
               Sleep(Random(150,200))
            EndIf
      EndIf
      Sleep(Random(20,30))
   Next
   $cbtype=$ocbty
endfunc


func get_gitems()
   $cbtype="int"
   $GItems=0
   for $reg=8 to 11 step 1
      for $slot=1 to 20 step 1
         $i_id=getitemid($reg,$slot)
         if $i_id[0] <> 0 then $GItems+=1
         Sleep(Random(20,30))
      Next
   Next
   return $GItems
EndFunc

verkaufen:

Code:
If GUICtrlRead($checkSell) = 1 Then
		UpdateStatus("Selling items")
	
	For $i = 1 To 20 

		 $i_id=getitemid($BAG_BACKPACK,$i)
         if $i_id[0] <> 0 then
            Cmd($CA_SELLITEMBYID,$i_id[0])
            Sleep(Random(400,500))
         EndIf
	Next

	For $i = 1 To 5 

		 $i_id=getitemid($BAG_BELTPOUCH,$i)
         if $i_id[0] <> 0 then
            Cmd($CA_SELLITEMBYID,$i_id[0])
            Sleep(Random(400,500))
         EndIf
	Next

	For $i = 1 To 10 

		 $i_id=getitemid($BAG_BAG1,$i)
         if $i_id[0] <> 0 then
            Cmd($CA_SELLITEMBYID,$i_id[0])
            Sleep(Random(400,500))
         EndIf
	Next