NostalgiaX Posted August 24, 2008 Author Share Posted August 24, 2008 I had this problem the first time I started working on my game… someone tried to help me, but it never worked. >_>This is what they told me to put in.```Sub ScriptedTile(index, Script) Select Case Script Case 1 Call PutVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "map", GetPlayerMap(index)) Call PutVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "x", GetPlayerX(index)) Call PutVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "y", GetPlayerY(index)) Call PlayerMsg(index, "Your game has been saved!", 14) End SelectEnd Sub``````Sub OnDeath(index) Call SetPlayerMap(index, GetVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "map")) Call SetPlayerX(index, GetVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "x")) Call SetPlayerY(index, GetVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "y")End Sub```When the character dies, they just lose EXP and a message says they died. I looked in the charextras folder (for .ini files to hold where the character will respawn) and saw that this was there.```[respawn]map=1x=11y=9```So, I think there's a problem with the OnDeath… can someone help me... again. >_> Link to comment Share on other sites More sharing options...
dg1423 Posted August 24, 2008 Share Posted August 24, 2008 in Sub OnDeath, take out those setMap, X, and Y lines and replace em with this:```Dim mapnumDim xdim ymapnum = GetVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "map")x = GetVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "x")y = GetVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "y")Call PlayerWarp(index, mapnum, x, y)``` Link to comment Share on other sites More sharing options...
NostalgiaX Posted August 24, 2008 Author Share Posted August 24, 2008 @dg1423:> in Sub OnDeath, take out those setMap, X, and Y lines and replace em with this:> > ```> Dim mapnum> Dim x> dim y> > mapnum = GetVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "map")> x = GetVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "x")> y = GetVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "y")> > Call PlayerWarp(index, mapnum, x, y)> > ```That didn't work… Link to comment Share on other sites More sharing options...
dg1423 Posted August 25, 2008 Share Posted August 25, 2008 works for me O.o post your main, maybe it's bugged. Link to comment Share on other sites More sharing options...
NostalgiaX Posted August 27, 2008 Author Share Posted August 27, 2008 Maybe it helps to say that I'm using TE (EE won't work on my computer) >.>```':: Access ::'ADMIN_MONITER = 1'ADMIN_MAPPER = 2'ADMIN_DEVELOPER = 3'ADMIN_CREATOR = 4':: Text Color Code ::'Black = 0'Blue = 1'Green = 2'Cyan = 3'Red = 4'Magenta = 5'Brown = 6'Grey = 7'DarkGrey = 8'BrightBlue = 9'BrightGreen = 10'BrightCyan = 11'BrightRed = 12'Pink = 13'Yellow = 14'White = 15Sub JoinGame(index)Dim GameNameDim MOTDGameName = Trim(GetVar("Data.ini", "CONFIG", "GameName"))MOTD = GetVar("motd.ini", "MOTD", "Msg") ' Send a global message that he/she joined If GetPlayerAccess(index) <= ADMIN_MONITER Then Call GlobalMsg(GetPlayerName(index) & " has joined " & GameName & "!", 7) Else Call GlobalMsg(GetPlayerName(index) & " has joined " & GameName & "!", 15) End If ' Send them welcome Call PlayerMsg(index, "Welcome to " & GameName & "!", 15) ' Send motd If Trim(MOTD) <> "" Then Call PlayerMsg(index, "MOTD: " & MOTD, 11) End IfIf GetVar("var.ini", GetPlayerName(index), "startup") = "" Thenweapon = Int(GetVar("classes\class" & GetPlayerClass(index) & ".ini", "StartUp", "Weapon"))armor = Int(GetVar("classes\class" & GetPlayerClass(index) & ".ini", "StartUp", "Armor"))shield = Int(GetVar("classes\class" & GetPlayerClass(index) & ".ini", "StartUp", "Shield"))helmet = Int(GetVar("classes\class" & GetPlayerClass(index) & ".ini", "StartUp", "Helmet"))wepdur = Int(GetVar("classes\class" & GetPlayerClass(index) & ".ini", "StartUp", "Wepdur"))armdur = Int(GetVar("classes\class" & GetPlayerClass(index) & ".ini", "StartUp", "Armdur"))shldur = Int(GetVar("classes\class" & GetPlayerClass(index) & ".ini", "StartUp", "Shldur"))hlmdur = Int(GetVar("classes\class" & GetPlayerClass(index) & ".ini", "StartUp", "Hlmdur"))If weapon <> 0 ThenCall Give_Item(index, weapon, wepdur)End IfIf armor <> 0 ThenCall Give_Item(index, armor, armdur)End IfIf shield <> 0 ThenCall Give_Item(index, shield, shldur)End IfIf helmet <> 0 ThenCall Give_Item(index, helmet, hlmdur)End IfCall PutVar("var.ini", GetPlayerName(index), "startup", "yes")End IfEnd SubSub LeftGame(index)Dim GameNameDim nGameName = Trim(GetVar("Data.ini", "CONFIG", "GameName")) ' Check for boot map If GetBootMap(index) > 0 Then Call SetPlayerX(index, Map(GetPlayerMap(index)).BootX) Call SetPlayerY(index, Map(GetPlayerMap(index)).BootY) Call SetPlayerMap(index, Map(GetPlayerMap(index)).BootMap) End If ' Send a global message that he/she left If GetPlayerAccess(index) <= 1 Then Call GlobalMsg(GetPlayerName(index) & " has left " & GameName & "!", 7) Else Call GlobalMsg(GetPlayerName(index) & " has left " & GameName & "!", 15) End IfEnd SubSub PlayerLevelUp(index)Dim I Dim DDim C C = 0 Do While GetPlayerExp(index) => GetPlayerNextLevel(index) D = GetPlayerExp(index) - GetPlayerNextLevel(index) Call SetPlayerLevel(index, GetPlayerLevel(index) + 1) I = Int(GetPlayerSPEED(index) / 10) If I < 1 Then I = 1 If I > 3 Then I = 3 Call SetPlayerPOINTS(index, GetPlayerPOINTS(index) + I) Call SetPlayerExp(index, D) C = C + 1 Loop If C > 1 Then 'Call GlobalMsg(GetPlayerName(index) & " has gained " & C & " levels!", 6) Else 'Call GlobalMsg(GetPlayerName(index) & " has gained a level!", 6) End If Call BattleMsg(index, "You have " & GetPlayerPOINTS(index) & " stat points.", 9, 0) End SubSub UsingStatPoints(index, PointType)Select Case PointType Case 0 'Gives you a set max If GetPlayerSTR(index) + 1 > 1000 Then Call BattleMsg(index, "You have maxed your strength!", 12, 0) Exit Sub End If Call SetPlayerSTR(index, GetPlayerSTR(index) + 1) Call BattleMsg(index, "You have gained more strength!", 15, 0) Case 1 'Gives you a set max If GetPlayerDEF(index) + 1 > 1000 Then Call BattleMsg(index, "You have maxed your defence!", 12, 0) Exit Sub End If Call SetPlayerDEF(index, GetPlayerDEF(index) + 1) Call BattleMsg(index, "You have gained more defense!", 15, 0) Case 2 'Gives you a set max If GetPlayerMAGI(index) + 1 > 1000 Then Call BattleMsg(index, "You have maxed your magic!", 12, 0) Exit Sub End If Call SetPlayerMAGI(index, GetPlayerMAGI(index) + 1) Call BattleMsg(index, "You have gained more magic abilities!", 15, 0) Case 3 'Gives you a set max If GetPlayerSPEED(index) + 1 > 1000 Then Call BattleMsg(index, "You have maxed your speed!", 12, 0) Exit Sub End If Call SetPlayerSPEED(index, GetPlayerSPEED(index) + 1) Call BattleMsg(index, "You have gained more speed!", 15, 0)End SelectCall SetPlayerPOINTS(index, GetPlayerPOINTS(index) - 1)End SubSub ReplaceOneInvItem(index, olditem, newitem)Dim nn = 1Do If GetPlayerInvItemNum(index, n) = olditem Then Call SetPlayerInvItemNum(index, n, newitem) Call SendInventoryUpdate(index, n) Exit Do End If n = n + 1Loop Until n > 24End SubSub GoFishing(index, item, maxlevel, name) Dim c Dim level level = maxlevel + 1 If GetPlayerlevel(index) < maxlevel Then c = Int(Rnd * Int(level - GetPlayerLevel(index))) If c = 1 Then Call PlayerMsg(index, GetPlayerName(index) & " caught a " & name, 2) Call ReplaceOneInvItem(index, 0, item) Else Call PlayerMsg(index, GetPlayerName(index) & " found nothing!", 12) End If Else Call PlayerMsg(index, GetPlayerName(index) & " caught a " & name, 2) Call ReplaceOneInvItem(index, 0, item) End IfEnd Sub Sub ScriptedTile(index, Script) Select Case Script Case 1 Call PutVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "map", GetPlayerMap(index)) Call PutVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "x", GetPlayerX(index)) Call PutVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "y", GetPlayerY(index)) Call PlayerMsg(index, "Your game has been saved!", 14) End SelectCase 2 dim weapon weapon = GetPlayerWeaponSlot(index) If weapon = 0 Then Call PlayerMsg(index, "You don't have a fishing rod equiped", 15) ElseIf GetPlayerInvItemNum(index, weapon) = 27 Then Call GoFishing(index, 28, 20, "fish") Else Call PlayerMsg(index, "You don't have a #EQUIPMENT NAME# equiped", 15) End If End SubSub PlayerPrompt(index, Prompt, Value)If Prompt = 6 Then Select Case Value Case 0 Call GlobalMsg("Hi This is a Yes answer!", 3) Case 1 Call GlobalMsg("This is case 1?", 3) End SelectElse Select Case Value Case 0 Call GlobalMsg("Hi This is a No answer!", 4) Case 1 Call GlobalMsg("This is no case 1?", 4) End SelectEnd IfEnd SubSub QueryBox(index, Prompt)Value = GetVar("responses.ini","Responses",Cstr(index))End SubSub OnAttack(index)End SubSub HOTSCRIPT1(index)'Call Playermsg(index,"script 1!",14)End SubSub HOTSCRIPT2(index)'Call Playermsg(index,"script 2!",14)End SubSub HOTSCRIPT3(index)'Call Playermsg(index,"script 3!",14)End SubSub HOTSCRIPT4(index)'Call Playermsg(index,"script 4!",14)End SubSub ScriptedItem(index, Script) Select Case Script Case 0 Call PlayerMsg(index, "Itemz Work", 15) End Select End Sub Sub ScriptedSpell(index, Script) Select Case Script Case 0 Call PlayerMsg(index, "Spellz Work", 15) End Select End Sub Sub ScriptedNPC(index, Script) Select Case Script Case 0 Call PlayerMsg(index, "NPCz Work", 15) End Select End SubSub Commands(index)On Error Resume Next Dim PortalDim mapnumDim xDim yDim iDim TextSayDim nDim mDim C m = GetVar("Data.ini", "MAX", "MAX_MAPS")TextSay = GetVar("Scripts\Command.ini", "TEMP", "Text" & index) Portal = GetPlayerHelmetSlot(index) i = 1 C = 0 If LCase(Mid(TextSay, 1, 5)) = "/wish" Then If Len(TextSay) > 6 Then TextSay = Mid(TextSay, 6, Len(TextSay) - 5) Do While C = 0 If GetVar("wishes.ini", "WISH", "Wish" & i) <> "" then i = i + 1 Else Call PutVar("wishes.ini", "WISH", "Wish" & i, Trim(TextSay)) Call PlayerMsg(index, "Thank You For Wishing!", 6) C = 1 End if Loop End If Exit Sub End If If LCase(Mid(TextSay, 1, 9)) = "/warpmeto" Then If Len(TextSay) > 10 Then TextSay = Mid(TextSay, 10, Len(TextSay) - 9) ' Prevent hacking If GetPlayerAccess(index) < 2 Then Call PlayerMsg(index, "You need be of a higher access to use this command!", 4) Exit Sub End If ' The player n = FindPlayer(TextSay) If n <> index Then If n > 0 Then Call PlayerWarp(index, GetPlayerMap(n), GetPlayerX(n), GetPlayerY(n)) Call PlayerMsg(n, GetPlayerName(index) & " has warped to you.", 6) Call PlayerMsg(index, "You have been warped to " & GetPlayerName(n) & ".", 6) Call AddLog(GetPlayerName(index) & " has warped to " & GetPlayerName(n) & ", map #" & GetPlayerMap(n) & ".", ADMIN_LOG) Else Call PlayerMsg(index, "Player is not online.", 15) End If Else Call PlayerMsg(index, "You cannot warp to yourself!", 15) End If End If Exit Sub End If If LCase(Mid(TextSay, 1, 9)) = "/warptome" Then If Len(TextSay) > 10 Then If GetPlayerAccess(index) < 2 Then Call PlayerMsg(index, "You need be of a higher access to use this command!", 4) Exit Sub End If n = Mid(TextSay, 10, Len(TextSay) - 9) n = FindPlayer(n) If n <> index Then If n > 0 Then Call PlayerWarp(n, GetPlayerMap(index), GetPlayerX(index), GetPlayerY(index)) Call PlayerMsg(n, "You have been summoned by " & GetPlayerName(index) & ".", 9) Call PlayerMsg(index, GetPlayerName(n) & " has been summoned.", 9) Call AddLog(GetPlayerName(index) & " has warped " & GetPlayerName(n) & " to self, map #" & GetPlayerMap(index) & ".", ADMIN_LOG) Else Call PlayerMsg(index, "Player is not online.", 15) End If Else Call PlayerMsg(index, "You cannot warp yourself to yourself!", 15) End If End If Exit Sub End If If LCase(Mid(TextSay, 1, 7)) = "/warpto" Then If Len(TextSay) > 8 Then TextSay = Mid(TextSay, 8, Len(TextSay) - 7) n = TextSay If n > 0 And n <= m Then If GetPlayerAccess(index) < 2 Then Call PlayerMsg(index, "You need be of a higher access to use this command!", 4) Exit Sub End If Call SpellAnim(2, GetPlayerMap(index), GetPlayerX(index)+1, GetPlayerY(index)-1) Call PlayerWarp(index, n, GetPlayerX(index), GetPlayerY(index)) Call SpellAnim(1, GetPlayerMap(index), GetPlayerX(index)+1, GetPlayerY(index)-1) Call PlayerMsg(index, "You have been warped to map #" & n, 9) Call AddLog(GetPlayerName(index) & " warped to map #" & n & ".", ADMIN_LOG) Else Call PlayerMsg(index, "Invalid map number.", 4) End If End If Exit Sub End If If LCase(Trim(TextSay)) = "/help" Then Call PlayerMsg(index, "Social Commands:", 15) Call PlayerMsg(index, "'msghere = Broadcast Message", 15) Call PlayerMsg(index, "-msghere = Emote Message", 15) Call PlayerMsg(index, "!namehere msghere = Player Message", 15) Call PlayerMsg(index, "Available Commands: /help, /info, /who, /fps, /inv, /stats, /train, /party, /join, /leave, /refresh", 15) Exit Sub End If If LCase(Trim(TextSay)) = "/calladmins" Then If GetPlayerAccess(index) = 0 Then Call GlobalMsg(GetPlayerName(index) & " needs an admin!", 10) Else Call PlayerMsg(index, "You are an admin!", 10) End If Exit Sub End If If LCase(Trim(TextSay)) = "/admin" Then If GetPlayerAccess(index) > 0 Then Call PlayerMsg(index, "Social Commands:", 15) Call PlayerMsg(index, """msghere = Global Admin Message", 15) Call PlayerMsg(index, "=msghere = Private Admin Message", 15) Call PlayerMsg(index, "Available Commands: /admin, /loc, /mapeditor, /warpmeto, /warptome, /warpto, /setsprite, /mapreport, /kick, /ban, /edititem, /respawn, /editnpc, /motd, /editshop, /ban, /editspell", 15) End If Exit Sub End If Select Case LCase(Trim(TextSay)) Case "/away" 'If GetPlayerAccess(index) >= 1 Then If GetVar("accounts\" & GetPlayerLogin(index) & ".ini", "CHAR" & GetPlayerCharNum(index), "Status") = 0 Then Call GlobalMsg(GetPlayerName(index) & " is now away.", 14) Call PutVar("accounts\" & GetPlayerLogin(index) & ".ini", "CHAR" & GetPlayerCharNum(index), "Status", 1) Call PutVar("accounts\" & GetPlayerLogin(index) & ".ini", "CHAR" & GetPlayerCharNum(index), "TempPlayerName", GetPlayerName(index)) Call SetPlayerName(index, GetPlayerName(index) & " - Away") Call SendPlayerData(index) Exit Sub ElseIf GetVar("accounts\" & GetPlayerLogin(index) & ".ini", "CHAR" & GetPlayerCharNum(index), "Status") = 1 Then Call SetPlayerName(index, GetVar("accounts\" & GetPlayerLogin(index) & ".ini", "CHAR" & GetPlayerCharNum(index), "TempPlayerName")) Call GlobalMsg(GetPlayerName(index) & " has returned from being away.", 14) Call PutVar("accounts\" & GetPlayerLogin(index) & ".ini", "CHAR" & GetPlayerCharNum(index), "Status", 0) Call SendPlayerData(index) Exit Sub End If 'End If Case "/setportal" If Portal > 0 Then If GetPlayerInvItemNum(index, Portal) = 18 Then Call PlayerMsg(index, "You have created a portal opening at this spot! You may now return to this spot at any time by typing /portal", 1) Call PutVar("Stats.ini", GetPlayerName(index), "map", GetPlayerMap(index)) Call PutVar("Stats.ini", GetPlayerName(index), "x", GetPlayerX(index)) Call PutVar("Stats.ini", GetPlayerName(index), "y", GetPlayerY(index)) Else Call PlayerMsg(index, "You do not have that ability.", 4) End If Exit Sub End If Case "/portal" If Portal > 0 Then mapnum = GetVar("Stats.ini", GetPlayerName(index), "map") y = GetVar("Stats.ini", GetPlayerName(index), "y") x = GetVar("Stats.ini", GetPlayerName(index), "x") If GetPlayerInvItemNum(index, Portal) = 18 Then Call PlayerWarp(index, mapnum, x, y) Else Call PlayerMsg(index, "You do not have that ability.", 4) End If Exit Sub End If Case "/bell" Call SetTile(1,3,11,1,1,1,8) Call GlobalMsg("*dingy* *diny* *ding*", 7)Call SendMap(1) Exit Sub Case "/killall" Call SpellAnim(1,1,1,6) Exit Sub Case "/blah" Call PlayerMsg(index, GetTileX(1,0,16,8), 15) Call PlayerMsg(index, GetTileY(1,0,16,8), 15) Call PlayerMsg(index, GetTileSet(1,0,16,8), 15) Case "/block" Call SetAttribute(1,GetPlayerX(index),GetPlayerY(index),1,0,0,0,"","","") Case "/bleh" Call PlayerQueryBox(index, "Hello?", 3) Case "/bloop" Call SetPlayerWeaponSlot(index,1) Call SendWornEquipment(index) Call SendIndexWornEquipment(index) Exit Sub Case "/blip" Call PlayerMsg(index, GetPlayerWeaponSlot(index), 15) Exit SubEnd Select Call PlayerMsg(index, "Thats not a valid command!", 12)End SubSub DropItems(index) If GetPlayerWeaponSlot(index) > 0 Then Call PlayerMapDropItem(index, GetPlayerWeaponSlot(index), 0) End If If GetPlayerArmorSlot(index) > 0 Then Call PlayerMapDropItem(index, GetPlayerArmorSlot(index), 0) End If If GetPlayerHelmetSlot(index) > 0 Then Call PlayerMapDropItem(index, GetPlayerHelmetSlot(index), 0) End If If GetPlayerShieldSlot(index) > 0 Then Call PlayerMapDropItem(index, GetPlayerShieldSlot(index), 0) End IfEnd SubSub OnDeath(index) Dim mapnum Dim x dim y mapnum = GetVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "map") x = GetVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "x") y = GetVar("scripts\charextras\" & trim(GetPlayerName(index)) & ".ini", "respawn", "y") Call PlayerWarp(index, mapnum, x, y)End SubSub SetBlock(map, X, Y)Call SetAttribute(map,X,Y,1,0,0,0,"","","")End SubSub SetWarp(map, X, Y, warpmap, warpx, warpy)Call SetAttribute(map,X,Y,2,warpmap,warpx,warpy,"","","")End SubSub SetHeal(map, X, Y)Call SetAttribute(map,X,Y,7,0,0,0,"","","")End SubSub SetKill(map, X, Y)Call SetAttribute(map,X,Y,8,0,0,0,"","","")End SubSub SetItem(map, X, Y, item, value)Call SetAttribute(map,X,Y,3,item,value,0,"","","")End SubSub SetNPCAvoid(map, X, Y)Call SetAttribute(map,X,Y,4,0,0,0,"","","")End SubSub SetKey(map, X, Y, key, take)Call SetAttribute(map,X,Y,5,key,take,0,"","","")End SubSub SetKeyOpen(map, X, Y, keyx, keyy, message)Call SetAttribute(map,X,Y,6,keyx,keyy,0,message,"","")End SubSub SetShop(map, X, Y,shop)Call SetAttribute(map,X,Y,9,shop,0,0,"","","")End SubSub SetClassBlock(map, X, Y,allow1,allow2,allow3)Call SetAttribute(map,X,Y,10,allow,allow2,allow3,"","","")End SubSub SetArena(map, X, Y,amap,ax,ay)Call SetAttribute(map,X,Y,11,amap,ax,ay,"","","")End SubSub SetSound(map, X, Y,filename)Call SetAttribute(map,X,Y,12,0,0,0,filename,"","")End SubSub SetSpriteChange(map, X, Y,sprite,item,cost)Call SetAttribute(map,X,Y,13,sprite,item,cost,"","","")End SubSub SetSign(map, X, Y,line1,line2,line3)Call SetAttribute(map,X,Y,14,0,0,0,line1,line2,line3)End SubSub SetDoor(map, X, Y)Call SetAttribute(map,X,Y,15,0,0,0,"","","")End SubSub SetNotice(map, X, Y, title, text, filename)Call SetAttribute(map,X,Y,16,0,0,0,title,text,filename)End SubSub SetChest(map, X, Y)Call SetAttribute(map,X,Y,17,0,0,0,"","","")End SubSub SetScripted(map, X, Y, script)Call SetAttribute(map,X,Y,18,script,0,0,"","","")End SubSub SetBank(map, X, Y)Call SetAttribute(map,X,Y,23,0,0,0,"","","")End SubSub SetHouse(map, X, Y,item,cost)Call SetAttribute(map,X,Y,21,item,cost,0,"","","")End Sub'********************************Sub Give_Item(index, number, durability)'********************************Dim slotslot = 1Do While slot < 25If Getplayerinvitemnum( index, Int( slot ) ) = 0 ThenCall SetPlayerInvItemNum(index, Int( slot ), Int( number ) )Call SetPlayerInvItemDur(index, Int( slot ), Int( durability ) )Call SetPlayerInvItemValue(index, Int( slot ), Int(0) )Call SendInventoryUpdate(index, Int(slot) )slot = 25End Ifslot = slot + 1LoopEnd Sub``` Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now