Szerző Téma: Teleport hogy mindenki lássa  (Megtekintve 645 alkalommal)

Teleport hogy mindenki lássa
« Dátum: 2011. december 31. - 11:56:02 »
0 Show voters
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

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
Teleport hogy mindenki lássa
« Válasz #1 Dátum: 2011. december 31. - 12:01:04 »
+1 Show voters
Í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]

Teleport hogy mindenki lássa
« Válasz #2 Dátum: 2011. december 31. - 12:41:35 »
+1 Show voters
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]

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
Teleport hogy mindenki lássa
« Válasz #3 Dátum: 2011. december 31. - 12:42:41 »
0 Show voters
Azt hittem a parancs jó,csak a string-es részt nem érti,és csak azt írtam át benne.

Teleport hogy mindenki lássa
« Válasz #4 Dátum: 2011. december 31. - 12:45:44 »
0 Show voters
kösz mindkettõtöknek  megy a +1THX

Teleport hogy mindenki lássa
« Válasz #5 Dátum: 2011. december 31. - 13:07:20 »
0 Show voters
Idézetet írta: tudvari date=1325331761\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"15000\" data-ipsquote-contentclass=\"forums_Topic
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 .

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal