Participe do fórum, é rápido e fácil

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
ραwη єvøłuŧiøη - єsŧαмøs dє Vøłŧα є Rєcruŧαηdø ŧαмbєм - Iηscrєvα-sє Já є єηŧrє ραrα ηøssα єquiρє!

    [TUTORIAL] Criando um gang war simples

    avatar
    Convidad
    Convidado


    [TUTORIAL] Criando um gang war simples Empty [TUTORIAL] Criando um gang war simples

    Mensagem por Convidad 8/29/2012, 19:33

    E ai pessoal beleza? Nesse tutorial vou explicar como fazer um gang war bem simples, ou seja, não vai ter gang zones, nem sistema de salvar score e dinheiro, nem minigames, nem nada de muit avançado, só para todos terem uma base.

    1.:: Criando gangs ::.

    No topo do seu gamemode você precisa definir a gang e o id dela:

    [code]#define GROVE 1 // o id da gang GROVE vai ser 1
    #define BALLAS 2[/code]

    Ainda no topo do gamemode você precisa criar uma array para armazenar a gang no seu gamemode:

    [code]new Gang[MAX_PLAYERS];[/code]

    No OnGameModeInit você precisa colocar todos os AddPlayerClass, vamos por como exemplo a skin da grove em primeiro:

    AddPlayerClass(107,2478.2656,-1633.4364,13.4048,183.2906,24,120,25,150,28,999); //grove

    Agora no OnPlayerRequestClass você precisa fazer com que a skin da grove seja da grove:

    [code]if(classid == 0) // como a primeira skin é da grove vamos colocar o numero zero aqui que significa que se você escolher a primeira skin você irá ser da gang da grove
    {
    Gang[playerid] = GROVE; //seta a gang, por isso criamos aquela array você pode usar o numero dela também que é 1
    GameTextForPlayer(playerid,"grove",6000,6); // aparece o nome da gang quando você estiver na skin da grove
    }
    else if(classid == 1) //segunda skin dos AddPlayerClass
    {
    Gang[playerid] = BALLAS; //seta a gang ballas
    GameTextForPlayer(playerid,"ballas",6000,6); nome da gang na tela
    }
    return 1;
    }[/code]

    Agora no OnPlayerRequestSpawn você precisa fazer com que cada gang tenha uma cor própria:

    [code]if(Gang[playerid] == GROVE)// se o time for grove a cor será verde
    {
    SetPlayerColor(playerid, 0x33AA33AA);//seta a cor verde em hexadecimal
    }
    else if(Gang[playerid] == BALLAS)//se o time for ballas a cor será roxo
    {
    SetPlayerColor(playerid, 0x9900FFAA);//seta a cor roxo em hexadecimal
    }[/code]

    Pronto já está criada suas gangs!

    2.:: Criando comando de mostrar status(kills,mortes,teamkills) do player::.

    No topo do seu gamemode crie uma array para armazenar os assassinatos que o player fez:

    [code]new Kills[MAX_PLAYERS];[/code]

    Agora para mortes:

    [code]new Mortes[MAX_PLAYERS];[/code]

    Agora para Team Kills:

    [code]new TK[MAX_PLAYERS];[/code]

    Agora vamos fazer o comando. No OnPlayerCommandText crie o comando que vai mostrar os status do player:

    [code]if (strcmp("/status", cmdtext, true, 10) == 0) // quando alguem digitar /status vai aparecer todos os status no chat
    {
    new stringkills[256]; //string para armazenar a mensagem de kills
    new stringmortes[256]; //string para armazenar a mensagem de mortes
    new stringtk[256]; //string para armazenar a mensagem de team kills
    SendClientMessage(playerid,COR_VERDE,"Seus status:");
    format(stringkills,sizeof(stringkills),"Kills: %d", Kills[playerid]); //no %d vai aparecer o numero de kills que você fez
    SendClientMessage(playerid,0xFF9933AA, stringkills); // faz com que mostre no chat a mensagem que foi armazenada na string
    format(stringmortes,sizeof(stringmortes),"Mortes: %d", Mortes[playerid]); // o mesmo que a mensagem anterior
    SendClientMessage(playerid, 0xFF9933AA, stringmortes);// o mesmo que a mensagem anterior
    format(stringtk,sizeof(stringtk),"Team Kills: %d", TK[playerid]);// o mesmo que a mensagem anterior
    SendClientMessage(playerid, 0xFF9933AA, stringtk);// o mesmo que a mensagem anterior
    return 1;
    }[/code]

    *OBS: Para aumentar o numero de kills, mortes e Team Kills, leia o 3º passo que estará explicando.

    3.:: Criando sistema de Anti Team Kill::.

    Como em todo gang war sempre tem o palhaço que mata alguem da própria gang. Agora veremos como fazer um sistema de Anti Team Kill que quando o jogador matar alguem da própria gang ele vai ser teleportado para prisão e ficará lá até ser morto por causa de tanta porrada que vai levar dos outros presos.

    Agora no OnPlayerDeath precisamos criar o sistema:

    [code]Mortes[playerid]++; //se o player morrer os status de mortes dele aumenta +1
    if(killerid == INVALID_PLAYER_ID) {
    SendDeathMessage(INVALID_PLAYER_ID,playerid,reason); // aparece quem matou, com o que e quem morreu
    }
    else if(Gang[playerid] == Gang[playerid]) // verifica se quem morreu é da mesma gang, se for ele será preso
    {
    SendClientMessage(killerid, 0xFF0000AA, "Não mate pessoas da mesma time que você! Você vai ficar preso até morrer"); // mesagem que vai ser enviada para o assassino
    SetPlayerPos(killerid, 263.7945,77.4532,1001.0391); //isso teleportará o assassino até uma cela fexada na prisão
    SetPlayerScore(killerid,GetPlayerScore(killerid) -1); // o score dele diminue -1
    GivePlayerMoney(killerid, -500); // ele perde -500 de dinheiro
    TK[killerid]++; //os status de team kill do assassino aumenta +1
    Mortes[playerid]++;//aumenta os status de mortes do player que morreu em +1
    }
    else if(Gang[playerid] != Gang[playerid]) // caso o player tenha matado outro player que NÃO seja da mesma gang que ele, ele ganhará +1 de score e $500
    {
    SetPlayerScore(killerid,GetPlayerScore(killerid) +1); // aumenta o score do assassino em +1
    GivePlayerMoney(killerid, 500);//aumenta o dinheiro do assassimo em $500
    Kills[killerid]++;// aumenta os status de assassinatos do assassino em +1
    Mortes[playerid]++;//aumenta os status de mortes do player que morreu em +1
    }[/code]

    E está pronto nosso gang war simples! Espero que tenha ajudado muita gente.

    LEMBRANDO: Esse tutorial explica como fazer um gang war simples, é apenas para dar uma base de como fazer um melhor ainda que esse!

    Feito por: Cr0Nos

      Data/hora atual: 4/27/2024, 18:05