vox-gaming

[FileScript] Porți automate

Vezi subiectul anterior Vezi subiectul urmator In jos

[FileScript] Porți automate

Mesaj Scris de Florin la data de Mar Noi 24, 2015 12:01 am

Bună ziua mai jos aveți un filescript creat de eDzor pentru automatizarea porților printr-o comandă sau la buton.

Poarta automată
Cod:
#include <a_samp>

new armygate[2];//0 = ID-ul obiectului, 1 = variabila pentru verificarea porti (0 = inchisa, 1 = deschisa)

public OnFilterScriptInit()
{
armygate[0] = CreateObject(975, 213.3999, 1874.6995, 13.8000, 0.0000, 0.0000, 0.0000);//Poarta inchisa
armygate[1] = 0;//Setam variabila de verificare 0

SetTimer("AreaCheck", 5000, true);//Setam un timer pentru a verifica la un anumit timp daca un jucator este langa poarta
return 1;
}

public OnFilterScriptExit()
{
DestroyObject(armygate[0]);//Distrugem obiectul
return 1;
}

forward AreaCheck();
public AreaCheck()
{
for(new pID = 0; pID < MAX_PLAYERS; pID ++)//Facem un loop prin toti jucatori (recomand folosirea foreach)
{
if(IsPlayerConnected(pID))//Verificam daca jucatorul este conectat
{
if(IsPlayerInRangeOfPoint(pID, 7.5, 214.0703, 1875.0997, 13.1470))//Verificam daca jucatorul este langa poarta (de preferat sa nu fie la fel ca cele cand poarta este inchisa)
{
if(armygate[1] == 0)//Verificam daca poarta este inchisa
{
MoveObject(armygate[0], 205.6000, 1874.6999, 13.8000, 5.0);//Mutam poarta catre pozitia deschis
armygate[1] = 1;//Setam variabila de verificare 1
}
}
else //Daca nici un jucator nu este langa poarta
{
if(armygate[1] == 1)//Verificam daca poarta este deschisa
{
MoveObject(armygate[0], 213.3999, 1874.6995, 13.8000, 5.0);//Mutam poarta catre pozitia inchis
armygate[1] = 0;//Setam variabila de verificare 0
}
}
}
}
return 1;
}

Poartă semi-automată cu buton
Cod:
#include <a_samp>

new armygate[2];//0 = ID-ul obiectului, 1 = variabila pentru verificarea porti (0 = inchisa, 1 = deschisa)

public OnFilterScriptInit()
{
armygate[0] = CreateObject(975, 213.3999, 1874.6995, 13.8000, 0.0000, 0.0000, 0.0000);//Poarta inchisa
armygate[1] = 0;//Setam variabila de verificare 0
return 1;
}

public OnFilterScriptExit()
{
DestroyObject(armygate[0]);//Distrugem obiectul
return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == KEY_SUBMISSION)
{
if(IsPlayerInRangeOfPoint(playerid, 7.5, 214.0703, 1875.0997, 13.1470))//Verificam daca jucatorul este langa poarta (de preferat sa nu fie la fel ca cele cand poarta este inchisa)
{
if(armygate[1] == 0)//Verificam daca poarta este inchisa
{
MoveObject(armygate[0], 205.6000, 1874.6999, 13.8000, 5.0);//Mutam poarta catre pozitia deschis
armygate[1] = 1;//Setam variabila de verificare 1
SetTimerEx("CloseGate", 5000, false, "d", armygate[0]);//Setam un timer pentru inchiderea porti in 5 secunde
}
}
}
return 1;
}

forward CloseGate(ObjectID);
public CloseGate(ObjectID)
{
if(ObjectID == armygate[0])
{
if(armygate[1] == 1)//Verificam daca poarta este deschisa
{
MoveObject(armygate[0], 213.3999, 1874.6995, 13.8000, 5.0);//Mutam poarta catre pozitia inchis
armygate[1] = 0;//Setam variabila de verificare 0
}
}
return 1;
}


Poarta semi-automată cu comandă


Cod:
#include <a_samp>

new armygate[2];//0 = ID-ul obiectului, 1 = variabila pentru verificarea porti (0 = inchisa, 1 = deschisa)

public OnFilterScriptInit()
{
armygate[0] = CreateObject(975, 213.3999, 1874.6995, 13.8000, 0.0000, 0.0000, 0.0000);//Poarta inchisa
armygate[1] = 0;//Setam variabila de verificare 0
return 1;
}

public OnFilterScriptExit()
{
DestroyObject(armygate[0]);//Distrugem obiectul
return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp("/armygate", cmdtext, true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid, 7.5, 214.0703, 1875.0997, 13.1470))//Verificam daca jucatorul este langa poarta (de preferat sa nu fie la fel ca cele cand poarta este inchisa)
{
if(armygate[1] == 0)//Verificam daca poarta este inchisa
{
MoveObject(armygate[0], 205.6000, 1874.6999, 13.8000, 5.0);//Mutam poarta catre pozitia deschis
armygate[1] = 1;//Setam variabila de verificare 1
}
else if(armygate[1] == 1)//Verificam daca poarta este deschisa
{
MoveObject(armygate[0], 213.3999, 1874.6995, 13.8000, 5.0);//Mutam poarta catre pozitia inchis
armygate[1] = 0;//Setam variabila de verificare 0
}
}
return 1;
}
return 0;
}


Poartă cu comandă

Cod:
#include <a_samp>

new armygate[2];//0 = ID-ul obiectului, 1 = variabila pentru verificarea porti (0 = inchisa, 1 = deschisa)

public OnFilterScriptInit()
{
armygate[0] = CreateObject(975, 213.3999, 1874.6995, 13.8000, 0.0000, 0.0000, 0.0000);//Poarta inchisa
armygate[1] = 0;//Setam variabila de verificare 0
return 1;
}

public OnFilterScriptExit()
{
DestroyObject(armygate[0]);//Distrugem obiectul
return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp("/armygate", cmdtext, true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid, 7.5, 214.0703, 1875.0997, 13.1470))//Verificam daca jucatorul este langa poarta (de preferat sa nu fie la fel ca cele cand poarta este inchisa)
{
if(armygate[1] == 0)//Verificam daca poarta este inchisa
{
MoveObject(armygate[0], 205.6000, 1874.6999, 13.8000, 5.0);//Mutam poarta catre pozitia deschis
armygate[1] = 1;//Setam variabila de verificare 1
SetTimerEx("CloseGate", 5000, false, "d", armygate[0]);//Setam un timer pentru inchiderea porti in 5 secunde
}
}
return 1;
}
return 0;
}

forward CloseGate(ObjectID);
public CloseGate(ObjectID)
{
if(ObjectID == armygate[0])
{
if(armygate[1] == 1)//Verificam daca poarta este deschisa
{
MoveObject(armygate[0], 213.3999, 1874.6995, 13.8000, 5.0);//Mutam poarta catre pozitia inchis
armygate[1] = 0;//Setam variabila de verificare 0
}
}
return 1;
}

Comunitate Vox-Gaming nu își asumă niciun drept și nu suntem responsabili de anumitele probleme care apar în urma folosirii acestor filescripturi.
avatar

Florin
Fondator
Fondator

Mesaje : 42
Data de inscriere : 21/11/2015

http://vox-gaming.forums-rpg.com

Sus In jos

Vezi subiectul anterior Vezi subiectul urmator Sus


 
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum