2014-03-07 14 views
-4

这可能吗?我现在正在做一个bukkit插件(在Python中,是的:D),并且我被迫在一个函数中完成这个工作,所以我不能将它分开并稍后调用它。例如,如果我有循环通过服务器上的玩家循环并添加除一个玩家以外的所有玩家,我希望它完成,然后传送即“Player1”给随机玩家。目前,由于for循环,每次都会向随机播放器传送“Player1”...因为很多事情没有涉及到问题,所以我只给你一点代码,因为它在预览中看起来很乱。混淆你......这就是:for循环完成后,做相同的功能?

listica = [] 
for p1 in org.bukkit.Bukkit.getWorld(nextvalue).getPlayers(): 
    if p1.getName() not in listica: 
     try: 
     listica.remove(event.getPlayer().getName()) 
     randomtarget = choice(listica) 
     randomtargetreal = org.bukkit.Bukkit.getPlayer(randomtarget) 
     event.getPlayer().teleport(randomtargetreal) 
     event.getPlayer().sendMessage("%sYou teleported to: %s%s"% (bukkit.ChatColor.GREEN, bukkit.ChatColor.DARK_GREEN, randomtarget))         
     except ValueError: 
      randomtarget = choice(listica) 
      randomtargetreal = org.bukkit.Bukkit.getPlayer(randomtarget) 
      if event.getPlayer().getLocation() != randomtargetreal.getLocation(): 
      event.getPlayer().teleport(randomtargetreal) 
      event.getPlayer().sendMessage("%sYou teleported to: %s%s"%(bukkit.ChatColor.GREEN, bukkit.ChatColor.DARK_GREEN, randomtarget)) 

我要的是:

run for loop: 
when there is no more players to add a.k.a it finishes 
do try loop 

PS我不能在单独的功能中完成它。

在此先感谢! :)

回答

1

你的意思是:

def func(args): 
     for item in loop: 
      do something 
     try: # note indentation 
      something else 
+0

哇,我认为它会吐出一些缩进错误:o它看起来像我错过了文档的东西,回归本源! :D非常感谢! :) –