Page 1 of 1

Cum sa faci respawn in DM

Posted: Mon Oct 24, 2011 6:02 am
by RoberTo
[center]Cum sa faci respawn in DM
Tutorial creat de [SRC]stuntman (eu)[/center]



[font=times new roman]Am creat acest tutorial pentru ca am vazut ca multi fac un respawn in DM cu mai multe variabile, o variabila = un DM, l-am creat si pentru cei care nu stiu cum sa faca un respawn in DM.[/font]
[hr]

Sa incepem:

1. [font=times new roman]Ca sa creezi variabila care va retine comanda DM-ului in care esti, vom pune in varful scriptului:[/font]

Code: Select all

new SpawnInDM[ MAX_PLAYERS ][ 20 ];
MAX_PLAYERS - [font=times new roman]aceasta se va inlocui in functii cu 'playerid' .[/font]
20 - [font=times new roman]numarul maxim de caractere care-l poate avea o comanda de DM, daca aveti un DM cu o comanda mai lunga de 30 de caractere, puteti mari '20' .[/font]

2. [font=times new roman]Ca sa setezi comanda DM-ului in care se va respawna, puneti la un teleport de DM asta:[/font]

Code: Select all

SpawnInDM[ playerid ] = "/comanda_dm";
playerid - [font=times new roman]acesta este ID-ul jucatorului caruia ii va seta respawnarea.[/font]
"/comanda_dm" - [font=times new roman]inlocuiti cu comanda DM-ului, de exemplu: "/minigun" .[/font]

3. [font=times new roman]Ca sa adaugati respawnul ( ceea ce te respawneaza la spawn ), adaugati acestea la OnPlayerSpawn ( explicatiile sunt trecute la sfarsitul linie cu // ):[/font]

Code: Select all

if( strlen( SpawnInDM[ playerid ] ) < 2 ) //daca marimea la SpawnInDM[ playerid ] este mai mica de 2, nu-l respawnam in DM.
{
    //scrieti aici SetPlayerPos, SetPlayerVirtualWorld, SetPlayerFacingAngle, etc., tot ce are legatura cu pozitia care era inainte la spawn.
    //exemplu:
    SetPlayerPos( playerid, 0.0, 0.0, 10.0 ); //seteaza pozitia jucatorului cand nu va fi respawnat in DM
    SetPlayerFacingAngle( playerid, 133.33 );
    SetPlayerVirtualWorld( playerid, 0 );
}
else if( strlen( SpawnInDM[ playerid ] ) >= 2 ) //daca marimea la SpawnInDM[ playerid ] este mai mare sau egala cu 2, il respawnam in DM, pentru ca sigur a fost setata variabila pentru respawn in DM
{
    CallRemoteFunction( "OnPlayerCommandText", "is", playerid, SpawnInDM[ playerid ] ); //il vom pune pe jucator sa "scrie" comanda DM-ului ( care este retinua in SpawnInDM[ playerid ] ) pentru a se respawna in DM.
}
4. [font=times new roman]Ca sa punem ca la /exitdm si /kill ( de exemplu ) sa iasa din DM, adaugam asta in comenzile /exitdm si /kill:[/font]

Code: Select all

SpawnInDM[ playerid ] = " "; //nu modificati, va avea marimea 1, deci nu te va respawna in DM
5. [font=times new roman]Ca sa nu avem buguri cand se spawneaza un jucator nou conectat, pune la OnPlayerConnect asta:[/font]

Code: Select all

SpawnInDM[ playerid ] = " "; //daca un jucator cu acelasi ID de dinainte iesise de pe server cand era intr-un DM, pe noul jucator conectat cu acelasi ID l-ar fi respawnat in acel DM
[font=times new roman]PS: Daca am facut vreo greseala, spune-ti greseala intr-un post, iar eu o voi corecta.[/font]