Skripta koju koristim:moja
Detaljan opis problema:ovako kako da napravim da se otvaraju vrata na move kad pridjes kod vrata ona se otvore sama
//OTVORENA
CreateObject(19466, 1444.64270, -1327.07825, 13.53540, 0.00000, 0.00000, 0.00000);
//ZATVORENA
CreateObject(19466, 1444.64270, -1329.32227, 13.53540, 0.00000, 0.00000, 0.00000);
Dio skripte:dacu sve sto treba
Neke slike/video za lakse dobivanje pomoci(neobavezno):
ovako sam ja uradio
new opstinavrata2;
new bool:otvorenaopstinavrata;
forward Proveriopstinavrata();
public Proveriopstinavrata()
{
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerInRangeOfPoint(i, 4.0, 1444.3894,-1328.9033,13)) //Udaljenost za aktiviranje
{
if(otvorenaopstinavrata == false)
{
MoveObject(opstinavrata2,1444.64270, -1329.32227, 13.53540, 0.00000, 0.00000, 0.00000);
otvorenaopstinavrata = true;
}
return;
}
}
if(otvorenaopstinavrata == true)
{
MoveObject(opstinavrata2,1444.64270, -1327.07825, 13.53540, 0.00000, 0.00000, 0.00000);
otvorenaopstinavrata = false;
}
}
SetTimer("Proveriopstinavrata", 800, true);//Tajmer za zatvaranje
opstinavrata2 = CreateObject(19466, 1444.64270, -1329.32227, 13.53540, 0.00000, 0.00000, 0.00000);
Tako sam ja uradio ali kad pridjem tim vratima padne server
padne mi server zbog ovih kordinata
if(IsPlayerInRangeOfPoint(i, 4.0, 1444.3894,-1328.9033,13)) //Udalj
moze pomoc HITNO
probaj ovako: [pawn]forward Proveriopstinavrata();
public Proveriopstinavrata()
{
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerInRangeOfPoint(i, 4.0, 1444.3894,-1328.9033,13)) //Udaljenost za aktiviranje
{
if(otvorenaopstinavrata == false)
{
MoveObject(opstinavrata2,1444.64270, -1329.32227, 13.53540, 0.00000, 0.00000, 0.00000);
otvorenaopstinavrata = true;
}
return 1;
}
}
if(otvorenaopstinavrata == true)
{
MoveObject(opstinavrata2,1444.64270, -1327.07825, 13.53540, 0.00000, 0.00000, 0.00000);
otvorenaopstinavrata = false;
}
}[/pawn]
Pridjem tim vratima samo padne server
evo kordinate te pozicije gde trebas se priblizit da se otvore vrata
AddPlayerClass(293,1444.9928,-1328.8994,13.5380,85.3710,0,0,0,0,0,0);
[14:05:59] [debug] Server crashed while executing ICRP.amx
[14:05:59] [debug] AMX backtrace:
[14:05:59] [debug] #0 native MoveObject () [0047cd10] from samp-server.exe
[14:05:59] [debug] #1 00087898 in public Proveriopstinavrata () at C:\Users\Balkan\Downloads\Roleplay\BS RP\BS\Server\gamemodes\DERP.pwn:7732
[14:05:59] [debug] Native backtrace:
[14:05:59] [debug] #0 0047cf99 in ?? () from samp-server.exe
[14:05:59] [debug] #1 6a8d3a46 in ?? () from plugins\crashdetect.DLL
[14:05:59] [debug] #2 6a8d50fa in ?? () from plugins\crashdetect.DLL
[14:05:59] [debug] #3 6a8cc7f3 in ?? () from plugins\crashdetect.DLL
[14:05:59] [debug] #4 6a8d3a96 in ?? () from plugins\crashdetect.DLL
[14:05:59] [debug] #5 00481638 in ?? () from samp-server.exe
[14:05:59] [debug] #6 0048ea0a in ?? () from samp-server.exe
(7531) : warning 209: function "Proveriopstinavrata" should return a value
i ovo mi baca
na ovu liniju
}
[pawn]new gate;
new bool:gateopen;
public OnFilterScriptInit()
{
SetTimer("GateCheck", 800, true);
gate = CreateObject(16442, 8.0, 3.0, 10.0, 0.0, 0.0, 0.0);
return 1;
}
forward GateCheck();
public GateCheck()
{
return 1;
}
forward GateCheck();
public GateCheck()
{
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerInRangeOfPoint(i, 15.0, 8.0, 3.0, 10.0)) provjerava dali je igrac u blizini vrata
{
if(gateopen == false) ako vrata nisu otvorena
{
MoveObject(gate, 32.0, 12.0, 10.0, 3.5); otvara ih
gateopen = true; i stavlja varijablu na true
}
return;
}
}
if(gateopen == true) ako su vrata otvorena
{
MoveObject(gate, 8.0, 3.0, 10.0, 3.5); zatvara ih
gateopen = false; stavlja varijablu u negativ
}
}
[/pawn]
Ovo je samo primjer, ti to moraš na svoj nacin napraviti.
pa tako sam i ja uradio
ali kad stavim if(IsPlayerInRangeOfPoint(i, 4.0, 1444.3894,-1328.9033,13)) //udaljenost za aktiviranje
na te kordinate 1444.3894,-1328.9033,13
pridjem tim vratima samo mi crashuje server
[14:05:59] [debug] Server crashed while executing DERP.amx
[14:05:59] [debug] AMX backtrace:
[14:05:59] [debug] #0 native MoveObject () [0047cd10] from samp-server.exe
[14:05:59] [debug] #1 00087898 in public Proveriopstinavrata () at C:\Users\Balkan\Downloads\Roleplay\BS RP\BS\Server\gamemodes\DERP.pwn:7732
[14:05:59] [debug] Native backtrace:
[14:05:59] [debug] #0 0047cf99 in ?? () from samp-server.exe
[14:05:59] [debug] #1 6a8d3a46 in ?? () from plugins\crashdetect.DLL
[14:05:59] [debug] #2 6a8d50fa in ?? () from plugins\crashdetect.DLL
[14:05:59] [debug] #3 6a8cc7f3 in ?? () from plugins\crashdetect.DLL
[14:05:59] [debug] #4 6a8d3a96 in ?? () from plugins\crashdetect.DLL
[14:05:59] [debug] #5 00481638 in ?? () from samp-server.exe
[14:05:59] [debug] #6 0048ea0a in ?? () from samp-server.exe
[pawn]if(IsPlayerInRangeOfPoint(i, 15.0, 1444.3894,-1328.9033,13.0))[/pawn] probaj tako
isto padne server
i isto izbacuje u server log sto i pre
return 1; A ne return;
evo ovako sam ja sve uradio
na pocetak
new opstinavrata1;
new bool:otvorenaopstinavrata;
public
forward Proveriopstinavrata();
public Proveriopstinavrata()
{
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerInRangeOfPoint(i, 15.0, 1444.3894,-1328.9033,13.0)) //Udaljenost za aktiviranje
{
if(otvorenaopstinavrata == false)
{
MoveObject(opstinavrata1,1444.64270, -1329.32227, 13.53540, 0.00000, 0.00000, 0.00000);
otvorenaopstinavrata = true;
}
return 1;
}
}
if(otvorenaopstinavrata == true)
{
MoveObject(opstinavrata1,1444.64270, -1327.07825, 13.53540, 0.00000, 0.00000, 0.00000);
otvorenaopstinavrata = false;
}
}
ovo dodao kd mape
SetTimer("Proveriopstinavrata", 800, true);//Tajmer za zatvaranje
opstinavrata1 = CreateObject(19466, 1444.64270, -1329.32227, 13.53540, 0, 0, 0);//zatvorena
Maper mi je poslao ove kordinate da ubacim gore u public
//OTVORENA
CreateObject(19466, 1444.64270, -1327.07825, 13.53540, 0.00000, 0.00000, 0.00000);
//ZATVORENA
CreateObject(19466, 1444.64270, -1329.32227, 13.53540, 0.00000, 0.00000, 0.00000);
ovo su kordinate gde treba doc da se pokrenu vrata
AddPlayerClass(293,1444.9928,-1328.8994,13.5380,85.3710,0,0,0,0,0,0);
[pawn]//ZATVORENA
opstinavrata1 = CreateObject(19466, 1444.64270, -1329.32227, 13.53540, 0.00000, 0.00000, 0.00000); [/pawn]?
stavio tako isto opstinavrata1
i opet isto padaserver kad se priblizim
baca mi warrning ovaj na
7527) : warning 209: function "Proveriopstinavrata" should return a value
} ova linija zadnja u publicu
[pawn]forward Proveriopstinavrata();
public Proveriopstinavrata()
{
foreach(Player, i)
{
if(IsPlayerInRangeOfPoint(i, 15.0, 1444.3894,-1328.9033,13.0)) //Udaljenost za aktiviranje
{
if(otvorenaopstinavrata == false)
{
MoveObject(opstinavrata1,1444.64270, -1329.32227, 13.53540, 0.00000, 0.00000, 0.00000);
otvorenaopstinavrata = true;
}
if(otvorenaopstinavrata == true)
{
MoveObject(opstinavrata1,1444.64270, -1327.07825, 13.53540, 0.00000, 0.00000, 0.00000);
otvorenaopstinavrata = false;
}
}
return 1;
}[/pawn]
opet pada server cim se priblizim
LOCKAJ SREDIO SAM