[Tutorial] Criando Gangs para TDM
#1

Introduзгo:


Neste tutorial serб explicado sobre como criar gangs, armas especificias, e como impedir que a mesma gang se mate entre sн.

Planejando sua GG
Bom, toda gang tem cor, nome, e skins, certo? Para este tutorial vou escolher verde, Groove, skins 106 e 107.

pawn Код:
#define VERDE_GROOVE 0x00FF00FF // Aqui vamos definir a cor da groove.
VERDE_GROOVE: Aqui daremos um nome pra cor 0x00FF00FF que serб usado mais tarde para facilitar.

Em OnGameModeInit vamos definir as skins (no caso classes) Aprenda sobre AddPlayerClass

pawn Код:
AddPlayerClass(106,1958.3783,1343.1572,15.3746,270.1425,0,0,0,0,-1,-1); // Classid 0
AddPlayerClass(107,1958.3783,1343.1572,15.3746,270.1425,0,0,0,0,-1,-1); // classid 1
Aqui sгo as classes, lembrando que a classid no caso, й a linha onde esta a class, se for a primeira class a aparecer, serб numero 0, a segunda numero 1 e assim por diante.
Recomendo que coloque o valor da classid em comentбrio (//) para nгo se perder

Agora que jб temos as skins, e a cor, vamos defini-la mais a fundo.

Definindo a COR, o SPAWN, e as ARMAS
Lembra daquele VERDE_GROOVE que definimos no comeзo? Agora vamos passar essa cor para o nick do jogador.

Primeiro crie essa variбvel global:

pawn Код:
new pClass[MAX_PLAYERS];
Em OnPlayerSpawn serб onde definiremos a cor do player, onde nascerб e as armas que receberб.

pawn Код:
switch(pClass[playerid])
    {
        case 0: // Classid 0
        {
        SetPlayerPos(playerid,2262.0986,2398.6572,10.8203); // Aqui serб o spawn da HQ groove
        GivePlayerWeapon(playerid,24,300); // Darб 300 balas de Deagle pra quem usar a classid 0
        GivePlayerWeapon(playerid,25,300); // Shotgun
        SendClientMessage(playerid,COLOR_WHITE,"Vocк estб jogando como um {00FF00}Groove!");
        SetPlayerColor(playerid,VERDE_GROOVE);
        }
        case 1: // Classid 1
        {
        SetPlayerPos(playerid,2262.0986,2398.6572,10.8203); // Aqui serб o spawn da HQ groove
        GivePlayerWeapon(playerid,24,300); // Darб 300 balas de Deagle pra quem usar a classid 1
        GivePlayerWeapon(playerid,25,300); // Shotgun
        SendClientMessage(playerid,COLOR_WHITE,"Vocк estб jogando como um {00FF00}Groove!"); // Manda mensagem pro player pra ele ficar ligado que й um groove
        SetPlayerColor(playerid,VERDE_GROOVE);
        }
    }
Case 0: Aqui й a classid, no caso 0;
Case 1: Aqui й a classid, no caso 1.

Agora temos a GG pronta e toda definida

Como faзo pro jogador saber que vai escolher certa gang?
Vamos por um GameText na tela de seleзгo de skin:

Em OnPlayerRequestClass

pawn Код:
if(classid == 0)
    {
        GameTextForPlayer(playerid,"~w~Gang dos ~g~Grooves",5000,3);
    }
if(classid == 1) // Lembra que a classid 1 й um groove?
    {
        GameTextForPlayer(playerid,"~w~Gang dos ~g~Grooves",5000,3);
    }
Se a classid for 0 (sim, й um groove!)
Vamos exibir a GameText pra ele: Gang dos Grooves.

Criando um Anti-Team Kill
Em OnPlayerDeath

pawn Код:
if(GetPlayerColor(playerid) == GetPlayerColor(killerid)) // Se o cor do morto for igual a do assassino
    {
        new Float:x, Float:y, Float:z;
        GetPlayerPos(playerid, x, y, z); // Aqui pegaremos a pos do JOGADOR
        // Aplicaremos a puniзгo
        SetPlayerPos(killerid, x, y, z+200); // ERGUEREMOS ELE PRA QUE ELE CAIA E MORRA
        SetPlayerScore(killerid,GetPlayerScore(killerid) - 1); // tiramos 1 de score
        SendClientMessage(killerid, COLOR_RED, "Vocк foi teleportado pois nгo й permitido matar um jogador do mesmo time.");
        GivePlayerMoney(killerid,-2000); // tiramos 2k dele
        // FIM DA PUNIзВO
        }
Ta tudo explicado em comentбrio.

FIM
Bom, й isso aн galera, qualquer dъvida poste aqui. Qualquer erro, poste aqui.

Nгo testei o codigo do Anti-Team kill, mas creio que deva funcionar
Reply
#2

Anti Team Kill pode-se resumir a SetPlayerTeam ^^
Reply
#3

Belo tuto amigo, continue assim e voce tem futuro!

Falooow!, Abraзsss!!
Reply
#4

Quote:
Originally Posted by feliperch
Посмотреть сообщение
Anti Team Kill pode-se resumir a SetPlayerTeam ^^
ROFL
Reply
#5

Quote:
Originally Posted by feliperch
Посмотреть сообщение
Anti Team Kill pode-se resumir a SetPlayerTeam ^^
Hmm... Entendi, entгo й sу eu setar SetPlayerTeam(playerid,1) por exemplo, que se outro jogador for setado pro mesmo team eles nгo podem se matar?
Reply
#6

pawn Код:
if(classid == 0)
    {
        GameTextForPlayer(playerid,"~w~Gang dos ~g~Grooves",5000,3);
    }
if(classid == 1) // Lembra que a classid 1 й um groove?
    {
        GameTextForPlayer(playerid,"~w~Gang dos ~g~Grooves",5000,3);
    }
Sim. Mais Nгo Seria, Se For Skin 0,1 Aparecerб a Mensagem ?

Olha lб : https://sampforum.blast.hk/showthread.php?tid=260226
Reply
#7

Quote:
Originally Posted by arakuta
Посмотреть сообщение
Hmm... Entendi, entгo й sу eu setar SetPlayerTeam(playerid,1) por exemplo, que se outro jogador for setado pro mesmo team eles nгo podem se matar?
Correto.
Reply
#8

Na verdade eu tirei tudo da wiki, entгo eu tive meio que ralar pra aprender. Se eu tivesse lido seu TUTO jonathan... Por isso que eu falo que tem que atualizar a lista de tutorial.
Reply
#9

Acho que vocк postou algumas coisas em seu tutorial sem saber o significado delas, por exemplo Switch.
sobre a cor, poderia explicar, 0x = definiзгo da cor, os 6 prуximos caracters sгo o cуdigo da cor e os 2 ultimos a transparкncia da mesma.
Estб bem explicado, poderia identar melhor, bom tutorial continue assim, mas tente explicar sobre coisas que ainda nгo tem tutoriais
Reply
#10

aki deu esse erro:

D:\Meus documentos\Downloads\server\Gm DM\Gm DM\BLG.pwn(577) : error 002: only a single statement (or expression) can follow each "case"
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)