GTA Közösség - A magyar GTA fórum
San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: szabyxxx - 2011. december 31. - 11:56:02
-
Sziasztok Azt szeretném tõletek kérdezni hogy ezt a teleportot Megcsinálnátok nekem hogy mindenkinek kiirja hogy Player neve elélteleportált ide: /d1
[pawn]if(strcmp(cmdtext, \"/d1\", true) == 0)
{
SetPlayerInterior(playerid,0);
{if(State!=PLAYER_STATE_DRIVER)
{SetPlayerPos(playerid,1567.5250,792.2056,11.3102);}
else if(IsPlayerInVehicle(playerid, cartype) == 1)
{SetVehiclePos(cartype,1567.5250,792.2056,11.3102);
SetVehicleZAngle(cartype,304.2583);}
else
{SetPlayerPos(playerid,1567.5250,792.2056,11.3102);}
SendClientMessage(playerid, 0xFFFF00AA,\"Elteleportáltál erre a helyre --> /d1\");}
PlayerPlaySound(playerid, 1133, 0.0, 0.0, 10.0);
return 1;}[/pawn]
Ennyi lenne Aki Segít megy a + :D
-
Így jó lesz ah minden igaz.
[pawn]if(strcmp(cmdtext, \"/d1\", true) == 0)
{
SetPlayerInterior(playerid,0);
{if(State!=PLAYER_STATE_DRIVER)
{SetPlayerPos(playerid,1567.5250,792.2056,11.3102);}
else if(IsPlayerInVehicle(playerid, cartype) == 1)
{SetVehiclePos(cartype,1567.5250,792.2056,11.3102);
SetVehicleZAngle(cartype,304.2583);}
else
{SetPlayerPos(playerid,1567.5250,792.2056,11.3102);}
new nev[MAX_PLAYER_NAME];
GetPlayerName(playerid,nev,sizeof(nev));
format(string,sizeof(string),\"%s elteleportált erre a helyre --> /d1\",nev);
SendClientMessageToAll( 0xFFFF00AA,string);}
PlayerPlaySound(playerid, 1133, 0.0, 0.0, 10.0);
return 1;}[/pawn]
-
Több hiba is van a parancsban, nem részletezem mert nem akarok egy regényt írni, inkább átírtam az egészet.
[pawn] if(strcmp(cmdtext, \"/d1\", true) == 0)
{
new
vehicle_ID = GetPlayerVehicleID(playerid); // Tároljuk vehicleid változóban annak a jármûnek a sorszámát amelyiket használja a játékos, ha egyiket se akkor a visszatérés értéke nulla( nincs jármûben )
if(vehicle_ID && GetPlayerVehicleSeat(playerid) == 0) // Ez helyett megfelel az if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) is.
{
SetVehiclePos(vehicle_ID, 1567.5250, 792.2056,11.3102);
SetVehicleZAngle(vehicle_ID, 304.2583);
} else {
SetPlayerPos(playerid, 1567.5250, 792.2056, 11.3102);
SetPlayerFacingAngle(playerid, 304.2583);
}
new
str[128];
GetPlayerName(playerid, str, MAX_PLAYER_NAME);
format(str, sizeof str, \"%s elteleportált erre a helyre --> /d1\", str);
SendClientMessageToAll(0xFFFF00AA, str);
PlayerPlaySound(playerid, 1133, 0.0, 0.0, 10.0);
return 1;
}[/pawn]
-
Azt hittem a parancs jó,csak a string-es részt nem érti,és csak azt írtam át benne.
-
kösz mindkettõtöknek megy a +1
THX
-
Azt hittem a parancs jó,csak a string-es részt nem érti,és csak azt írtam át benne.
Ahhoz meg nem feltétlenül kell az egész parancsot idézni hanem leírtad volna hogy a SendClientMessage helyett ezt használja:
[pawn] new
str[128];
GetPlayerName(playerid, str, MAX_PLAYER_NAME);
format(str, sizeof str, \"%s elteleportált erre a helyre --> /d1\", str);
SendClientMessageToAll(0xFFFF00AA, str);[/pawn]
Másképp ezt a funkciót törölje
[pawn]SendClientMessage(playerid, 0xFFFF00AA,\"Elteleportáltál erre a helyre --> /d1\");[/pawn]
és a feljebb lévõkkel pótolja/cserélje.
Amúgy a parancs mûködõképes lehet úgyis ahogy írtad gondolom az OnPlayerCommandText alatt szerepelhetnek ezek:
[pawn]new State = GetPlayerState(playerid);
new cartype = GetPlayerVehicleID(playerid);
new string[128];[/pawn]
Csak ezeket a dolgokat segítséget kérõk általában nem közlik.
Ezért szoktam olyan parancsot írni segítség kéréshez amiben minden benne van, és nem máshol létrehozott változókban vannak tárolva az adatokat.
Amúgy én is rengeteg helyen használom kis global változók használatát. (nem tudtam másképp leírni kis global)
OnPlayerCommandText alatt közvetlenül létrehoznak egy változókat pl.:
[pawn]public OnPlayerCommandText(playerid, cmdtetx[])
{
new str[128];
new vehicleID = GetPlayerVehicleID(playerid);
new State = GetPlayerState(playerid);
//és az ezek alatt írt összes parancsban lehet õket alkalmazni
if(strcmp(cmdtext, \"/valami2\", true) == 0)
{
format(str, sizeof str, \"Használt parancs %s | State: %d | VehicleID: %d\", cmdtetxt, State, VehicleID);
SendClientMessage(playerid, -1, str);
return 1;
}
if(strcmp(cmdtext, \"/valami3\", true) == 0)
{
format(str, sizeof str, \"Használt parancs %s | State: %d | VehicleID: %d\", cmdtetxt, State, VehicleID);
SendClientMessage(playerid, -1, str);
return 1;
}
if(strcmp(cmdtext, \"/valami4\", true) == 0)
{
format(str, sizeof str, \"Használt parancs %s | State: %d | VehicleID: %d\", cmdtetxt, State, VehicleID);
SendClientMessage(playerid, -1, str);
return 1;
}
return 0;
}[/pawn]
Ezt nevezem kis global változónak mert OnPlayerCommandText alatt szerepelhet akár több száz parancs, és mindegyikben lehet alkalmazni a példában szereplõ
\"str\", \"VehicelID\", \"State\" változókat .