Szerző Téma: Vonszolás  (Megtekintve 691 alkalommal)

Nem elérhető System

  • 406
    • Profil megtekintése
Vonszolás
« Dátum: 2014. december 09. - 13:05:43 »
0 Show voters
Sziasztok!Van egy goudlyne edit modom.Amiben ha vonszolok valakit akkor nem vonszolja ezt úgy értem, hogy /vonszol és nem geteli folyton magához mint pl:See modokban.
Már próbáltuk többféle képpen de nem jött össze.Nagyon megköszönném ha valaki tudna segíteni. :) Tehát csak annyit kérnék hogyha vonszolják az illetőt akkor folyton ott legyen a játékosnál aki vonszolja tehát mintha getelné.
 
   if(strcmp(cmd, \"/vonszol\", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
   if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 6 || PlayerInfo[playerid][pMember] == 6 || PlayerInfo[playerid][szervLeader] == 2||PlayerInfo[playerid][szervTag] == 2 || PlayerInfo[playerid][szervLeader] == 1||PlayerInfo[playerid][szervTag] == 1 || PlayerInfo[playerid][szervLeader] == 3 || PlayerInfo[playerid][szervTag] == 3)
   {
       if(PlayerInfo[playerid][pRank] == 0) { SendClientMessage(playerid, COLOR_GRAD2,\"Ezzel a rangal nem vonszolhatsz senkit!\"); return 1; }
       tmp = strtok(cmdtext, idx);
      if(!strlen(tmp)) {
         SendClientMessage(playerid, COLOR_LIGHTBLUE, \"StarLife RPG: /vonszol [JátékosID/NévRészlet]\");
         return 1;
      }
      giveplayerid = ReturnUser(tmp);
       if(IsPlayerConnected(giveplayerid))
      {
          if(giveplayerid != INVALID_PLAYER_ID)
          {
            if (GetDistanceBetweenPlayers(playerid,giveplayerid) < 3)
            {
                if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GRAD2, \"Magadat nem tudod vonszolni!\"); return 1; }
                if(PlayerCuffed[giveplayerid] == 2)
                {
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                  GetPlayerName(playerid, sendername, sizeof(sendername));
                   format(stringx, sizeof(stringx), \"%s elkezdett vonszolni.\", sendername);
                  SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, stringx);
                  format(stringx, sizeof(stringx), \"Vonszolod %s.\", rag(giveplayer,3));
                  SendClientMessage(playerid, COLOR_LIGHTBLUE, stringx);
                  format(stringx, sizeof(stringx), \"* %s elkezdte vonszolni %s.\", sendername ,rag(giveplayer,3));
                  ProxDetector(30.0, playerid, stringx, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                  PlayerInfo[playerid][vonszol] = 1;
                  PlayerInfo[giveplayerid][vonszol] = 2+playerid;
               } else SendClientMessage(playerid, COLOR_GRAD2, \"A játékos nincs megbilincselve!\");
            } else SendClientMessage(playerid, COLOR_GRAD2, \"A játékos nincs a közeledben!\");
         } else SendClientMessage(playerid, COLOR_GRAD2, \"A játékos nem elérhető!\");
      }
   } else SendClientMessage(playerid, COLOR_GRAD2, \"Nem vagy rendőr / navos / katona / T.E.K tag!\");
} return 1;
}

 
[gmod]Kitettem helyetted a pawn code taget, ismét. Világosan le van írva a használata a szabályzatban, el kéne olvasni.[/gmod]
« Utoljára szerkesztve: 2014. december 09. - 15:32:09 írta ƒlaﻛh »

Nem elérhető shadee

  • 1073
    • Profil megtekintése
Vonszolás
« Válasz #1 Dátum: 2014. december 25. - 20:32:41 »
0 Show voters
Ez csak egy elmélet, nézd át
 
// mód elejére
new Vonszol[MAX_PLAYERS];
new KiVonszolja[MAX_PLAYERS];
// a vonszol parancshoz:
Vonszol[giveplayerid] = 1;
KiVonszolja[playerid] = giveplayerid;
//Timert készítel.. vagy onplayerupdate
if(Vonszol[playerid] == 1)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(Kivonszolja == playerid)
{
      new Float:X, Float:Y, Float:Z;
      GetPlayerPos(i, X, Y, Z);
      SetPlayerPos(KiVonszolja, X+1, Y, Z);
}
}
}

 
nem biztos hogy működik,tesztelve nemvolt

Vonszolás
« Válasz #2 Dátum: 2014. december 28. - 17:17:36 »
0 Show voters
Valószínűleg a proxdetector lesz az.
 
forward ProxDetector(Float:radi, playerid, str[], col1, col2, col3, col4, col5);
public ProxDetector(Float:radi, playerid, str[],col1,col2,col3,col4,col5)
{
    if(IsPlayerConnected(playerid))
    {
        new Float:posx, Float:posy, Float:posz;
        new Float:oldposx, Float:oldposy, Float:oldposz;
        new Float:tempposx, Float:tempposy, Float:tempposz;
        GetPlayerPos(playerid, oldposx, oldposy, oldposz);
        //radi = 2.0; //Trigger Radius
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i))
            {
                GetPlayerPos(i, posx, posy, posz);
                tempposx = (oldposx -posx);
                tempposy = (oldposy -posy);
                tempposz = (oldposz -posz);
                //printf(\"DEBUG: X:%f Y:%f Z:%f\",posx,posy,posz);
                if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
                {
                    SendClientMessage(i, col1, str);
                }
                else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
                {
                    SendClientMessage(i, col2, str);
                }
                else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
                {
                    SendClientMessage(i, col3, str);
                }
                else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
                {
                    SendClientMessage(i, col4, str);
                }
                else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
                {
                    SendClientMessage(i, col5, str);
                }
            }
        }
    }//not connected
    return 1;
}

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal