A more Technical explanation:
'VampireFeedVictim' is the name of a parameter in a function:
Function VampireCorpseFeed(Actor VampireFeedVictim) VampireFeedVictim.DoStuff()EndFunction
That function exists in a completely different real from your fragment. your fragment has no clue what 'VampireFeedVictim' is, in fact you could re-write that function to have a different name. E.g. you could do any of the following:
Function VampireCorpseFeed(Actor VampireFeedVictim)Function VampireCorpseFeed(Actor Bob)Function VampireCorpseFeed(Actor IAmAPrettyLittlePrincess)
And the function would work exactly the same way. You are just telling the game, "this function is going to get an Actor, and in this function we will refer to that Actor as 'Bob', or 'VampireFeedVictim', or 'IamAPrettyLittlePrincess'.
so in your fragment when you call the function and you pass 'akTarget' as in
PlayerVampireQuest.VampireCorpseFeed(aktargetRef as Actor)
You are telling the function, 'hey! I am giving you the actor 'aktargetRef' and i want you to do stuff with it.
And the function is like, 'okay, that's fine, but from here on out I'm calling this actor 'Bob'
If you called
PlayerVampireQuest.VampireCorpseFeed(Game.GetPlayer())
Then the function would be like, 'okay i got the actor 'Game.GetPlayer()' i'm going to call it 'bob' now and do stuff to it.
or course, the name you give the parameter in the function definition has to be the same as what you call it in the function body. I.E. this would not work:
Function VampireCorpseFeed(Actor Bob) VampireFeedVictim.DoStuff()EndFunction
cause the function would not know who 'VampireFeedVictim' is, but if you did this:
Function VampireCorpseFeed(Actor Bob) Bob.DoStuff()EndFunction
it would say 'right on' and do stuff.
Aaaannndd now i'm starting to anthropomorphize the scripting engine... yeah, it's bedtime for me
