Advertisement
garfield

[GM] Pequeno Gamemode Explicando todas as funçõs nativas,

Apr 28th, 2012
483
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.50 KB | None | 0 0
  1. /*
  2.         Pequeno tutorial de como criar um GameMode TDM
  3.         facilmente, otimizado e com funções nativas.
  4.        
  5.         Explicação por min(Garfield/SuYaNw).
  6.        
  7.         ATENÇÃO,
  8.         - Não edite o gamemode, apenas leia com atenção
  9.         e tente fazer o seu próprio, e caso tenha dúvidas,
  10.         antes de chegar criando tópico, vá na Wiki.sa-mp,com.
  11.        
  12.         Cordialmente,
  13.         G.SuYaNw Dácio.
  14. */
  15.  
  16. #include a_samp
  17.  
  18.  
  19. // Bom, caso queira colocar mais "Times", coloque "TEAM_NOME_TIME".
  20.  
  21. #define TEAM_HUMANS                 (10)
  22. #define TEAM_ZOMBIES                (15)
  23.  
  24.  
  25. public OnGameModeInit()
  26. {
  27. //  AddPlayerClassEx(teamid, skin, Float:x, Float:y, Float:z, Float:Angle, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo)
  28.     AddPlayerClassEx(TEAM_HUMANS,   100, 2096.2456,1285.5159,78.1742, 0.0, 0,0,0,0,0,0); // Time Humanos - CLASSE 0
  29.     AddPlayerClassEx(TEAM_ZOMBIES,  128, 2096.2456,1285.5159,78.1742, 0.0, 0,0,0,0,0,0); // Time Zombies - CLASSE 1
  30.    
  31.     // Utilizamos AddPlayerClasseEx para quando o membro da mesma equipe
  32.     // Atirar no outro membro da mesma equipe (TeamKill), não perde vida
  33.     // Assim Evitando "Team Kill".
  34.     return true;
  35. }
  36.  
  37.  
  38. public OnPlayerRequestClass(playerid, classid)
  39. {
  40.     switch(classid)
  41.     {
  42.         case 0:
  43.         {
  44.             // Utilizamos também o "CLASSEID", o Classid é a sequência das classes
  45.             // que foram criadas, como no caso acima, a classe "Humanso" foi criada
  46.             // Antesq ue a classe Zombies, então a classe 'Humanos' é 0.
  47.             // e a classe zombie é 1.
  48.            
  49.            
  50.            
  51.             SetPlayerTeam(playerid, TEAM_HUMANS);
  52.             // Agora, na função "SetPlayerTeam" para indicar qual team o jogador
  53.             // pertence, normalmente utilizamos para fazer o Anti- Team Kill.
  54.            
  55.            
  56.             // Agora iremos mandar uma mensagem na tela do player dizendo qual
  57.             // é o "Time" dele:
  58.            
  59.             GameTextForPlayer(playerid, "Humanos", 2500, 3);
  60.            
  61.             // Este texto irá desaparecer em 2 segundos e meio ( 25000 ).
  62.         }
  63.         case 1:
  64.         {
  65.             // --
  66.            
  67.             SetPlayerTeam(playerid, TEAM_ZOMBIES);
  68.             GameTextForPlayer(playerid, "Zombies", 2500, 3);
  69.  
  70.             // --
  71.         }
  72.        
  73.     }
  74.    
  75.    
  76.     // Agora iremos mostrar aonde estará o personagem para o player escolher:
  77.     // A função abaixo, seta o mundo virtual do player, ele é quase infinto,
  78.     // imagine um mundo virtual, sendo um universo pararelo, o cara está connectado
  79.     // ao servidor, mais não está no mesmo "Universo" que os outros players xD.
  80.     // Por padrão, o mundo virtual dos players é "0".
  81.     SetPlayerVirtualWorld(playerid, 0);
  82.    
  83.     // Agora iremos indicar aonde fica a posição do personagem, ou seja, aonde
  84.     // ele fica parao player escolher.
  85.     SetPlayerPos(playerid, 2096.2456,1285.5159,78.1742);
  86.    
  87.     // Bom, na função abaixo, iremos indicar aonde fica a posição da câmera do Player.
  88.     SetPlayerCameraPos(playerid,2097.145,1288.484,80.396);
  89.    
  90.     // Agora iremos indicar a distância da camera com o personagem.
  91.     SetPlayerCameraLookAt(playerid,2096.245,1285.515,78.174);
  92.    
  93.     // E por último, o Angulo.
  94.     SetPlayerFacingAngle(playerid, 0.0);
  95.     return true;
  96. }
  97.  
  98.  
  99.  
  100. public OnPlayerConnect(playerid)
  101. {
  102.     new // A função "new" cria uma variável para alocar valores e/ou string's(textos).
  103.         string[128], // criamos a array que amarzenará temporariamente uma mensagem.
  104.         Nome[24] // e esta array amarzenará o nome do player. Nota-se que sempre a última array/variável não tem vírgula.
  105.     ;
  106.    
  107.    
  108.     // Agora, com a função "GetPlayerName", Pegamos o nome do player e
  109.     // 'Colocamos' na array "Nome".
  110.     GetPlayerName(playerid, Nome, 24);
  111.    
  112.     // Com a função "format", formatamos a mensagem para colocar o nome do player nela.
  113.     format(string, sizeof(string),"%s conectou ao servidor", Nome);
  114.    
  115.     // Mandamos a mensagem formatada para todos do servidor.
  116.     SendClientMessageToAll(-1, string);
  117.    
  118.     /*
  119.         Quando precisamos utilizar algum nome ou valor em uma string,
  120.         necessitamos formata-las,  caso você tentar sem formatar, dará
  121.         erro ou bug, mais caso não precise introduzir valores/arrays adicionais,
  122.         basta você utilizar a função sem criar uma array ou nome.
  123.        
  124.         Vamos a um Exemplo:
  125.        
  126.         Vamos dar "Bem Vindo" somente para o player que entrou.
  127.     */
  128.     SendClientMessage(playerid, -1, "Seja bem vindo ao servidor");
  129.     /*
  130.         Nota-se que no exemplo acima, não precisa criar "string" ou "Nome",
  131.         porque você não irá usar.
  132.     */
  133.     return true;
  134. }
  135.  
  136.  
  137. public OnPlayerSpawn(playerid)
  138. {
  139.     // Vamos dar uma arma para o player, no caso a arma id "34" e com "1000" Balas.
  140.     GivePlayerWeapon(playerid, 34, 1000);
  141.     return true;
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement