-
Sziasztok
csináltam egy derbyt és ojan segítséget szeretnék kérni hogy a derbibol csak /exit-derby -vel lehessen kilépni és a /off-derby vel belépni a derbybe
mejnek a teleport koordinátái a derbynek: 1526.8193,-1027.9990,23.9216
és azt szeretném hogy a /exit-derby vel ebbe a koordinátába rakja ha beírja: -666.6516,1521.9204,86.5108
Remélem érthetoen fogalmaztam :D
elore is köszönöm a segítséget!
-
Változóval egyszeruen meg lehet csinálni.
new bool:PlayerInDerby [ MAX_PLAYERS ];
public OnPlayerConnect ( playerid )
{
PlayerInDerby [ playerid ] = false;
}
public OnPlayerCommandText ( playerid, cmdtext [ ] )
{
if ( strcmp ( cmdtext, \"/off-derby\", true ) == 0 )
{
if ( PlayerInDerby [ playerid ] == true ) return SendClientMessage ( playerid, 0x00000, \" Már a derby zónához teleportáltál!\");
if ( IsPlayerInAnyVehicle ( playerid ) ) return SetVehiclePos ( GetPlayerVehicleID ( playerid ), 1526.8193,-1027.9990,23.9216 );
PlayerInDerby [ playerid ] = true;
return 1;
}
if ( strcmp ( cmdtext, \"/exit-derby\", true ) == 0 )
{
if ( PlayerInDerby [ playerid ] == false ) return SendClientMessage ( playerid, 0x00000, \"Nem vagy a derby zónában!\");
PlayerInDerby [ playerid ] =false;
SendClientMessage ( playerid, 0x00000, \"Ki lépétál a derby zónából!\");
SetPlayerPos ( playerid, -666.6516,1521.9204,86.5108 );
return 1;
}
return 0;
}
És másold be ezt a kódrészletet a parancsok elé, amiket nem használhat ha a derby zónában van.:
if ( PlayerInDerby [ playerid ] == true ) return SendClientMessage ( playerid, 0x00000, \"Nem használhatod a parancsokat, mert a derby zónában vagy! \");
Használd egészséggel. ;)
-
beraktam mindent ahova kell és
D:\\JÁTÉKOK\\GTA San Andreas\\szeró\\pawno\\new.pwn(52) : error 017: undefined symbol \"PlayerInDerby\"
D:\\JÁTÉKOK\\GTA San Andreas\\szeró\\pawno\\new.pwn(52) : warning 215: expression has no effect
D:\\JÁTÉKOK\\GTA San Andreas\\szeró\\pawno\\new.pwn(52) : error 001: expected token: \";\", but found \"]\"
D:\\JÁTÉKOK\\GTA San Andreas\\szeró\\pawno\\new.pwn(52) : error 029: invalid expression, assumed zero
D:\\JÁTÉKOK\\GTA San Andreas\\szeró\\pawno\\new.pwn(52) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
Mi lehet a hiba ja és amelyik parancsot nemhasználhatja azt hova kell beírni?
#include <a_samp>
#if defined FILTERSCRIPT
new bool:PlayerInDerby [ MAX_PLYERS ];
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" X-Zyte derby By:Eric \");
print(\"--------------------------------------\\n\");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print(\"\\n----------------------------------\");
print(\" X-Zyte derby By:Eric \");
print(\"----------------------------------\\n\");
}
#endif
public OnPlayerConnect(playerid)
{
PlayerInDerby [ playerid ] = false;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if ( PlayerInDerby [ playerid ] == true ) return SendClientMessage ( playerid, 0x00000, \"Nem használhatod a parancsokat, mert a derby zónában vagy! \");
if ( strcmp ( cmdtext, \"/off-derby\", true ) == 0 )
{
if ( PlayerInDerby [ playerid ] == true ) return SendClientMessage ( playerid, 0x00000, \" Már a derby zónához teleportáltál!\");
if ( IsPlayerInAnyVehicle ( playerid ) ) return SetVehiclePos ( GetPlayerVehicleID ( playerid ), 1526.8193,-1027.9990,23.9216 );
PlayerInDerby [ playerid ] = true;
return 1;
}
if ( strcmp ( cmdtext, \"/exit-derby\", true ) == 0 )
{
if ( PlayerInDerby [ playerid ] == false ) return SendClientMessage ( playerid, 0x00000, \"Nem vagy a derby zónában!\");
PlayerInDerby [ playerid ] =false;
SendClientMessage ( playerid, 0x00000, \"Ki lépétál a derby zónából!\");
SetPlayerPos ( playerid, -666.6516,1521.9204,86.5108 );
return 1;
}
return 0;
}
így raktam be ígykel?
-
beraktam mindent ahova kell és
D:\\JÁTÉKOK\\GTA San Andreas\\szeró\\pawno\\new.pwn(52) : error 017: undefined symbol \"PlayerInDerby\"
D:\\JÁTÉKOK\\GTA San Andreas\\szeró\\pawno\\new.pwn(52) : warning 215: expression has no effect
D:\\JÁTÉKOK\\GTA San Andreas\\szeró\\pawno\\new.pwn(52) : error 001: expected token: \";\", but found \"]\"
D:\\JÁTÉKOK\\GTA San Andreas\\szeró\\pawno\\new.pwn(52) : error 029: invalid expression, assumed zero
D:\\JÁTÉKOK\\GTA San Andreas\\szeró\\pawno\\new.pwn(52) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
Mi lehet a hiba ja és amelyik parancsot nemhasználhatja azt hova kell beírni?
Nem tudom mi nem értheto rajta...
Vannak pl a teleportok sorba egy más után és azok elé be másolod azt az egy sort.
Tessék, 100% hogy muködik. Am te rontottál el 1-2 dolgot...
#include <a_samp>
new bool:PlayerInDerby [ MAX_PLAYERS ];
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" X-Zyte derby By:Eric \");
print(\"--------------------------------------\\n\");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
PlayerInDerby[ playerid ] = false;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if ( PlayerInDerby[ playerid ] == true ) return SendClientMessage ( playerid, 0x00000, \"Nem használhatod a parancsokat, mert a derby zónában vagy! \");
if ( strcmp ( cmdtext, \"/off-derby\", true ) == 0 )
{
if ( PlayerInDerby[ playerid ] == true ) return SendClientMessage ( playerid, 0x00000, \" Már a derby zónához teleportáltál!\");
if ( IsPlayerInAnyVehicle ( playerid ) ) return SetVehiclePos ( GetPlayerVehicleID ( playerid ), 1526.8193,-1027.9990,23.9216 );
PlayerInDerby[ playerid ] = true;
return 1;
}
if ( strcmp ( cmdtext, \"/exit-derby\", true ) == 0 )
{
if ( PlayerInDerby[ playerid ] == false ) return SendClientMessage ( playerid, 0x00000, \"Nem vagy a derby zónában!\");
PlayerInDerby[ playerid ] =false;
SendClientMessage ( playerid, 0x00000, \"Ki lépétál a derby zónából!\");
SetPlayerPos ( playerid, -666.6516,1521.9204,86.5108 );
return 1;
}
return 0;
}
-
A script tetejére másold be:
new bool:PlayerInDerby[MAX_PLAYERS];
-
Ugy néz ki hogy jó csak kikell próbálnom
de ha ezt beillesztem a teleport felé akkor error
if ( PlayerInDerby [ playerid ] == true ) return SendClientMessage ( playerid, 0x00000, \"Nem használhatod a parancsokat, mert a derby zónában vagy! \");
#include <a_samp>
new bool:pDerby [ MAX_PLAYERS ];
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" X-Zyte derby By:Eric \");
print(\"--------------------------------------\\n\");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
/*public OnPlayerConnect(playerid)
{
pDerby [ playerid ] = false;
return 1;
}*/
public OnPlayerCommandText(playerid, cmdtext[])
{
if ( pDerby [ playerid ] == true ) return SendClientMessage ( playerid, 0x00000, \"Nem használhatod a parancsokat, mert a derby zónában vagy! \");
if ( strcmp ( cmdtext, \"/off-derby\", true ) == 0 )
{
if ( pDerby [ playerid ] == true ) return SendClientMessage ( playerid, 0x00000, \" Már a derby zónához teleportáltál!\");
if ( IsPlayerInAnyVehicle ( playerid ) ) return SetVehiclePos ( GetPlayerVehicleID ( playerid ), 1526.8193,-1027.9990,23.9216 );
pDerby [ playerid ] = true;
return 1;
}
if ( strcmp ( cmdtext, \"/exit-derby\", true ) == 0 )
{
if ( pDerby [ playerid ] == false ) return SendClientMessage ( playerid, 0x00000, \"Nem vagy a derby zónában!\");
pDerby [ playerid ] =false;
SendClientMessage ( playerid, 0x00000, \"Ki lépétál a derby zónából!\");
SetPlayerPos ( playerid, -666.6516,1521.9204,86.5108 );
return 1;
}
if (strcmp(\"/derby\", cmdtext, true, 10) == 0)
{
new pName[MAX_PLAYER_NAME];
new string[256];
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), \"%s elteleportált a derby-hez!(/derby) \", pName);
SendClientMessageToAll(0x99FF00AA, string);
SetPlayerPos(playerid,-1011.9091,-1009.4459,129.2126);
return 1;
}
return 0;
}
a /derbys teleportot szeretném hogy ne engedje ha bentvan a zónába pls csinálja meg valaki és küldje vissza a kódot
Köszi
-
Megcsinálná akkor valaki kéremszépen ott a kód meg minden!
-
Ne duplapostolj!
#include <a_samp>
new bool:pDerby [ MAX_PLAYERS ];
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" X-Zyte derby By:Eric \");
print(\"--------------------------------------\\n\");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
pDerby [ playerid ] = false;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if ( strcmp ( cmdtext, \"/off-derby\", true ) == 0 )
{
if ( pDerby [ playerid ] == true ) return SendClientMessage ( playerid, 0x00000, \" Már a derby zónához teleportáltál!\");
if ( IsPlayerInAnyVehicle ( playerid ) ) return SetVehiclePos ( GetPlayerVehicleID ( playerid ), 1526.8193,-1027.9990,23.9216 );
pDerby [ playerid ] = true;
return 1;
}
if ( strcmp ( cmdtext, \"/exit-derby\", true ) == 0 )
{
if ( pDerby [ playerid ] == false ) return SendClientMessage ( playerid, 0x00000, \"Nem vagy a derby zónában!\");
pDerby [ playerid ] =false;
SendClientMessage ( playerid, 0x00000, \"Ki lépétál a derby zónából!\");
SetPlayerPos ( playerid, -666.6516,1521.9204,86.5108 );
return 1;
}
if (strcmp(\"/derby\", cmdtext, true, 10) == 0)
{
if ( pDerby [ playerid ] == true ) return SendClientMessage ( playerid, 0x00000, \"Nem használhatod a parancsokat, mert a derby zónában vagy! \");
new pName[MAX_PLAYER_NAME];
new string[256];
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), \"%s elteleportált a derby-hez!(/derby) \", pName);
SendClientMessageToAll(0x99FF00AA, string);
SetPlayerPos(playerid,-1011.9091,-1009.4459,129.2126);
return 1;
}
return 0;
}
-
Az /exit-derby nemmüxik és más teleportot is tudok használni pedig beillesztettem amit kelett!
-
Csabesz: A /derby parancsnál nem adtál true értéket a változónak és sokkal egyszerubb (és kevésbé terhelo) lenne, ha Per Player Variable Systemet használnál hozzá.
-
Rájöttem kicsit másképp de jó am köszi a segítséget bár végül is megoldottam de azé kösz:D zárok