stiefurkel Geplaatst: 12 september 2008 Rapport Geplaatst: 12 september 2008 (bewerkt) ik heb een mooi filterscript gevonden 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: 12 september 2008 door stiefurkel Reageren
Ophion Geplaatst: 12 september 2008 Rapport Geplaatst: 12 september 2008 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! Reageren
stiefurkel Geplaatst: 12 september 2008 Auteur Rapport Geplaatst: 12 september 2008 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 Reageren
Thinkie Geplaatst: 12 september 2008 Rapport Geplaatst: 12 september 2008 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 ) Reageren
Ymosky Geplaatst: 12 september 2008 Rapport Geplaatst: 12 september 2008 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. Reageren
stiefurkel Geplaatst: 13 september 2008 Auteur Rapport Geplaatst: 13 september 2008 lol ik was vergeten als rcon admin in te loggen dus nu werkt het Reageren
Recommended Posts
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.