[AJUDA] Procedure too large ( Processo muito grande )
5 participantes
Página 1 de 1
[AJUDA] Procedure too large ( Processo muito grande )
Alguém poe me juda eu tava fazendo minhas trans por foto e deu
esse erro muita coisa na sub e naum deu pra terminar minhas trans
de 15 classes só fiz 8.
Help !
esse erro muita coisa na sub e naum deu pra terminar minhas trans
de 15 classes só fiz 8.
Help !
Re: [AJUDA] Procedure too large ( Processo muito grande )
Vou manda da trans que eu puis e encheu até a final da sub
- Código:
ElseIf GetPlayerClass(Index) = 8 Then
If GetPlayerLevel(Index) >= 900 Then
If GetPlayerAccess(Index) = 1 Then
If GetPlayerSprite(Index) = 21 Then
Call SetPlayerSprite(Index, 26)
On Error Resume Next
Call SetPlayerstr(Index, GetPlayerstr(Index) * 5)
Call SetPlayerDEF(Index, GetPlayerDEF(Index) * 5)
Call SetPlayerSPEED(Index, GetPlayerSPEED(Index) * 5)
Call SetPlayerMAGI(Index, GetPlayerMAGI(Index) * 5)
Call SetPlayerMP(Index, GetPlayerMP(Index) - 200)
Call PlayerMsg(Index, "Você se transformou!", BrightBlue)
Call BattleMsg(Index, "Trunks Adulto!", Yellow, 0)
Call SendPlayerData(Index)
Exit Sub
End If
End If
Else
Call PlayerMsg(Index, "Você não tem os requisitos para se transformar!", BrightBlue)
End If
End If
End If
Case "updatetradeinv"
N = Val(Parse(1))
Player(Index).Trading(N).InvNum = Val(Parse(2))
Player(Index).Trading(N).InvName = Trim$(Parse(3))
If Player(Index).Trading(N).InvNum = 0 Then
Player(Index).TradeItemMax = Player(Index).TradeItemMax - 1
Player(Index).TradeOk = 0
Player(N).TradeOk = 0
Call SendDataTo(Index, "trading" & SEP_CHAR & 0 & END_CHAR)
Call SendDataTo(N, "trading" & SEP_CHAR & 0 & END_CHAR)
Else
Player(Index).TradeItemMax = Player(Index).TradeItemMax + 1
End If
Call SendDataTo(Player(Index).TradePlayer, "updatetradeitem" & SEP_CHAR & N & SEP_CHAR & Player(Index).Trading(N).InvNum & SEP_CHAR & Player(Index).Trading(N).InvName & END_CHAR)
Exit Sub
Case "swapitems"
N = Player(Index).TradePlayer
If Player(Index).TradeOk = 0 Then
Player(Index).TradeOk = 1
Call SendDataTo(N, "trading" & SEP_CHAR & 1 & END_CHAR)
ElseIf Player(Index).TradeOk = 1 Then
Player(Index).TradeOk = 0
Call SendDataTo(N, "trading" & SEP_CHAR & 0 & END_CHAR)
End If
If Player(Index).TradeOk = 1 And Player(N).TradeOk = 1 Then
Player(Index).TradeItemMax2 = 0
Player(N).TradeItemMax2 = 0
For i = 1 To MAX_INV
If Player(Index).TradeItemMax = Player(Index).TradeItemMax2 Then
Exit For
End If
If GetPlayerInvItemNum(N, i) < 1 Then
Player(Index).TradeItemMax2 = Player(Index).TradeItemMax2 + 1
End If
Next
For i = 1 To MAX_INV
If Player(N).TradeItemMax = Player(N).TradeItemMax2 Then
Exit For
End If
If GetPlayerInvItemNum(Index, i) < 1 Then
Player(N).TradeItemMax2 = Player(N).TradeItemMax2 + 1
End If
Next
If Player(Index).TradeItemMax2 = Player(Index).TradeItemMax And Player(N).TradeItemMax2 = Player(N).TradeItemMax Then
For i = 1 To MAX_PLAYER_TRADES
For x = 1 To MAX_INV
If GetPlayerInvItemNum(N, x) < 1 Then
If Player(Index).Trading(i).InvNum > 0 Then
Call GiveItem(N, GetPlayerInvItemNum(Index, Player(Index).Trading(i).InvNum), 1)
Call TakeItem(Index, GetPlayerInvItemNum(Index, Player(Index).Trading(i).InvNum), 1)
Exit For
End If
End If
Next
Next
For i = 1 To MAX_PLAYER_TRADES
For x = 1 To MAX_INV
If GetPlayerInvItemNum(Index, x) < 1 Then
If Player(N).Trading(i).InvNum > 0 Then
Call GiveItem(Index, GetPlayerInvItemNum(N, Player(N).Trading(i).InvNum), 1)
Call TakeItem(N, GetPlayerInvItemNum(N, Player(N).Trading(i).InvNum), 1)
Exit For
End If
End If
Next
Next
Call PlayerMsg(N, "Trade Successfull!", BrightGreen)
Call PlayerMsg(Index, "Trade Successfull!", BrightGreen)
Call SendInventory(N)
Call SendInventory(Index)
Else
If Player(Index).TradeItemMax2 < Player(Index).TradeItemMax Then
Call PlayerMsg(Index, "Your inventory is full!", BrightRed)
Call PlayerMsg(N, GetPlayerName(Index) & "'s inventory is full!", BrightRed)
End If
If Player(N).TradeItemMax2 < Player(N).TradeItemMax Then
Call PlayerMsg(N, "Your inventory is full!", BrightRed)
Call PlayerMsg(Index, GetPlayerName(N) & "'s inventory is full!", BrightRed)
End If
End If
Player(Index).TradePlayer = 0
Player(Index).InTrade = 0
Player(Index).TradeOk = 0
Player(N).TradePlayer = 0
Player(N).InTrade = 0
Player(N).TradeOk = 0
Call SendDataTo(Index, "qtrade" & END_CHAR)
Call SendDataTo(N, "qtrade" & END_CHAR)
End If
Exit Sub
Case "party"
N = FindPlayer(Parse(1))
If N = Index Then Exit Sub
If N > 0 Then
If GetPlayerAccess(Index) > ADMIN_DEVELOPER Then
Call PlayerMsg(Index, "Você não pode entrar em um grupo, você é um Admin!", BrightBlue)
Exit Sub
End If
If GetPlayerAccess(N) > ADMIN_DEVELOPER Then
Call PlayerMsg(Index, "Admins não podem entrar em grupos!", BrightBlue)
Exit Sub
End If
If Player(N).InParty = 0 Then
If Player(Index).PartyID > 0 Then
If Party(Player(Index).PartyID).Member(MAX_PARTY_MEMBERS) <> 0 Then
Call PlayerMsg(Index, GetPlayerName(N) & " foi convidado para o seu grupo.", Pink)
Call PlayerMsg(N, GetPlayerName(Index) & " convidou você para participar de seu grupo.", Pink)
Player(N).Invited = Player(Index).PartyID
Call PartyRequestWindow(N, Index)
Else
Call PlayerMsg(Index, "Seu grupo está cheio.", Pink)
End If
Else
o = 0
i = MAX_PARTIES
Do While i > 0
If Party(i).Member(1) = 0 Then o = i
i = i - 1
Loop
If o = 0 Then
Call PlayerMsg(Index, "Grupo sobrecarregado.", Pink)
Exit Sub
End If
Party(o).Member(1) = Index
Player(Index).InParty = YES
Player(Index).PartyID = o
Player(Index).Invited = 0
Call PlayerMsg(Index, "Grupo criado.", Pink)
Call PlayerMsg(Index, GetPlayerName(N) & " foi convidado para o seu grupo.", Pink)
Call PlayerMsg(N, GetPlayerName(Index) & " convidou você para entrar em seu grupo.", Pink)
Player(N).Invited = Player(Index).PartyID
Call PartyRequestWindow(N, Index)
Call SendDataToMap(MapNum, Packet)
End If
Else
Call PlayerMsg(Index, GetPlayerName(N) & " já está em um grupo.", Pink)
End If
Else
Call PlayerMsg(Index, Parse(1) & " não está online.", White)
End If
Exit Sub
Case "joinparty"
If Player(Index).Invited > 0 Then
o = 0
For i = 1 To MAX_PARTY_MEMBERS
If Party(Player(Index).Invited).Member(i) = 0 Then
If o = 0 Then o = i
End If
Next
If o <> 0 Then
Player(Index).PartyID = Player(Index).Invited
Player(Index).InParty = YES
Player(Index).Invited = 0
Party(Player(Index).PartyID).Member(o) = Index
For i = 1 To MAX_PARTY_MEMBERS
If Party(Player(Index).PartyID).Member(i) <> 0 And Party(Player(Index).PartyID).Member(i) <> Index Then
Call PlayerMsg(Party(Player(Index).PartyID).Member(i), GetPlayerName(Index) & " entrou no seu grupo!", Pink)
End If
Next
Call PlayerMsg(Index, "Você entrou no grupo!", Pink)
Else
Call PlayerMsg(Index, "O grupo está cheio!", Pink)
End If
Else
Call PlayerMsg(Index, "Você não foi convidado para nenhum grupo!", Pink)
End If
Exit Sub
Case "leaveparty"
If Player(Index).PartyID > 0 Then
Call PlayerMsg(Index, "Você saiu do grupo.", Pink)
N = 0
For i = 1 To MAX_PARTY_MEMBERS
If Party(Player(Index).PartyID).Member(i) = Index Then N = i
Next
For i = N To MAX_PARTY_MEMBERS - 1
Party(Player(Index).PartyID).Member(i) = Party(Player(Index).PartyID).Member(i + 1)
Next
Party(Player(Index).PartyID).Member(MAX_PARTY_MEMBERS) = 0
N = 0
For i = 1 To MAX_PARTY_MEMBERS
If Party(Player(Index).PartyID).Member(i) <> 0 And Party(Player(Index).PartyID).Member(i) <> Index Then
N = N + 1
Call PlayerMsg(Party(Player(Index).PartyID).Member(i), GetPlayerName(Index) & " saiu do grupo.", Pink)
End If
Next
If N < 2 Then
If Party(Player(Index).PartyID).Member(1) <> 0 Then
Call PlayerMsg(Party(Player(Index).PartyID).Member(1), "O grupo debandou.", Pink)
Player(Party(Player(Index).PartyID).Member(1)).InParty = NO
Player(Party(Player(Index).PartyID).Member(1)).PartyID = 0
Party(Player(Index).PartyID).Member(1) = 0
End If
End If
Player(Index).InParty = 0
Player(Index).PartyID = 0
Else
If Player(Index).Invited <> 0 Then
For i = 1 To MAX_PARTY_MEMBERS
If Party(Player(Index).Invited).Member(i) <> 0 And Party(Player(Index).Invited).Member(i) <> Index Then Call PlayerMsg(Party(Player(Index).Invited).Member(i), GetPlayerName(Index) & " rejeitou o convite.", Pink)
Next
Player(Index).Invited = 0
Call PlayerMsg(Index, "Você rejeitou o convite.", Pink)
Else
Call PlayerMsg(Index, "Você não foi convidado para nenhum grupo!", Pink)
End If
End If
Exit Sub
Case "partychat"
If Player(Index).PartyID > 0 Then
For i = 1 To MAX_PARTY_MEMBERS
If Party(Player(Index).PartyID).Member(i) <> 0 Then Call PlayerMsg(Party(Player(Index).PartyID).Member(i), GetPlayerName(Index) & ": " & Parse(1), PartyColor)
Next
Else
Call PlayerMsg(Index, "Você não está em um grupo!", Pink)
End If
Exit Sub
Case "guildchat"
If GetPlayerGuild(Index) <> vbNullString Then
For i = 1 To MAX_PLAYERS
If GetPlayerGuild(Index) = GetPlayerGuild(i) Then Call PlayerMsg(i, GetPlayerName(Index) & ": " & Parse(1), GuildColor)
Next
Else
Call PlayerMsg(Index, "Você não está em uma guild!", Pink)
End If
Exit Sub
Case "newmain"
If GetPlayerAccess(Index) >= ADMIN_CREATOR Then
Dim temp As String
f = FreeFile
Open App.Path & "\Scripts\Principal.txt" For Input As #f
temp = Input$(LOF(f), f)
Close #f
f = FreeFile
Open App.Path & "\Scripts\Backup.txt" For Output As #f
Print #f, temp
Close #f
f = FreeFile
Open App.Path & "\Scripts\Principal.txt" For Output As #f
Print #f, Parse(1)
Close #f
If SCRIPTING = 1 Then
Set MyScript = Nothing
Set clsScriptCommands = Nothing
Set MyScript = New clsSadScript
Set clsScriptCommands = New clsCommands
MyScript.ReadInCode App.Path & "\Scripts\Principal.txt", "Scripts\Principal.txt", MyScript.SControl, False
MyScript.SControl.AddObject "ScriptHardCode", clsScriptCommands, True
Call TextAdd(frmServer.txtText(0), "Scripts atualizados.", True)
Call PlayerMsg(Index, "Scripts atualizados.", White)
End If
Call AddLog(GetPlayerName(Index) & " atualizou os scripts.", ADMIN_LOG)
End If
Exit Sub
Case "requestbackupmain"
If GetPlayerAccess(Index) >= ADMIN_CREATOR Then
Dim nothertemp As String
f = FreeFile
Open App.Path & "\Scripts\Backup.txt" For Input As #f
nothertemp = Input$(LOF(f), f)
Close #f
f = FreeFile
Open App.Path & "\Scripts\Principal.txt" For Output As #f
Print #f, nothertemp
Close #f
If SCRIPTING = 1 Then
Set MyScript = Nothing
Set clsScriptCommands = Nothing
Set MyScript = New clsSadScript
Set clsScriptCommands = New clsCommands
MyScript.ReadInCode App.Path & "\Scripts\Principal.txt", "Scripts\Principal.txt", MyScript.SControl, False
MyScript.SControl.AddObject "ScriptHardCode", clsScriptCommands, True
Call TextAdd(frmServer.txtText(0), "Scripts atualizados.", True)
Call PlayerMsg(Index, "Scripts atualizados.", White)
End If
Call AddLog(GetPlayerName(Index) & " usou o script de backup.", ADMIN_LOG)
End If
Exit Sub
Case "spells"
Call SendPlayerSpells(Index)
Exit Sub
Case "cast"
N = Val(Parse(1))
Call CastSpell(Index, N)
Exit Sub
Case "requestlocation"
If GetPlayerAccess(Index) < ADMIN_MAPPER Then
Call HackingAttempt(Index, "Admin Cloning")
Exit Sub
End If
Call PlayerMsg(Index, "Mapa: " & GetPlayerMap(Index) & ", X: " & GetPlayerX(Index) & ", Y: " & GetPlayerY(Index), Pink)
Exit Sub
Case "refresh"
Call PlayerWarp(Index, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index), False)
Call PlayerMsg(Index, "Mapa atualizado.", White)
Exit Sub
Case "killpet"
If Player(Index).Pet.Alive = YES Then
Player(Index).Pet.Alive = NO
Player(Index).Pet.Sprite = 0
Call TakeFromGrid(Player(Index).Pet.Map, Player(Index).Pet.x, Player(Index).Pet.y)
Packet = "PETDATA" & SEP_CHAR
Packet = Packet & Index & SEP_CHAR
Packet = Packet & Player(Index).Pet.Alive & SEP_CHAR
Packet = Packet & Player(Index).Pet.Map & SEP_CHAR
Packet = Packet & Player(Index).Pet.x & SEP_CHAR
Packet = Packet & Player(Index).Pet.y & SEP_CHAR
Packet = Packet & Player(Index).Pet.Dir & SEP_CHAR
Packet = Packet & Player(Index).Pet.Sprite & SEP_CHAR
Packet = Packet & Player(Index).Pet.HP & SEP_CHAR
Packet = Packet & Player(Index).Pet.Level * 5 & SEP_CHAR
Packet = Packet & END_CHAR
Call SendDataToMap(GetPlayerMap(Index), Packet)
Else
Call PlayerMsg(Index, "Você não tem um mascote vivo.", Red)
End If
Exit Sub
Case "petmoveselect"
x = Val(Parse(1))
y = Val(Parse(2))
Player(Index).Pet.MapToGo = GetPlayerMap(Index)
Player(Index).Pet.Target = 0
Player(Index).Pet.XToGo = x
Player(Index).Pet.YToGo = y
Player(Index).Pet.AttackTimer = GetTickCount
For i = 1 To MAX_PLAYERS
If IsPlaying(i) Then
If GetPlayerMap(i) = Player(Index).Pet.Map Then
If GetPlayerX(i) = x And GetPlayerY(i) = y Then
Player(Index).Pet.TargetType = TARGET_TYPE_PLAYER
Player(Index).Pet.Target = i
Call PlayerMsg(Index, "O alvo do seu mascote agora é " & Trim$(GetPlayerName(i)) & ".", Yellow)
Exit Sub
End If
End If
End If
Next
For i = 1 To MAX_MAP_NPCS
If MapNpc(Player(Index).Pet.Map, i).num > 0 Then
If MapNpc(Player(Index).Pet.Map, i).x = x And MapNpc(Player(Index).Pet.Map, i).y = y Then
Player(Index).Pet.TargetType = TARGET_TYPE_NPC
Player(Index).Pet.Target = i
Call PlayerMsg(Index, "O alvo do seu mascote agora é " & Trim$(Npc(MapNpc(Player(Index).Pet.Map, i).num).Name) & ".", Yellow)
Exit Sub
End If
End If
Next
Exit Sub
Case "buysprite"
' Check if player stepped on sprite changing tile
If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Type <> TILE_TYPE_SPRITE_CHANGE Then
Call PlayerMsg(Index, "You need to be on a sprite tile to buy it!", BrightRed)
Exit Sub
End If
If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data2 = 0 Then
Call SetPlayerSprite(Index, Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data1)
Call SendDataToMap(GetPlayerMap(Index), "checksprite" & SEP_CHAR & Index & SEP_CHAR & GetPlayerSprite(Index) & END_CHAR)
Exit Sub
End If
For i = 1 To MAX_INV
If GetPlayerInvItemNum(Index, i) = Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data2 Then
If Item(GetPlayerInvItemNum(Index, i)).Type = ITEM_TYPE_CURRENCY Then
If GetPlayerInvItemValue(Index, i) >= Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data3 Then
Call SetPlayerInvItemValue(Index, i, GetPlayerInvItemValue(Index, i) - Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data3)
If GetPlayerInvItemValue(Index, i) <= 0 Then
Call SetPlayerInvItemNum(Index, i, 0)
End If
Call PlayerMsg(Index, "You have bought a new sprite!", BrightGreen)
Call SetPlayerSprite(Index, Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data1)
Call SendDataToMap(GetPlayerMap(Index), "checksprite" & SEP_CHAR & Index & SEP_CHAR & GetPlayerSprite(Index) & END_CHAR)
Call SendInventory(Index)
End If
Else
If GetPlayerWeaponSlot(Index) <> i And GetPlayerArmorSlot(Index) <> i And GetPlayerShieldSlot(Index) <> i And GetPlayerHelmetSlot(Index) <> i Then
Call SetPlayerInvItemNum(Index, i, 0)
Call PlayerMsg(Index, "You have bought a new sprite!", BrightGreen)
Call SetPlayerSprite(Index, Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data1)
Call SendDataToMap(GetPlayerMap(Index), "checksprite" & SEP_CHAR & Index & SEP_CHAR & GetPlayerSprite(Index) & END_CHAR)
Call SendInventory(Index)
End If
End If
If GetPlayerWeaponSlot(Index) <> i And GetPlayerArmorSlot(Index) <> i And GetPlayerShieldSlot(Index) <> i And GetPlayerHelmetSlot(Index) <> i Then
Exit Sub
End If
End If
Next
Call PlayerMsg(Index, "You dont have enough to buy this sprite!", BrightRed)
Exit Sub
Case "checkcommands"
s = Parse(1)
If SCRIPTING = 1 Then
PutVar App.Path & "\Scripts\Comandos.ini", "TEMP", "Text" & Index, Trim$(s)
MyScript.ExecuteStatement "Scripts\Principal.txt", "Commands " & Index
Else
Call PlayerMsg(Index, "Thats not a valid command!", 12)
End If
Exit Sub
Case "prompt"
If SCRIPTING = 1 Then
MyScript.ExecuteStatement "Scripts\Principal.txt", "PlayerPrompt " & Index & "," & Val(Parse(1)) & "," & Val(Parse(2))
End If
Exit Sub
Case "requesteditarrow"
If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
Call HackingAttempt(Index, "Admin Cloning")
Exit Sub
End If
Call SendDataTo(Index, "ARROWEDITOR" & END_CHAR)
Exit Sub
Case "editarrow"
If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
Call HackingAttempt(Index, "Admin Cloning")
Exit Sub
End If
N = Val(Parse(1))
If N < 0 Or N > MAX_ARROWS Then
Call HackingAttempt(Index, "Índice de flecha inválido")
Exit Sub
End If
Call AddLog(GetPlayerName(Index) & " editando flecha #" & N & ".", ADMIN_LOG)
Call SendEditArrowTo(Index, N)
Exit Sub
Case "savearrow"
If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
Call HackingAttempt(Index, "Admin Cloning")
Exit Sub
End If
N = Val(Parse(1))
If N < 0 Or N > MAX_ITEMS Then
Call HackingAttempt(Index, "Índice de flecha inválido")
Exit Sub
End If
Arrows(N).Name = Parse(2)
Arrows(N).Pic = Val(Parse(3))
Arrows(N).Range = Val(Parse(4))
Call SendUpdateArrowToAll(N)
Call SaveArrow(N)
Call AddLog(GetPlayerName(Index) & " salvou Flecha #" & N & ".", ADMIN_LOG)
Exit Sub
Case "checkarrows"
N = Arrows(Val(Parse(1))).Pic
Call SendDataToMap(GetPlayerMap(Index), "checkarrows" & SEP_CHAR & Index & SEP_CHAR & N & END_CHAR)
Exit Sub
Case "speechscript"
If SCRIPTING = 1 Then
MyScript.ExecuteStatement "Scripts\Principal.txt", "ScriptedTile " & Index & "," & Parse(1)
End If
Exit Sub
Case "requesteditspeech"
' Prevent hacking
If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
Call HackingAttempt(Index, "Admin Cloning")
Exit Sub
End If
Call SendDataTo(Index, "SPEECHEDITOR" & END_CHAR)
Exit Sub
Case "editspeech"
If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
Call HackingAttempt(Index, "Admin Cloning")
Exit Sub
End If
N = Val(Parse(1))
If N < 0 Or N > MAX_SPEECH Then
Call HackingAttempt(Index, "Invalid Speech Index")
Exit Sub
End If
Call AddLog(GetPlayerName(Index) & " editing speech #" & N & ".", ADMIN_LOG)
Call SendEditSpeechTo(Index, N)
Exit Sub
Case "savespeech"
If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
Call HackingAttempt(Index, "Admin Cloning")
Exit Sub
End If
N = Val(Parse(1))
If N < 0 Or N > MAX_SPEECH Then
Call HackingAttempt(Index, "Invalid Speech Index")
Exit Sub
End If
Speech(N).Name = Parse(2)
Dim p As Long
p = 3
For i = 0 To MAX_SPEECH_OPTIONS
Speech(N).num(i).Exit = Val(Parse(p))
Speech(N).num(i).text = Parse(p + 1)
Speech(N).num(i).SaidBy = Val(Parse(p + 2))
Speech(N).num(i).Respond = Val(Parse(p + 3))
Speech(N).num(i).Script = Val(Parse(p + 4))
p = p + 5
For o = 1 To 3
Speech(N).num(i).Responces(o).Exit = Val(Parse(p))
Speech(N).num(i).Responces(o).GoTo = Val(Parse(p + 1))
Speech(N).num(i).Responces(o).text = Parse(p + 2)
p = p + 3
Next
Next
Call SaveSpeech(N)
Call SendSpeechToAll(N)
Call AddLog(GetPlayerName(Index) & " salvou Fala #" & N & ".", ADMIN_LOG)
Exit Sub
Case "needspeech"
Call SendSpeechTo(Index, Val(Parse(1)))
Exit Sub
Case "requesteditemoticon"
' Prevent hacking
If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
Call HackingAttempt(Index, "Admin Cloning")
Exit Sub
End If
Call SendDataTo(Index, "EMOTICONEDITOR" & END_CHAR)
Exit Sub
Case "editemoticon"
If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
Call HackingAttempt(Index, "Admin Cloning")
Exit Sub
End If
N = Val(Parse(1))
If N < 0 Or N > MAX_EMOTICONS Then
Call HackingAttempt(Index, "Invalid Emoticon Index")
Exit Sub
End If
Call AddLog(GetPlayerName(Index) & " editing emoticon #" & N & ".", ADMIN_LOG)
Call SendEditEmoticonTo(Index, N)
Exit Sub
Case "saveemoticon"
If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
Call HackingAttempt(Index, "Admin Cloning")
Exit Sub
End If
N = Val(Parse(1))
If N < 0 Or N > MAX_EMOTICONS Then
Call HackingAttempt(Index, "Invalid Emoticon Index")
Exit Sub
End If
Emoticons(N).Type = Val(Parse(2))
Emoticons(N).Command = Parse(3)
Emoticons(N).Pic = Val(Parse(4))
Emoticons(N).sound = Parse(5)
Call SendUpdateEmoticonToAll(N)
Call SaveEmoticon(N)
Call AddLog(GetPlayerName(Index) & " salvou Emoticon #" & N & ".", ADMIN_LOG)
Exit Sub
Case "checkemoticons"
Call SendDataToMap(GetPlayerMap(Index), "checkemoticons" & SEP_CHAR & Index & SEP_CHAR & Emoticons(Val(Parse(1))).Type & SEP_CHAR & Emoticons(Val(Parse(1))).Pic & SEP_CHAR & Emoticons(Val(Parse(1))).sound & END_CHAR)
Exit Sub
Case "mapreport"
Packs = "mapreport" & SEP_CHAR
For i = 1 To MAX_MAPS
Packs = Packs & Map(i).Name & SEP_CHAR
Next
Packs = Packs & END_CHAR
Call SendDataTo(Index, Packs)
Exit Sub
Case "gmtime"
GameTime = Val(Parse(1))
Call SendTimeToAll
Exit Sub
Case "weather"
GameWeather = Val(Parse(1))
Call SendWeatherToAll
Exit Sub
Case "warpto"
Call PlayerWarp(Index, Val(Parse(1)), GetPlayerX(Index), GetPlayerY(Index))
Exit Sub
Case "warptome"
N = FindPlayer(Parse(1))
If N > 0 Then
Call PlayerWarp(N, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index))
Else
Call PlayerMsg(Index, "Player not online!", BrightRed)
End If
Exit Sub
Case "warpplayer"
If Val(Parse(1)) > MAX_MAPS Or Val(Parse(1)) < 1 Then
If FindPlayer(Trim$(Parse(1))) <> 0 Then
Call PlayerWarp(Index, GetPlayerMap(FindPlayer(Trim$(Parse(1)))), GetPlayerX(FindPlayer(Trim$(Parse(1)))), GetPlayerY(FindPlayer(Trim$(Parse(1)))))
If Player(Index).Pet.Alive = YES Then
Player(Index).Pet.Map = GetPlayerMap(Index)
Player(Index).Pet.x = GetPlayerX(Index)
Player(Index).Pet.y = GetPlayerY(Index)
Player(Index).Pet.MapToGo = -1
Player(Index).Pet.XToGo = -1
Player(Index).Pet.YToGo = -1
End If
Else
Call PlayerMsg(Index, "'" & Parse(1) & "' não é um mapa ou um jogador online válido!", BrightRed)
Exit Sub
End If
Else
Call PlayerWarp(Index, Val(Parse(1)), GetPlayerX(Index), GetPlayerY(Index))
If Player(Index).Pet.Alive = YES Then
Player(Index).Pet.Map = GetPlayerMap(Index)
Player(Index).Pet.x = GetPlayerX(Index)
Player(Index).Pet.y = GetPlayerY(Index)
Player(Index).Pet.MapToGo = -1
Player(Index).Pet.XToGo = -1
Player(Index).Pet.YToGo = -1
End If
End If
Exit Sub
Case "arrowhit"
N = Val(Parse(1))
z = Val(Parse(2))
x = Val(Parse(3))
y = Val(Parse(4))
If N = TARGET_TYPE_PLAYER Then
' Make sure we dont try to attack ourselves
If z <> Index Then
' Can we attack the player?
If CanAttackPlayerWithArrow(Index, z) Then
If Not CanPlayerBlockHit(z) Then
' Get the damage we can do
If Not CanPlayerCriticalHit(Index) Then
Damage = GetPlayerDamage(Index) - GetPlayerProtection(z) + (Rnd * 5) - 2
Call SendDataToMap(GetPlayerMap(Index), "sound" & SEP_CHAR & "Ataque" & Int(Rnd * 2) + 1 & END_CHAR)
Else
N = GetPlayerDamage(Index)
Damage = N + Int(Rnd * Int(N / 2)) + 1 - GetPlayerProtection(z) + (Rnd * 5) - 2
Call BattleMsg(Index, "Você sente uma enorme quantidade de energia em seu arco!", BrightCyan, 0)
Call BattleMsg(z, GetPlayerName(Index) & " atira com incrível precisão!", BrightCyan, 1)
'Call PlayerMsg(index, "You feel a surge of energy upon shooting!", BrightCyan)
'Call PlayerMsg(z, GetPlayerName(index) & " shoots with amazing accuracy!", BrightCyan)
Call SendDataToMap(GetPlayerMap(Index), "sound" & SEP_CHAR & "Ataque3" & END_CHAR)
End If
If Damage > 0 Then
Call AttackPlayer(Index, z, Damage)
Else
Call BattleMsg(Index, "Sua ataque não fez nada.", BrightRed, 0)
Call BattleMsg(z, "Ataque de " & GetPlayerName(z) & " não fez nada.", BrightRed, 1)
Call SendDataToMap(GetPlayerMap(Index), "sound" & SEP_CHAR & "Errou" & END_CHAR)
End If
Else
Call BattleMsg(Index, GetPlayerName(z) & " blocked your hit!", BrightCyan, 0)
Call BattleMsg(z, "You blocked " & GetPlayerName(Index) & "'s hit!", BrightCyan, 1)
'Call PlayerMsg(index, GetPlayerName(z) & "'s " & Trim$(Item(GetPlayerInvItemNum(z, GetPlayerShieldSlot(z))).Name) & " has blocked your hit!", BrightCyan)
'Call PlayerMsg(z, "Your " & Trim$(Item(GetPlayerInvItemNum(z, GetPlayerShieldSlot(z))).Name) & " has blocked " & GetPlayerName(index) & "'s hit!", BrightCyan)
Call SendDataToMap(GetPlayerMap(Index), "sound" & SEP_CHAR & "Errou" & END_CHAR)
End If
Exit Sub
End If
End If
ElseIf N = TARGET_TYPE_NPC Then
' Can we attack the npc?
If CanAttackNpcWithArrow(Index, z) Then
' Get the damage we can do
If Not CanPlayerCriticalHit(Index) Then
Damage = GetPlayerDamage(Index) - Int(Npc(MapNpc(GetPlayerMap(Index), z).num).DEF / 2) + (Rnd * 5) - 2
Call SendDataToMap(GetPlayerMap(Index), "sound" & SEP_CHAR & "Ataque" & Int(Rnd * 2) + 1 & END_CHAR)
Else
N = GetPlayerDamage(Index)
Damage = N + Int(Rnd * Int(N / 2)) + 1 - Int(Npc(MapNpc(GetPlayerMap(Index), z).num).DEF / 2) + (Rnd * 5) - 2
Call BattleMsg(Index, "Você sente uma enorme quantidade de energia em seu corpo!", BrightCyan, 0)
'Call PlayerMsg(index, "You feel a surge of energy upon swinging!", BrightCyan)
Call SendDataToMap(GetPlayerMap(Index), "sound" & SEP_CHAR & "Ataque3" & END_CHAR)
End If
If Damage > 0 Then
Call AttackNpc(Index, z, Damage)
Call SendDataTo(Index, "BLITPLAYERDMG" & SEP_CHAR & Damage & SEP_CHAR & z & END_CHAR)
Else
Call BattleMsg(Index, "Seu ataque não fez nada.", BrightRed, 0)
Call SendDataToMap(GetPlayerMap(Index), "sound" & SEP_CHAR & "Errou" & END_CHAR)
End If
Exit Sub
End If
End If
Exit Sub
End Select
Call HackingAttempt(Index, "Invalid packet. (" & Parse(0) & ")")
End Sub
Re: [AJUDA] Procedure too large ( Processo muito grande )
Em vez de processar o packet no handledata, manda para um outro sub.
Vicardosof- Membro
- Mensagens : 200
Re: [AJUDA] Procedure too large ( Processo muito grande )
Um exemplo:
Em vez de:
coloca:
e adiciona esse sub
Entendeu?
Em vez de:
- Código:
Case "updatetradeinv"
N = Val(Parse(1))
Player(Index).Trading(N).InvNum = Val(Parse(2))
Player(Index).Trading(N).InvName = Trim$(Parse(3))
If Player(Index).Trading(N).InvNum = 0 Then
Player(Index).TradeItemMax = Player(Index).TradeItemMax - 1
Player(Index).TradeOk = 0
Player(N).TradeOk = 0
Call SendDataTo(Index, "trading" & SEP_CHAR & 0 & END_CHAR)
Call SendDataTo(N, "trading" & SEP_CHAR & 0 & END_CHAR)
Else
Player(Index).TradeItemMax = Player(Index).TradeItemMax + 1
End If
coloca:
- Código:
Case "updatetradeinv"
Call Packet_UpdateInv(index, parse)
exit sub
e adiciona esse sub
- Código:
sub Packet_UpdateInv(byval Index as long, byref Parse() as string)
dim N as long
N = Val(Parse(1))
Player(Index).Trading(N).InvNum = Val(Parse(2))
Player(Index).Trading(N).InvName = Trim$(Parse(3))
If Player(Index).Trading(N).InvNum = 0 Then
Player(Index).TradeItemMax = Player(Index).TradeItemMax - 1
Player(Index).TradeOk = 0
Player(N).TradeOk = 0
Call SendDataTo(Index, "trading" & SEP_CHAR & 0 & END_CHAR)
Call SendDataTo(N, "trading" & SEP_CHAR & 0 & END_CHAR)
Else
Player(Index).TradeItemMax = Player(Index).TradeItemMax + 1
End If
End Sub
Entendeu?
Última edição por Vicardosof em Sáb 29 Jan 2011, 10:39, editado 2 vez(es)
Vicardosof- Membro
- Mensagens : 200
Re: [AJUDA] Procedure too large ( Processo muito grande )
Entendi mais deu erro ._. HELP
http://files.sherov.webnode.com.br/200000028-10de811d86/ERRO%20AFFF.png
http://files.sherov.webnode.com.br/200000028-10de811d86/ERRO%20AFFF.png
Última edição por gtalux em Sex 28 Jan 2011, 18:54, editado 1 vez(es)
Re: [AJUDA] Procedure too large ( Processo muito grande )
Tem milhões de erros aí! Não tem end select, end sub...
Vicardosof- Membro
- Mensagens : 200
Re: [AJUDA] Procedure too large ( Processo muito grande )
Po meu aqui é pra ajudar olha seus créditos pro meu
nèh quando terminar de me ajuda eu te dou Crédito
por cada Post '-'
nèh quando terminar de me ajuda eu te dou Crédito
por cada Post '-'
Vicardosof- Membro
- Mensagens : 200
Re: [AJUDA] Procedure too large ( Processo muito grande )
tem que fazer as declarações nesta nova sub também!
pois ela usava as variaveis da handle data..
pois ela usava as variaveis da handle data..
maykel- Membro
- Mensagens : 133
Re: [AJUDA] Procedure too large ( Processo muito grande )
Por que "Parse" ? não deveria ter o número da array do parse(1) ??
E se você que fazer um Troço grande, divida, casa packet para cada transformação...
E se você que fazer um Troço grande, divida, casa packet para cada transformação...
Re: [AJUDA] Procedure too large ( Processo muito grande )
Não observaste direito.
No Sub eu declarei Byref Parse() as string
Isso significa que eu quero um array completo de variávels ali. Então no handledata posso colocar somente parse, que vai enviar tudo para o sub. E no sub posso colocar Parse(1). Isso é muito útil
No Sub eu declarei Byref Parse() as string
Isso significa que eu quero um array completo de variávels ali. Então no handledata posso colocar somente parse, que vai enviar tudo para o sub. E no sub posso colocar Parse(1). Isso é muito útil
Vicardosof- Membro
- Mensagens : 200
Re: [AJUDA] Procedure too large ( Processo muito grande )
Realmente, é muito util, não sabia disto!
+ 1
+ 1
maykel- Membro
- Mensagens : 133
Re: [AJUDA] Procedure too large ( Processo muito grande )
Simples é porque a handledata fica no servidor " eu acho não me lembro " Servidor é myindex , não ? acho que é isso .
SkyZero- Membro Veterano
- Mensagens : 890
Vicardosof- Membro
- Mensagens : 200
Re: [AJUDA] Procedure too large ( Processo muito grande )
Ei manows da paket agora quando eu aperto na minha trans ssj4 '-' . invalid Paket (TSSJ4)), ajudem ai ._______.
Tópicos semelhantes
» Procedure too large
» Porque está muito grande?
» quero muito ajuda
» Por favor preciso muito da ajuda de vocês.
» Pedido [ Muito bom e presiso dele muito rapido " ]
» Porque está muito grande?
» quero muito ajuda
» Por favor preciso muito da ajuda de vocês.
» Pedido [ Muito bom e presiso dele muito rapido " ]
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
Dom 08 Abr 2018, 18:40 por JorgeZinhoo002
» Ojkjeeeee
Seg 10 Out 2016, 23:19 por Frozen
» Naruto Great Ninja Batle
Dom 09 Out 2016, 14:29 por GuiinhoLP
» Recrutamento de um Designer para jogo de CDZ.
Sex 23 Set 2016, 18:37 por newbie123
» Serviços de suporte maker( Programação , Design , PixelArt ) E Vendas de Jogos
Qui 22 Set 2016, 20:11 por Eduardo
» Serviços de suporte maker( Programação , Design , PixelArt ) E Vendas de Jogos
Qui 22 Set 2016, 20:11 por Eduardo
» Serviços de suporte maker( Programação , Design , PixelArt ) E Vendas de Jogos
Qui 22 Set 2016, 20:09 por Eduardo
» Projeto Dbz
Qua 31 Ago 2016, 23:46 por 157
» Avaliação - Sprites Naruto
Qua 31 Ago 2016, 17:09 por 157
» [Sprites] DBZ (Plix)
Qua 31 Ago 2016, 14:13 por 157
» Super Pack - Bleach V.2
Qua 31 Ago 2016, 13:02 por 157
» [PEDIDO][PROJETO][RECRUTAMENTO] DYNISTYGAMES
Ter 30 Ago 2016, 10:04 por 157
» [PEDIDO][PROJETO][RECRUTAMENTO] DYNISTYGAMES
Ter 30 Ago 2016, 10:03 por 157
» [PEDIDO][PROJETO][RECRUTAMENTO] DYNISTYGAMES
Ter 30 Ago 2016, 10:02 por 157
» [Pedido] Contador de resets na FrmMain
Sáb 13 Ago 2016, 17:45 por killers97
» [Recrutamento]
Qua 10 Ago 2016, 23:09 por Monsters
» Ajuda erro no Cliente e Servidor do EEB 2.6!
Qua 20 Jul 2016, 19:53 por Binholx
» Como criar tilesets para Eclipse Origins 3.0 (POKÉMON)
Qua 29 Jun 2016, 19:46 por Sir Aaron
» Recursos Pokemons
Qua 29 Jun 2016, 19:34 por Sir Aaron
» erro frm flash
Qua 25 maio 2016, 13:51 por vava123
» Pedido - Pack de star wars
Qui 19 maio 2016, 05:06 por edsonpet
» [Ajuda] Sobre como por o servidor on por ip fixo
Ter 17 maio 2016, 16:14 por vava123
» Illusion Dimension - O Misterio do ID: BETA TESTE ONLINE
Sex 06 maio 2016, 20:02 por LksFlorencio
» [NSME] Naruto Shinobi Maker Engine
Qua 23 Mar 2016, 15:11 por luana1457
» Script /base,/casa Igual DBZ Forces
Dom 21 Fev 2016, 07:34 por JorgeZinhoo002
» [Pedido]Colar Tsunade item sprite eclipse origin
Qui 21 Jan 2016, 07:38 por lawllietbr
» [Pedido] Elysium
Sáb 19 Dez 2015, 11:31 por luana1457
» Naruto - Recruta
Ter 15 Dez 2015, 18:40 por Uchiha ~
» [Avaliação] - Kirito from Sword Art Online; Red and Pikachu from Pokemon.
Qua 25 Nov 2015, 13:43 por Thanakii
» [Avaliação] - Kenpachi Zaraki from Bleach; Libra Shiryu From Saint Seiya.
Qua 25 Nov 2015, 12:55 por Thanakii
» Demonstração de Sprites (Á VENDA!)
Qua 25 Nov 2015, 12:40 por Thanakii
» [Sistema de Reset]Para Eclipse .
Ter 24 Nov 2015, 16:51 por VithorUchi
» Cada Guild Nascer em Certo Mapa
Qui 12 Nov 2015, 06:13 por fabiofeijó_HIT
» Dragon Ball z Fusion A Grande Volta
Qui 29 Out 2015, 15:17 por fabiofeijó_HIT
» Ajuda com Ip fixo
Seg 26 Out 2015, 16:07 por GalaxyHells15
» Como Fazer um GUI no Eclipse Origins
Dom 18 Out 2015, 22:10 por Jeanleee
» Shisui Susanoo
Dom 18 Out 2015, 20:23 por Jeanleee
» Fantasy Art Online
Dom 18 Out 2015, 16:41 por daviih123
» Ajuda !!
Seg 05 Out 2015, 12:13 por andersonzika
» como passar o usuário e senha para o MainMenu?
Seg 28 Set 2015, 22:03 por Bëzerk
» Ru time ero 13 Type mismatch
Seg 28 Set 2015, 09:08 por andredarle
» Jarvis 1.3 Download
Qua 23 Set 2015, 18:42 por soares125
» [Avaliação/Disponibilização]Árvore 64x64
Qua 23 Set 2015, 15:15 por Over~
» Mlk's Zikas Signatures
Ter 22 Set 2015, 21:15 por Aikawa Reborn'
» Pedido de Sistemas
Dom 20 Set 2015, 18:05 por cleyton_05
» [AjudaEEB]Gerador de EXP
Qua 16 Set 2015, 14:04 por Over~
» [Avaliar] Base, Humano e Goblin.
Seg 14 Set 2015, 22:51 por .iBlaz3.
» Fabrica do Tio Cronos!
Dom 13 Set 2015, 21:31 por [ADM]Cronos
» [PixelArt] Minion - Meu malvado favorito
Dom 13 Set 2015, 12:51 por [ADM]Cronos
» [Avaliar] Goku Dragon Ball Z
Qua 05 Ago 2015, 21:36 por Setrux