Jump to content

probleem met fs


Recommended Posts

Geplaatst: (bewerkt)

ik heb een mooi filterscript gevonden :tu:

maar het werkt niet met godfater source

kan iemand mij helpen om te zorgendat het met godfather werkt?

aleen de admin moet als enigen bomen kunnen geven

hier is het script

/*
                                                       Bombing Script by Seif - Allowing you to
*/
/*x---------------------------------Important-------------------------------------x*/
//**INCLUDES**//
#include <a_samp>
//**PRAGMAS**//

//**MISC**//

/*x---------------------------------Defining-------------------------------------x*/
//**COLORS*//
#define GREEN                   0x21DD00FF
#define RED                     0xE60000FF
#define ADMIN_RED               0xFB0000FF
#define YELLOW                  0xFFFF00FF
#define ORANGE                  0xF97804FF
#define LIGHTRED                0xFF8080FF
#define LIGHTBLUE               0x00C2ECFF
#define PURPLE                  0xB360FDFF
#define PLAYER_COLOR    0xFFFFFFFF
#define BLUE                    0x1229FAFF
#define LIGHTGREEN              0x38FF06FF
#define DARKPINK                0xE100E1FF
#define DARKGREEN               0x008040FF
#define ANNOUNCEMENT    0x6AF7E1FF
#define COLOR_SYSTEM    0xEFEFF7AA
#define GREY                    0xCECECEFF
#define PINK                    0xD52DFFFF
#define DARKGREY        0x626262FF
#define AQUAGREEN       0x03D687FF
#define NICESKY                 0x99FFFFAA
#define WHITE                   0xFFFFFFFF
//**MISC**//
#define MAX_BOMBS       500
//**VARIABLES**//
enum bombInfo
{
       bombPlanter[MAX_PLAYER_NAME],
       Float:bombX,
       Float:bombY,
       Float:bombZ,
};
new BombInfo[MAX_BOMBS][bombInfo];
new Bombs[MAX_PLAYERS];
new VehicleBombed[MAX_VEHICLES];
new Bomber[MAX_PLAYERS];
new ExplosiveObject[MAX_OBJECTS];
new explosive = 0;
// **FORWARDS** //

/*x---------------------------------CallBacks-------------------------------------x*/
public OnFilterScriptInit()
{
       for(new b = 0; b < MAX_BOMBS; b++)
       {
               strmid(BombInfo[b][bombPlanter], "[NONE]", 0, strlen("[NONE]"), 128);
               BombInfo[b][bombX] = 0.0;
               BombInfo[b][bombY] = 0.0;
               BombInfo[b][bombZ] = 0.0;
       }
       for(new v = 1; v < MAX_VEHICLES; v++) VehicleBombed[v] = 0;
       explosive = 0;

   print("<|-----------------------------------------|>");
       print("  .:[ - Bombing Script by Seif - ]:.");
       print("<|-----------------------------------------|>");
       return 1;
}

public OnFilterScriptExit()
{
       for(new o = 0; o < MAX_OBJECTS; o++) DestroyObject(ExplosiveObject[o]);
       return 1;
}

public OnPlayerConnect(playerid)
{
       Bombs[playerid] = 0;
       Bomber[playerid] = 0;
       return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
       new tmp[256],cmd[256],idx;
       cmd = strtok(cmdtext, idx);
       if(strcmp("/setbomb", cmd, true) == 0)
       {
               tmp = strtok(cmdtext, idx);
               if (!Bombs[playerid]) return SendClientMessage(playerid, ORANGE," You don't have a bomb with you.");
               if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE,"USAGE: /setbomb [foot/car]");
               else if (strcmp("foot", tmp, true) == 0)
               {
                   if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, ORANGE, " You're not on foot");
                   new Float:X,Float:Y,Float:Z,Float:A;
                   new playername[24];
                   GetPlayerPos(playerid, X, Y, Z);
                   GetPlayerFacingAngle(playerid,A);
               GetPlayerName(playerid, playername, 24);
                   explosive++;
                   Y += (1 * floatcos(-A, degrees));
                   X += (1 * floatsin(-A, degrees));
                   ApplyAnimation(playerid, "BOMBER","BOM_Plant_In",4.0,0,0,0,0,0);
                   ExplosiveObject[explosive] = CreateObject(1654, X, Y, Z-0.9, 0, 90, 0);
                   Bomber[playerid] = 1;
                   BombInfo[explosive][bombX] = X;
                   BombInfo[explosive][bombY] = Y;
                   BombInfo[explosive][bombZ] = Z;
                   strmid(BombInfo[explosive][bombPlanter], playername, 0, strlen(playername), 50);
                   printf("%d",explosive);
                   SendClientMessage(playerid,ORANGE," You have planted a bomb on the ground. Type /usebomb to detonate it.");
                   Bombs[playerid]--;
               }
               else if (strcmp("car", tmp, true) == 0)
               {
                   if (IsPlayerInAnyVehicle(playerid))
                   {
                       new vehicleid = GetPlayerVehicleID(playerid);
                       new playername[24];
                       GetPlayerName(playerid, playername, 24);
                       VehicleBombed[vehicleid] = 1;
                       Bomber[playerid] = 2;
                       explosive++;
                       strmid(BombInfo[explosive][bombPlanter], playername, 0, strlen(playername), 50);
                       SendClientMessage(playerid,ORANGE," You have planted a bomb inside the car. Type /usebomb to detonate it.");
                       Bombs[playerid]--;
                       }
                       else SendClientMessage(playerid, ORANGE, " You're not inside a vehicle");
               }
               else SendClientMessage(playerid, ORANGE,"USAGE: /setbomb [foot/car]");
               return 1;
       }

       if(strcmp(cmdtext, "/bomber", true)==0)
       {
           new string[128];
       for(new i = 0; i < MAX_BOMBS; i++)
       {
                       if (PlayerToPoint(playerid,3,BombInfo[i][bombX],BombInfo[i][bombY],BombInfo[i][bomb
Z]))
               {
                               printf("%d - %d",explosive,i);
                               format(string,sizeof(string),"Bomber: %s - Bomb #%d",BombInfo[i][bombPlanter],i);
                       SendClientMessage(playerid,GREY,string);
               }
       }
       return 1;
   }

   if (strcmp("/usebomb", cmd, true) == 0)
   {
       if (Bomber[playerid] == 1) // On foot bomb
       {
               new playa[128];
           GetPlayerName(playerid, playa, 24);
           new count = 0;
           for(new bomb = 1; bomb < MAX_BOMBS; bomb++)
           {
               if (!strcmp(BombInfo[bomb][bombPlanter], playa, false)) // if he's the planter of this bomb
               {
                   CreateExplosion(BombInfo[bomb][bombX],BombInfo[bomb][bombY],BombInfo[bomb][bombZ
], 7, 7);
                   DestroyObject(ExplosiveObject[bomb]);
                   if (explosive <= 0) explosive = 1;
                   explosive--;
                   Bomber[playerid] = 0;
                   BombInfo[bomb][bombX] = 0.0;
                               BombInfo[bomb][bombY] = 0.0;
                               BombInfo[bomb][bombZ] = 0.0;
                               strmid(BombInfo[bomb][bombPlanter], "[NONE]", 0, strlen("[NONE]"), 128);
                   printf("[ON FOOT] B: %d - E: %d - P: %s",bomb, explosive, BombInfo[bomb][bombPlanter]);
                   count++;
               }
           }
           format(playa, sizeof(playa), "You activated %d bombs", count);
           SendClientMessage(playerid, ORANGE, playa);
       }
       else if (Bomber[playerid] == 2) // car bomb
       {
               new playa[128];
           GetPlayerName(playerid, playa, 24);
           new count = 0;
           for(new carbomb = 1; carbomb < MAX_VEHICLES; carbomb++)
           {
               if (VehicleBombed[carbomb] == 1)
               {
                   new bomb = 0;
                   while(bomb < MAX_BOMBS)
                   {
                       bomb++;
                               if (strcmp(BombInfo[bomb][bombPlanter], playa, true) == 0) // if he's the planter of this bomb
                               {
                                       new Float:X,Float:Y,Float:Z;
                                       GetVehiclePos(carbomb,X,Y,Z);
                                       SetVehicleHealth(carbomb,-999);
                               CreateExplosion(X,Y,Z, 7, 7);
                               Bomber[playerid] = 0;
                               VehicleBombed[carbomb] = 0;
                               strmid(BombInfo[bomb][bombPlanter], "[NONE]", 0, strlen("[NONE]"), 128);
                               if (explosive <= 0) explosive = 1;
                                   explosive--;
                                   printf("[iN VEH] B: %d - E: %d",bomb, explosive);
                                   count++;
                               }
                                       }
                               }
           }
           format(playa, sizeof(playa), "You activated %d car bombs", count);
           SendClientMessage(playerid, ORANGE, playa);
       }
       return 1;
   }

   if(strcmp(cmd, "/givebomb", true) == 0)
       {
           if (!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, RED, " You're not an admin");
           tmp = strtok(cmdtext, idx);
           new targetid = ReturnUser(tmp, playerid);
           new name[MAX_PLAYER_NAME];
           GetPlayerName(targetid, name, sizeof(name));
           new tname[MAX_PLAYER_NAME];
           GetPlayerName(targetid, tname, sizeof(tname));

           tmp = strtok(cmdtext, idx);
           new amount = strval(tmp);
           if (!strlen(tmp)) amount = 1;
           Bombs[targetid] += amount;
           format(tmp, 128, " You gave %d bombs to %s.",amount, tname);
           SendClientMessage(playerid, LIGHTBLUE, tmp);
           format(tmp, 128, " You have received %d bombs from %s.",amount, name);
           SendClientMessage(targetid, LIGHTBLUE, tmp);
       return 1;
   }

   if (!strcmp("/test", cmdtext, true))
   {
       new name[24];
       GetPlayerName(playerid, name, 24);
       if (!strcmp(BombInfo[1][bombPlanter], name, false))
               {
                   printf("%s : %s", BombInfo[1][bombPlanter], name);
                       return 0;
               }
       return 1;
   }
       return 0;
}

strtok(const string[], &index)
{
       new length = strlen(string);
       while ((index < length) && (string[index] <= ' '))
       {
               index++;
       }

       new offset = index;
       new result[20];
       while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
       {
               result[index - offset] = string[index];
               index++;
       }
       result[index - offset] = EOS;
       return result;
}

PlayerToPoint(playerid,Float:radi, Float:px, Float:py, Float:pz)
{
   if(IsPlayerConnected(playerid))
   {
           new Float:x, Float:y, Float:z;
           new Float:ox, Float:oy, Float:oz;
           GetPlayerPos(playerid, ox, oy, oz);
           x = (ox -px);
           y = (oy -py);
           z = (oz -pz);
           if (((x < radi) && (x > -radi)) && ((y < radi) && (y > -radi)) && ((z < radi) && (z > -radi))) return 1;
       }
   return 0;
}

stock IsNumeric(const string[])
{
       for (new i = 0, j = strlen(string); i < j; i++)
       if (string[i] > '9' || string[i] < '0')
   return 0;
       return 1;
}

ReturnUser(text[], playerid = INVALID_PLAYER_ID)
{
       new pos = 0;
       while (text[pos] < 0x21)
       {
       if (text[pos] == 0) return INVALID_PLAYER_ID;
       pos++;
       }
       new userid = INVALID_PLAYER_ID;
       if (IsNumeric(text[pos]))
       {
       userid = strval(text[pos]);
       if (userid >=0 && userid < MAX_PLAYERS)
       {
       if(!IsPlayerConnected(userid))
       {
       userid = INVALID_PLAYER_ID;
       }
       else
       {
       return userid;
       }
       }
       }
       new len = strlen(text[pos]);
       new count = 0;
       new pname[MAX_PLAYER_NAME];
       for (new i = 0; i < MAX_PLAYERS; i++)
       {
       if (IsPlayerConnected(i))
       {
       GetPlayerName(i, pname, sizeof (pname));
       if (strcmp(pname, text[pos], true, len) == 0)
       {
       if (len == strlen(pname))
       {
       return i;
       }
       else
       {
       count++;
       userid = i;
       }
       }
       }
       }
       if (count != 1)
       {
       if (playerid != INVALID_PLAYER_ID)
       {
       if (count)
       {
       SendClientMessage(playerid, COLOR_SYSTEM, "There are multiple users, enter full playername.");
       }
       else
       {
       SendClientMessage(playerid, COLOR_SYSTEM, "Playername not found.");
       }
       }
       userid = INVALID_PLAYER_ID;
       }
       return userid;
}

Bewerkt: door stiefurkel
Geplaatst:

De godfather script is een zeer groot script.

Als je de basis van scripting nog niet door hebt, wordt het zeer lastig om alles compatible voor godfather te maken.

Zelf heb ik er niet veel zin in, om het hele script van jou om te zetten voor godfather.

Mijn advies: Neem een kleiner script, en begin dingetjes toe te voegen die je zelf snapt!

Geplaatst:

het hele script werkt als ik 1 regel weg haal waar hij kijkt of je admin moet zijn maar ik weet niet hoe ik dat kan veranderen naar god father

Geplaatst:
het hele script werkt als ik 1 regel weg haal waar hij kijkt of je admin moet zijn maar ik weet niet hoe ik dat kan veranderen naar god father

dan zal je ook dit scriptje in godfather zetten anders gaat het niet werken nee

(PS: ik heb al lang niet meer gescript kan ernaast zitten o.a. dat het niet werkt :puh::D )

Geplaatst:

Werkt het ook niet als je Rcon inlogd op je server?

In de gauwigheid gezien zou het dan toch wel moeten werken, mits er geen andere dingen zijn die problemen geven met het GF script.

Als dat lukt kun je alleen het command gebruiken als je rcon bent ingelogd, maar wil je het anders hebben dan zul je het in moeten bouwen in je GF script, dan kun je gebruikmaken van het admin-systeem wat daar inzit.

Wat opzich wel te doen is hoor, maar dat is een geduld en precisie werkje.

Als je dat echt wilt gaan doen raad ik je aan een kopie te maken van zowel GF als het filterscript, deze twee naast of onder elkaar op je scherm zetten en rustig de tijd nemen om alles uit het filterscript op de juiste plaats in GF te plaatsen.

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...