HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Detect Playername to Activate [JASS only]

05-13-2006, 06:46 AM#1
geocine
Here is the script

Collapse JASS:
trigger HeroLevelUpTrigger=CreateTrigger()

call TriggerAddAction(HeroLevelUpTrigger,function HeroLevelUp)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,Al[1],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,Al[2],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,Al[3],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,Al[4],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,Al[5],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,AL[1],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,AL[2],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,AL[3],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,AL[4],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,AL[5],"-lvl",true)

function HeroLevelUp takes nothing returns nothing
//call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,25.,"Test")
call SetHeroLevel(a2[GetPlayerId(GetTriggerPlayer())], GetHeroLevel(a2[GetPlayerId(GetTriggerPlayer())])+1, true)
endfunction

What it does:
When the player [any player] types "-lvl" he/she will gain +1 level.

What I want to do [help me with this]:
When the player [specific player name detection] types "-lvl" he/she will gain+1 level
05-13-2006, 07:58 AM#2
vile
if GetPlayerName(GetTriggerPlayer()) == "geocine" then
.....
05-13-2006, 08:03 AM#3
Vuen
Don't forget endif, or WE will crash and burn.
05-13-2006, 08:19 AM#4
vile
Huh.. I was just pointing him out.
Actually when I dont put endif it never crashes. It only crashes when not putting endloop after starting a loop.
05-13-2006, 08:55 AM#5
Vuen
It won't crash if you're also missing the 'then', or if you screwed up brackets or quotations. But if you're just missing an endif, it will most definitely crash.



<--- I wrote a whole tutorial on it, click here.
05-13-2006, 01:25 PM#6
geocine
where will i click ??
05-13-2006, 02:58 PM#7
vile
lol, i think he forgot to put the link ^^
05-13-2006, 03:42 PM#8
geocine
is this correct.. i seem to have errors

Collapse JASS:
trigger HeroLevelUpTrigger=CreateTrigger()

if GetPlayerName(GetTriggerPlayer()) == "geocine" or GetPlayerName(GetTriggerPlayer()) == "ravi" then
call TriggerAddAction(HeroLevelUpTrigger,function HeroLevelUp)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,Al[1],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,Al[2],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,Al[3],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,Al[4],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,Al[5],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,AL[1],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,AL[2],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,AL[3],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,AL[4],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,AL[5],"-lvl",true)
endif

function HeroLevelUp takes nothing returns nothing
//call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,25.,"Test")
call SetHeroLevel(a2[GetPlayerId(GetTriggerPlayer())], GetHeroLevel(a2[GetPlayerId(GetTriggerPlayer())])+1, true)
endfunction
05-13-2006, 04:13 PM#9
Blade.dk
Everything needs to be in a function.

EDIT:

@vile: Um, no. The arrow is pointing to his submissions, the tutorial is there.
05-13-2006, 04:16 PM#10
Thunder_Eye
Quote:
Originally Posted by Vuen
It won't crash if you're also missing the 'then', or if you screwed up brackets or quotations. But if you're just missing an endif, it will most definitely crash.

It doesnt crash if it is in the Custom Script Code
05-13-2006, 11:22 PM#11
geocine
i still have errors after doing this

Collapse JASS:
function hello takes nothing returns nothing
if GetPlayerName(GetTriggerPlayer()) == "geocine" or GetPlayerName(GetTriggerPlayer()) == "ravi" then
call TriggerAddAction(HeroLevelUpTrigger,function HeroLevelUp)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,Al[1],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,Al[2],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,Al[3],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,Al[4],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,Al[5],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,AL[1],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,AL[2],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,AL[3],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,AL[4],"-lvl",true)
call TriggerRegisterPlayerChatEvent(HeroLevelUpTrigger,AL[5],"-lvl",true)
endif
endfunction
05-14-2006, 02:07 AM#12
The_AwaKening
LOL, you are trying to add a cheat code to work for only you into a dota map that someone else already edited? I saw this code posted in securegamers.com. Sorry, but I won't help
05-14-2006, 02:08 AM#13
oNdizZ
is AL[] a player array?
if its a global one then you need to add udg_ infront of it:
udg_AL[]
jass is also case sensitive, so AL is not the same as Al.


about this:
GetPlayerName(GetTriggerPlayer()) == "geocine"
you should use:
StringCase(GetPlayerName(udg_AL[1]), false) == "geocine"
StringCase (in this case) converts the player name into lower case which can then be compared to your allowed players.. list.

player names are also case sensitive, so "geocine" is not "Geocine" in the editor, even though you can login with "gEOcInE".
05-14-2006, 11:36 AM#14
geocine
what.. ?? can you elaborate it onndizz
05-14-2006, 12:05 PM#15
Zoxc
You can convert a trigger named 'LevelUp' to Custom Text and paste this in the textbox or paste it in another trigger, but you will need to rename the functions and the trigger variable then.

I assumed a2 was a global unit array so it will need the 'udg_' prefix.

Collapse JASS:
function Trig_LevelUp_Actions takes nothing returns nothing
local unit hero = udg_a2[GetPlayerId(GetTriggerPlayer())]
call SetHeroLevel(hero, GetHeroLevel(hero)+1, true)
set hero = null    
endfunction

//===========================================================================
function InitTrig_LevelUp takes nothing returns nothing
    local integer i = 0
    local integer max = 11
    set gg_trg_LevelUp = CreateTrigger(  )
    loop
        exitwhen i > max
        if (StringCase(GetPlayerName(Player(i)), false) == "geocine") or (StringCase(GetPlayerName(Player(i)), false) == "ravi") then
            call TriggerRegisterPlayerChatEvent( gg_trg_LevelUp, Player(i), "-lol", true )
        endif
        set i = i + 1
    endloop
    
    call TriggerAddAction( gg_trg_LevelUp, function Trig_LevelUp_Actions )
endfunction