You could use GetLocalPlayer, but technically this should work (might leak but shouldn't since you're using the All Players Group):
Player Group - Pick every player in (All players matching ((Matching player) Equal to YourPlayer)) and do (Quest - Create a Required quest titled YourQuest with the description Your quest desc..., using icon path ReplaceableTextures\CommandButtons\BTNAmbush.blp)
Set a temp player group variable to your player then use that group to run that action.
Destroy that variable with call
DestroyForce(udg_YourForce)
function Trig_Book_read_Conditions takes nothing returns boolean
if ( not ( GetItemTypeId(GetManipulatedItem()) == 'I00L' ) ) then
return false
endif
return true
endfunction
function Trig_Book_read_Func005A takes nothing returns nothing
call CreateQuestBJ(bj_QUESTTYPE_REQ_DISCOVERED , "TRIGSTR_289" , "TRIGSTR_290" , "ReplaceableTextures\\CommandButtons\\BTNAmbush.blp")
endfunction
function Trig_Book_read_Actions takes nothing returns nothing
call ForceAddPlayerSimple(GetOwningPlayer(GetTriggerUnit()) , udg_BookRead)
call TriggerSleepAction(0.10)
call ForForce(udg_BookRead , function Trig_Book_read_Func005A)
call TriggerSleepAction(0.10)
DestroyForce(udg_BookRead)
endfunction
You need toYou just missed the call part in the custom script
Custom script: call DestroyForce(udg_YourForce)
Also the Wait's are unnecessary.
"TRIGSTR_289" , "TRIGSTR_290"
things before and I am curious about them. They seem to appear if you convert a GUI trigger into JASS when the GUI trigger had a large string.That's basically storing the string of your quest description and quest title. How you edit that once it's in JASS I'm not sure. However, I would imagine it creates it like that regardless of string length.
As far as the ability goes, once you set the 100 levels they will be there until you actually delete the ability. I guess logically just changing the available levels wouldn't fix it because you've already created 100 levels for it. Just think about if you create an array with a size of 1000. Even if you only use the first 10 indices you still have an array of 1000, unless you destroy the array.
You could use GetLocalPlayer, but technically this should work (might leak but shouldn't since you're using the All Players Group):
Player Group - Pick every player in (All players matching ((Matching player) Equal to YourPlayer)) and do (Quest - Create a Required quest titled YourQuest with the description Your quest desc..., using icon path ReplaceableTextures\CommandButtons\BTNAmbush.blp)
@ PublishedShadow, this only works because player 2 is empty in demo
If the place is occupied by a player or a computer it won't work anymore.