Jump to content

Wildo

Member
  • Posts

    559
  • Joined

  • Last visited

  • Days Won

    27

Reputation Activity

  1. Downvote
    Wildo reacted to SmoKey in Comunitatea CS-Game.Ro Cauta Scripteri !   
    Username: SmoKey Varsta: 22 Ce fel de servicii oferi?: Cautam Scripteri categoria: SA-MP , Counter Strike 1.6 (Categoria Base Builder) Pret: Se discuta in privat Detalii de contact:  Discord : SmoKey#1025 sau PM Alte precizari: Comunitatea CS-Game.Ro Cauta scripteri SA-MP , Counter-Strike 1.6 (Categoria Base Builder) ! Pentru mai multe detalii contactati-ma in privat !
  2. Like
    Wildo reacted to unkn0wn in Optimizare   
    asa e mai optimizat https://pastebin.com/bQw9Mqvd🙂
  3. Like
    Wildo got a reaction from mihay111 in Cum pot schimba fs-ul   
    Include-ul se pune in pawno - includes, in cazul in care n-a fost precizat mai sus acest aspect.
  4. Like
    Wildo reacted to INURANUSYOBAG in Prezentare - Wildo   
    Bine ai venit !
  5. Like
    Wildo reacted to AlexMagda in Prezentare - Wildo   
    ❤🍾Welcome🍾❤
  6. Like
    Wildo reacted to eltAndrei in Prezentare - Wildo   
    Welcome!
  7. Like
    Wildo reacted to DiBlaine in Problema Stocare ID MYSQL   
    // VARIABILA GLOBALA new WarSQLID[99+1]; // MODIFICI 99 IN FUNCTIE DE CATE LOGURI CREZI CA VEI AVEA(poti avea 100, poti avea 1000, poti avea si 10000, depinde cat de populat este serverul si in functie de cate war-uri se dau pe server) DACA VEI AVEA MAI MULT DE 99 DE WAR-URI IN BAZA DE DATE, ORICE WARSQLID DE LA 99 IN SUS VA AVEA VALOAREA 0, ADICA WarSQLID[100] = 0 / WarSQLID[101] = 0; ETC // AICI STOCHEZI ID-UL DE LA WAR IN VARIABILA GLOBALA new sqlid = cache_insert_id(); WarSQLID[sqlid] = sqlid; Daca nu te descurci, lasa partea in care inserezi war-ul in baza de date.
  8. Like
    Wildo reacted to Ian15 in [REZOLVAT] Incarcare Pickup-uri din MySQL   
    Multumesc mult!
  9. Ador
    Wildo got a reaction from Ian15 in [REZOLVAT] Incarcare Pickup-uri din MySQL   
    Ai aici un cod sursa http://solidfiles.com/d/35d5/  ai si baza de date cu tabelele doar trebuie importate fisierele in baza ta, si mai modifici variabilele, in caz ca nu te descurci cu tutorialul mentionat de baiatul de mai sus.
  10. Like
    Wildo got a reaction from DiBlaine in [REZOLVAT] Incarcare Pickup-uri din MySQL   
    Ai aici un cod sursa http://solidfiles.com/d/35d5/  ai si baza de date cu tabelele doar trebuie importate fisierele in baza ta, si mai modifici variabilele, in caz ca nu te descurci cu tutorialul mentionat de baiatul de mai sus.
  11. Like
    Wildo reacted to DiBlaine in Problema Turfs War   
    if(InWar[factionid] != 0) CheckIfPlayerIsOnTurf(playerid); // asta o adaugi intr-un timer de 1 secunda function CheckIfPlayerIsOnTurf(playerid) { if(IsPlayerInTurf(playerid, InWarTurf[PlayerInfo[playerid][pMember]]) && GetPVarInt(playerid, "PlayerOnTurf") == 0) { SendClientMessage(playerid, -1, "Ai intrat pe turf si ai fost transferat in alt VW."); SetPlayerVirtualWorld(playerid, worldid); SetPVarInt(playerid, "PlayerOnTurf", InWarTurf[PlayerInfo[playerid][pMember]]); }else if(!IsPlayerInTurf(playerid, InWarTurf[PlayerInfo[playerid][pMember]]) && GetPVarInt(playerid, "PlayerOnTurf") != 0) { SendClientMessage(playerid, -1, "Ai iesit de pe turf si ai fost transferat in VW 0."); SetPlayerVirtualWorld(playerid, 0); DeletePVar(playerid, "PlayerOnTurf"); }return 1; } // InWar - variabila in care stocam id-ul factiunii care are un war activ // IsPlayerInTurf - functia cu care verificam daca playerul este pe turful pe care este desfasurat war-ul // InWarTurf - variabila in care stocam id-ul turfului pe care este desfasurat war-ul  
  12. Like
    Wildo reacted to DiBlaine in [REZOLVAT] Incarcare Pickup-uri din MySQL   
    Pai, pentru prima data trebuie sa creezi in baza de date 7/8 tabele, ID - Text - PosX - PosY - PosZ -  Interior - VirtualWorld - Type(type e optional, in caz ca vrei si alte tipuri de pickupuri, inafara de clasicele pickup-uri in forma de i, acele galbene). Tabelele PosX - PosY - PosZ trebuie sa le creezi de tip FLOAT si Name trebuie sa il creezi de tip VARCHAR, la lungime pui 50(modifici in functie de cat de lungi vor fi textele pe care le vei avea la pickup-uri), iar in rest celelalte le creezi de tip INT, iar la ID sa nu uiti sa selectezi A_I(Auto Increment).
    Apoi trebuie sa le definiesti variabilele de ex:
    #define MAX_PICKUPS 50 // aici modifici in functie de cate pickup-uri vrei sa ai pe server enum pickups { pickupID, pickupText[50], // string-ul il maresti in functie de cat de lungi vor fi textele pe care le vei avea la pickup-uri FLOAT:pickupPosX, FLOAT:pickupPosY, FLOAT:pickupPosZ, pickupInt, pickupVW, pickupPickup, Text3D:pickupLabel // daca lasi optionalul sterge linia asta /* //OPTIONAL Text3D:pickupLabel, pickupType */ //OPTIONAL // STERGE ULTIMELE 3 LINII DACA NU VREI OPTIONALUL }; new PickupsInfo[MAX_PICKUPS][pickups], serverPickups = 0; Apoi trebuie sa le incarci din baza de date de ex:
    function LoadPickups() { new Cache: db = mysql_query(SQL, "SELECT * FROM `pickups` ORDER BY `pickups`.`ID` ASC"); new x, result[50], string[50]; for(new i, j = cache_get_row_count (); i != j; ++i) { serverPickups ++; cache_get_field_content(i, "ID", result); x = strval(result); PickupsInfo[x][pickupID] = x; cache_get_field_content(i, "Text", result); format(PickupsInfo[x][pickupText], 50, result); cache_get_field_content(i, "PosX", result); PickupsInfo[x][pickupPosX] = strval(result); cache_get_field_content(i, "PosY", result); PickupsInfo[x][pickupPosY] = strval(result); cache_get_field_content(i, "PosZ", result); PickupsInfo[x][pickupPosZ] = floatstr(result); cache_get_field_content(i, "Interior", result); PickupsInfo[x][pickupInt] = strval(result); cache_get_field_content(i, "VirtualWorld", result); PickupsInfo[x][pickupVW] = strval(result); // OPTIONAL // cache_get_field_content(i, "Type", result); PickupsInfo[x][pickupType] = strval(result); // OPTIONAL // PickupsInfo[x][pickupPickup] = CreateDynamicPickup(PickupsInfo[x][pickupType], 23, PickupsInfo[x][pickupPosX], PickupsInfo[x][pickupPosY], PickupsInfo[x][pickupPosZ], PickupsInfo[x][pickupVW], PickupsInfo[x][pickupInt], -1, 30.0); PickupsInfo[x][pickupPickup] = CreateDynamicPickup(1239, 23, PickupsInfo[x][pickupPosX], PickupsInfo[x][pickupPosY], PickupsInfo[x][pickupPosZ], PickupsInfo[x][pickupVW], PickupsInfo[x][pickupInt], -1, 30.0); format(string, sizeof(string), "SQL Pickup ID: %d\n%s", PickupsInfo[x][pickupID], PickupsInfo[x][pickupText]); PickupsInfo[x][pickupLabel] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, PickupsInfo[x][pickupPosX], PickupsInfo[x][pickupPosY], PickupsInfo[x][pickupPosZ], 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, PickupsInfo[x][pickupVW], PickupsInfo[x][pickupInt], -1, 10.0); } printf("Pickups: %d", serverPickups); cache_delete(db); return 1; } Ti-am facut toata partea de incarcare si definire a pickup-urilor din baza de date, acum comanda de creeare a pickup-urilor din joc:
    YCMD:createpickup(playerid, params[], help) { if(serverPickups == 50) return SCM(playerid, -1, "Ai deja 50 de pickp-uri create pe server!"); // OPTIONAL // new int, vw, type, ptext[50], inputtext[50], query[256], string[128]; // OPTIONAL // if(sscanf(params, "s[50]iii", inputtext, int, vw, type)) return SCM(playerid, COLOR_GREY, "USAGE: {FFFFFF}/createpickup <text> <interior> <virtualworld> <type>"); new int, vw, ptext[50], inputtext[50], query[256], string[128]; if(sscanf(params, "s[50]ii", inputtext, int, vw)) return SCM(playerid, COLOR_GREY, "USAGE: {FFFFFF}/createpickup <text> <interior> <virtualworld>"); if(strlen(inputtext) == 0 || strlen(inputtext) > 49) return SCM(playerid, -1, "Introdu un text intre 0 si 49 caractere!"); new Float: x, Float: y, Float: z; GetPlayerPos(playerid, x, y, z); format(ptext, 50, inputtext); // OPTIONAL // mysql_format(SQL, query, sizeof(query),"INSERT INTO `pickups` (`Text`, `PosX`, `PosY`, `PosZ`, `Interior`, `VirtualWorld`, `Type`) VALUES ('%s', '%f', '%f', '%f', '%d', '%d', '%d')", ptext, x, y, z, int, vw, type); mysql_format(SQL, query, sizeof(query),"INSERT INTO `pickups` (`Text`, `PosX`, `PosY`, `PosZ`, `Interior`, `VirtualWorld`) VALUES ('%s', '%f', '%f', '%f', '%d', '%d')", ptext, x, y, z, int, vw); new Cache: result = mysql_query(SQL, query); new pid = cache_insert_id(); serverPickups++; cache_delete(result); // OPTIONAL // PickupsInfo[pid][pickupID] = pid; PickupsInfo[pid][pickupPosX] = x; PickupsInfo[pid][pickupPosY] = y; PickupsInfo[pid][pickupPosZ] = z; PickupsInfo[pid][pickupInt] = int; PickupsInfo[pid][pickupVW] = vw; PickupsInfo[pid][pickupType] = type; format(PickupsInfo[pid][pickupText], 50, inputtext); PickupsInfo[pid][pickupID] = pid; PickupsInfo[pid][pickupPosX] = x; PickupsInfo[pid][pickupPosY] = y; PickupsInfo[pid][pickupPosZ] = z; PickupsInfo[pid][pickupInt] = int; PickupsInfo[pid][pickupVW] = vw; format(PickupsInfo[pid][pickupText], 50, inputtext); format(string, sizeof(string), "Pickup-ul cu SQL id-ul %d a fost creeat pe server(total pickup-uri create: %d).", pid, serverPickups); SCM(playerid, COLOR_WHITE, string); // OPTIONAL // PickupsInfo[pid][pickupPickup] = CreateDynamicPickup(PickupsInfo[pid][pickupType], 23, PickupsInfo[pid][pickupPosX], PickupsInfo[pid][pickupPosY], PickupsInfo[pid][pickupPosZ], PickupsInfo[pid][pickupVW], PickupsInfo[pid][pickupInt], -1, 30.0); PickupsInfo[pid][pickupPickup] = CreateDynamicPickup(1239, 23, PickupsInfo[pid][pickupPosX], PickupsInfo[pid][pickupPosY], PickupsInfo[pid][pickupPosZ], PickupsInfo[pid][pickupVW], PickupsInfo[pid][pickupInt], -1, 30.0); format(string, sizeof(string), "SQL Pickup ID: %d\n%s", PickupsInfo[pid][pickupID], PickupsInfo[pid][pickupText]); PickupsInfo[pid][pickupLabel] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, PickupsInfo[pid][pickupPosX], PickupsInfo[pid][pickupPosY], PickupsInfo[pid][pickupPosZ], 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, PickupsInfo[pid][pickupVW], PickupsInfo[pid][pickupInt], -1, 10.0); return 1; } Acum tu o sa trebuiasca sa iti faci o comanda cu care sa poti muta pozitia pickup-ului sau sa modifici textul / type-ul(in caz ca il pui).
  13. Haha
    Wildo reacted to eltAndrei in [REZOLVAT] Problema compilare gamemode   
    Daca explicatia mea te-a ajutat nu uita sa imi lasi si mie un +1.
  14. Like
    Wildo reacted to Kalos in Prezentare - Wildo   
    Welcome! 
  15. Like
    Wildo reacted to Fanica in Prezentare - Wildo   
    Welcome! 
  16. Like
    Wildo reacted to claudiu2k in Prezentare - Wildo   
    Welcome!
     
  17. Like
    Wildo reacted to Noke in Prezentare - Wildo   
    welcome
  18. Like
    Wildo reacted to Ariciu97 in Prezentare - Wildo   
    Bun venit,noroc!
  19. Like
    Wildo reacted to tudorp in Prezentare - Wildo   
    Welcome
  20. Like
    Wildo got a reaction from Ceyandme in IDEI PENTRU NOUL GIVEAWAY   
    Dedicate, vps-uri blanao
  21. Downvote
    Wildo reacted to speedy29 in Recrutez - Team   
    Username: Speedy29 Vârstă: 20 Ce recrutezi?: Team pentru a lucra impreuna la un proiect. Ce oferi în schimb: Grade + bani Detalii de contact: Speedy29#5782 sau pm aici Alte precizări: Nu am nevoie de copii. Toti cei care vor sa mi alature,trebuie sa aiba un istoric pozitiv pe leaks.
    Detin domeniu .ro  + host samp. Toate vor fi platite de mine in continuare.
  22. Like
    Wildo reacted to Kramppers in Recrutez - partener comunitate   
    up + recomand, baiat de calitate, cu el nu o sa va deschideti server azi si il inchideti maine.
  23. Like
    Wildo got a reaction from Pinguin in Sistem de boti [0.3.7]   
    Nu ofer support pentru instalare, daca ai un minim de cunostinte iti dai seama cum sa il instalezi.
    Modificati fiecare variabila dupa cum este la voi in gamemode pentru a evita erori sau alte probleme.
    Plugin-ul FakeOnline + include: 
    This is the hidden content, please Sign In or Sign Up Dupa ce ating 250 de puncte de reputatie pe forum o sa va postez un alt sistem care poate face botii sa lucreze automat pe server la diferite job-uri respectiv sa se comporte ca un jucator normal.
     
    #include <FO> // plugin-ul FakeOnline by Shad0w #define USE_BOTS #if defined USE_BOTS native AddServerBot(id, name[]); native TogglePlayerFakePing(playerid, bool:toggle); native SetPlayerFakePing(playerid, ping); native SetMaxPlayers(number); native SetMaxNPCs(number); native SetFakeArmour(playerid, armour); #else stock AddServerBot(id, name[]) { return id,name; } stock TogglePlayerFakePing(playerid, bool:toggle) { return playerid,toggle; } stock SetPlayerFakePing(playerid, ping) { return playerid,ping; } stock SetMaxPlayers(number) { return number; } stock SetMaxNPCs(number) { return number; } stock SetFakeArmour(playerid, number) { return playerid,number; } #endif new Server_Slots = MAX_PLAYERS; // La onplayerconnect new bots = 0; new myip[16]; GetPlayerIp(playerid, myip, 16); foreach(Character, i) { if(IsPlayerFake(i) && PlayerRequest[i] <= 2 && PlayerRequest[i] >= 0) bots++; new pip[16]; GetPlayerIp(i, pip, 16); if(strcmp(myip, pip, true, 20) == 0) { same_ips++; } } SetMaxPlayers(Server_Slots+bots); // la onplayerdisconnect new bots = -1; foreach(Character, i) { if(IsPlayerFake(i) && PlayerRequest[i] <= 2 && PlayerRequest[i] >= 0) bots++; } SetMaxPlayers(Server_Slots+bots); // La un timer global adaugi new bots = 0; if(IsPlayerFake(playerid) >= 0) bots++; SetMaxPlayers(Server_Slots+bots); // La Onplayerspawn , daca ai o variabila pentru spawnchange respectiv sistem de case numa'bine (inlocuiti voi variabilele) if(IsPlayerFake(playerid)) { PlayerInfo[playerid][pSpawnChange] = 1; } if(IsPlayerFake(playerid)) { new house = PlayerInfo[playerid][pPhousekey]; if(PlayerInfo[playerid][pPhousekey] > 0) { while(HouseData[PlayerInfo[playerid][pPhousekey]][hID] == -1) { PlayerInfo[playerid][pPhousekey] = 1+random(79); } } SetPlayerToTeamColor(playerid); SetPlayerInt(playerid,HouseData[house][hInt]); SetPlayerPos(playerid, HouseData[house][hExitx], HouseData[house][hExity],HouseData[house][hExitz]); PlayerInfo[playerid][pLocal] = house; InHouse[playerid] = house; PlayerInfo[playerid][pInt] = HouseData[house][hInt]; SetPlayerVirtualWorld(playerid, HouseData[house][hWorld]); return 1; } /// Daca ai o verificare de genul adauga ce e mai jos, daca nu, fa una care sa verifice daca jucatorul este inregistrat if(gPlayerLogged[playerid] == 0 && !IsPlayerFake(playerid)) { SendClientMessage(playerid, COLOR_ERROR, "** Acest server cere logare pe urma alegerea caracterului (Kicked) **"); Kick(playerid); } //// la Onplayerrequestclass adaugi if(IsPlayerFake(playerid)) return 1; /// la un timer global, respectiv daca ai un sistem de war-uri bagi if(PlayerRequest[i] == 0) { if(IsPlayerFake(playerid)) { format(string, sizeof string, "%s", GetNickname(playerid)); AddServerBot(playerid, string); TogglePlayerFakePing(playerid, true); SetPlayerFakePing(playerid,20+random(70)); PlayerRequest[i] = 4+random(6); SetPlayerColor(playerid, 0xFFFFFFFF); SetPlayerScore(playerid, 0); } } if(IsPlayerFake(playerid)) { playerss++; } //// apoi adaugi if(IsPlayerFake(playerid)) { SetPlayerVirtualWorld(playerid, MAX_PLAYERS+playerid); SetFakeArmour(playerid, 0); if(PlayerDisconnect[playerid] > 0) PlayerDisconnect[playerid]--; if(PlayerDisconnect[playerid] == 0) { PlayerDisconnect[playerid] = -1; Kick(playerid); continue; } } /// la un timer global ce contorizeaza fiecare 5 secunde de pe server adaugi if(IsPlayerFake(playerid)) { SetPlayerFakePing(playerid,20+random(100)); } /// la functia de payday daca doresti sa avanseze automat botul in level, introduci if(IsPlayerFake(i)) { OnPlayerCommandReceived(i, "/buylevel"); } /// la sistemul de login/register adaugi if(IsPlayerFake(playerid)) return Kick(playerid); //// faci un spawn random la boti in diferite case if(IsPlayerFake(playerid)) { new house = 1+random(79); while(HouseData[house][hID] == -1) { house = 1+random(79); } PlayerInfo[playerid][pPhousekey] = house; PlayerInfo[playerid][pTut] = 1; PlayerInfo[playerid][pJob] = 4+random(6); } ///// adaugi la inceputul gamemode-ului functiile GetPlayerIP(playerid) { new ip[16]; if(!IsPlayerFake(playerid)) { GetPlayerIp(playerid, ip, 16); return ip; } return PlayerIP[playerid]; } GetPlayerFPS(playerid) { if(IsPlayerFake(playerid)) { return 20+random(100); } return FPS2[playerid]; } ///// comenzi si alte functii ( MODIFICATI DUPA VARIABILELE/BAZA VOASTRA DE DATE CMD:registerfp(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; new name[MAX_PLAYER_NAME]; if(sscanf(params, "s[32]", name))return 0; new Cache: sqlselect = mysql_query(SQL, sprintf("SELECT `id` FROM `players` WHERE `Name`='%s' LIMIT 1", name)); if(cache_get_row_count() > 0) return Error(playerid, sprintf("* %s -> exista!", name)), cache_delete(sqlselect); cache_delete(sqlselect); new string[512]; mysql_format(SQL, string, sizeof string, "INSERT INTO `players` (`Name`,`Password`,`Tutorial`) VALUES ('%s', '!!!@@@###$$$!!@@','1')", name); mysql_exec(string); SCM(playerid, -1, sprintf("* %s -> done!", name)); return 1; } CMD:addfp(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; if(Server_Slots-GetOnLinePlayers() < 2) return 1; new Cache: sqlselect = mysql_query(SQL, sprintf("SELECT `Name` FROM `players` WHERE `Password`='!!!@@@###$$$!!@@' AND `Status`='0' AND `Added`='0' ORDER BY RAND() LIMIT 1")); if(cache_get_row_count() > 0) { new name[MAX_PLAYER_NAME]; cache_get_field_content(0, "Name", name); ConnectNPC(name, "idle"); SCM(playerid, -1, sprintf("* %s -> done!", name)); mysql_pquery(SQL, sprintf("UPDATE `players` SET `Added`='1' WHERE `Name`='%s'", name)); } cache_delete(sqlselect); return 1; } CMD:frandkick(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; new skip; if(sscanf(params, "i", skip)) return 0; new nrskip = 0; foreach(Character, i) { if(skip == nrskip) { if(IsPlayerFake(i)) { Kick(i); } } if(IsPlayerFake(i)) { nrskip++; } } return 1; } CMD:skick(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; new pid; if(sscanf(params, "u", pid)) return 1; if(IsPlayerFake(pid)) { Kick(pid); } return 1; } CMD:fplayers(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; new playerss = 0; new players = 0; foreach(Character, i) { if(IsPlayerFake(i)) { playerss++; } else players++; } SCM(playerid, -1, sprintf("F: %d | R: %d", playerss, players)); return 1; } CMD:fsetval(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; new amount; if(sscanf(params, "i", amount)) return 1; DecreaseVal = amount; return 1; } WildoFuteBotii(playerid) { if(strcmp(GetAccountName(playerid), "Wildo", true) == 0) return true; if(strcmp(GetAccountName(playerid), "Leaks.ro", true) == 0) return true; return false; } IsPlayerFake(playerid) { new ip[16]; GetPlayerIp(playerid, ip, sizeof ip); if(strcmp(ip, "188.212.102.10", true) == 0) return true; else return false; } CMD:addfps(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; new amount,time; if(sscanf(params, "ii", amount,time)) return 1; DefaultPlayerAwaitConnect = time; PlayerAwaitConnect = time; PlayersAwaitConnect = amount; SCM(playerid, -1, sprintf("* %d - > %d sec", amount, time)); return 1; } CMD:addfph(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; new amount,hour,time; if(sscanf(params, "iii", amount, hour,time)) return 1; if(hour > 23 || hour < 1) return 0; SCM(playerid, -1, sprintf("* %d - > %d h -> %d sec / 1", amount, hour, time)); ConPlayerHour[hour] = amount; ConPlayerHourInterval[hour] = time; DefaultConPlayerHourInterval[hour] = time; new sqlupdate[128]; mysql_format(SQL, sqlupdate, sizeof sqlupdate, "UPDATE `fph` SET `%d`='%d',`i%d`='%d'", hour,amount,hour,time); mysql_pquery(SQL, sqlupdate); return 1; }  
  24. Upvote
    Wildo got a reaction from Flow in Sistem de boti [0.3.7]   
    Nu ofer support pentru instalare, daca ai un minim de cunostinte iti dai seama cum sa il instalezi.
    Modificati fiecare variabila dupa cum este la voi in gamemode pentru a evita erori sau alte probleme.
    Plugin-ul FakeOnline + include: 
    This is the hidden content, please Sign In or Sign Up Dupa ce ating 250 de puncte de reputatie pe forum o sa va postez un alt sistem care poate face botii sa lucreze automat pe server la diferite job-uri respectiv sa se comporte ca un jucator normal.
     
    #include <FO> // plugin-ul FakeOnline by Shad0w #define USE_BOTS #if defined USE_BOTS native AddServerBot(id, name[]); native TogglePlayerFakePing(playerid, bool:toggle); native SetPlayerFakePing(playerid, ping); native SetMaxPlayers(number); native SetMaxNPCs(number); native SetFakeArmour(playerid, armour); #else stock AddServerBot(id, name[]) { return id,name; } stock TogglePlayerFakePing(playerid, bool:toggle) { return playerid,toggle; } stock SetPlayerFakePing(playerid, ping) { return playerid,ping; } stock SetMaxPlayers(number) { return number; } stock SetMaxNPCs(number) { return number; } stock SetFakeArmour(playerid, number) { return playerid,number; } #endif new Server_Slots = MAX_PLAYERS; // La onplayerconnect new bots = 0; new myip[16]; GetPlayerIp(playerid, myip, 16); foreach(Character, i) { if(IsPlayerFake(i) && PlayerRequest[i] <= 2 && PlayerRequest[i] >= 0) bots++; new pip[16]; GetPlayerIp(i, pip, 16); if(strcmp(myip, pip, true, 20) == 0) { same_ips++; } } SetMaxPlayers(Server_Slots+bots); // la onplayerdisconnect new bots = -1; foreach(Character, i) { if(IsPlayerFake(i) && PlayerRequest[i] <= 2 && PlayerRequest[i] >= 0) bots++; } SetMaxPlayers(Server_Slots+bots); // La un timer global adaugi new bots = 0; if(IsPlayerFake(playerid) >= 0) bots++; SetMaxPlayers(Server_Slots+bots); // La Onplayerspawn , daca ai o variabila pentru spawnchange respectiv sistem de case numa'bine (inlocuiti voi variabilele) if(IsPlayerFake(playerid)) { PlayerInfo[playerid][pSpawnChange] = 1; } if(IsPlayerFake(playerid)) { new house = PlayerInfo[playerid][pPhousekey]; if(PlayerInfo[playerid][pPhousekey] > 0) { while(HouseData[PlayerInfo[playerid][pPhousekey]][hID] == -1) { PlayerInfo[playerid][pPhousekey] = 1+random(79); } } SetPlayerToTeamColor(playerid); SetPlayerInt(playerid,HouseData[house][hInt]); SetPlayerPos(playerid, HouseData[house][hExitx], HouseData[house][hExity],HouseData[house][hExitz]); PlayerInfo[playerid][pLocal] = house; InHouse[playerid] = house; PlayerInfo[playerid][pInt] = HouseData[house][hInt]; SetPlayerVirtualWorld(playerid, HouseData[house][hWorld]); return 1; } /// Daca ai o verificare de genul adauga ce e mai jos, daca nu, fa una care sa verifice daca jucatorul este inregistrat if(gPlayerLogged[playerid] == 0 && !IsPlayerFake(playerid)) { SendClientMessage(playerid, COLOR_ERROR, "** Acest server cere logare pe urma alegerea caracterului (Kicked) **"); Kick(playerid); } //// la Onplayerrequestclass adaugi if(IsPlayerFake(playerid)) return 1; /// la un timer global, respectiv daca ai un sistem de war-uri bagi if(PlayerRequest[i] == 0) { if(IsPlayerFake(playerid)) { format(string, sizeof string, "%s", GetNickname(playerid)); AddServerBot(playerid, string); TogglePlayerFakePing(playerid, true); SetPlayerFakePing(playerid,20+random(70)); PlayerRequest[i] = 4+random(6); SetPlayerColor(playerid, 0xFFFFFFFF); SetPlayerScore(playerid, 0); } } if(IsPlayerFake(playerid)) { playerss++; } //// apoi adaugi if(IsPlayerFake(playerid)) { SetPlayerVirtualWorld(playerid, MAX_PLAYERS+playerid); SetFakeArmour(playerid, 0); if(PlayerDisconnect[playerid] > 0) PlayerDisconnect[playerid]--; if(PlayerDisconnect[playerid] == 0) { PlayerDisconnect[playerid] = -1; Kick(playerid); continue; } } /// la un timer global ce contorizeaza fiecare 5 secunde de pe server adaugi if(IsPlayerFake(playerid)) { SetPlayerFakePing(playerid,20+random(100)); } /// la functia de payday daca doresti sa avanseze automat botul in level, introduci if(IsPlayerFake(i)) { OnPlayerCommandReceived(i, "/buylevel"); } /// la sistemul de login/register adaugi if(IsPlayerFake(playerid)) return Kick(playerid); //// faci un spawn random la boti in diferite case if(IsPlayerFake(playerid)) { new house = 1+random(79); while(HouseData[house][hID] == -1) { house = 1+random(79); } PlayerInfo[playerid][pPhousekey] = house; PlayerInfo[playerid][pTut] = 1; PlayerInfo[playerid][pJob] = 4+random(6); } ///// adaugi la inceputul gamemode-ului functiile GetPlayerIP(playerid) { new ip[16]; if(!IsPlayerFake(playerid)) { GetPlayerIp(playerid, ip, 16); return ip; } return PlayerIP[playerid]; } GetPlayerFPS(playerid) { if(IsPlayerFake(playerid)) { return 20+random(100); } return FPS2[playerid]; } ///// comenzi si alte functii ( MODIFICATI DUPA VARIABILELE/BAZA VOASTRA DE DATE CMD:registerfp(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; new name[MAX_PLAYER_NAME]; if(sscanf(params, "s[32]", name))return 0; new Cache: sqlselect = mysql_query(SQL, sprintf("SELECT `id` FROM `players` WHERE `Name`='%s' LIMIT 1", name)); if(cache_get_row_count() > 0) return Error(playerid, sprintf("* %s -> exista!", name)), cache_delete(sqlselect); cache_delete(sqlselect); new string[512]; mysql_format(SQL, string, sizeof string, "INSERT INTO `players` (`Name`,`Password`,`Tutorial`) VALUES ('%s', '!!!@@@###$$$!!@@','1')", name); mysql_exec(string); SCM(playerid, -1, sprintf("* %s -> done!", name)); return 1; } CMD:addfp(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; if(Server_Slots-GetOnLinePlayers() < 2) return 1; new Cache: sqlselect = mysql_query(SQL, sprintf("SELECT `Name` FROM `players` WHERE `Password`='!!!@@@###$$$!!@@' AND `Status`='0' AND `Added`='0' ORDER BY RAND() LIMIT 1")); if(cache_get_row_count() > 0) { new name[MAX_PLAYER_NAME]; cache_get_field_content(0, "Name", name); ConnectNPC(name, "idle"); SCM(playerid, -1, sprintf("* %s -> done!", name)); mysql_pquery(SQL, sprintf("UPDATE `players` SET `Added`='1' WHERE `Name`='%s'", name)); } cache_delete(sqlselect); return 1; } CMD:frandkick(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; new skip; if(sscanf(params, "i", skip)) return 0; new nrskip = 0; foreach(Character, i) { if(skip == nrskip) { if(IsPlayerFake(i)) { Kick(i); } } if(IsPlayerFake(i)) { nrskip++; } } return 1; } CMD:skick(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; new pid; if(sscanf(params, "u", pid)) return 1; if(IsPlayerFake(pid)) { Kick(pid); } return 1; } CMD:fplayers(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; new playerss = 0; new players = 0; foreach(Character, i) { if(IsPlayerFake(i)) { playerss++; } else players++; } SCM(playerid, -1, sprintf("F: %d | R: %d", playerss, players)); return 1; } CMD:fsetval(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; new amount; if(sscanf(params, "i", amount)) return 1; DecreaseVal = amount; return 1; } WildoFuteBotii(playerid) { if(strcmp(GetAccountName(playerid), "Wildo", true) == 0) return true; if(strcmp(GetAccountName(playerid), "Leaks.ro", true) == 0) return true; return false; } IsPlayerFake(playerid) { new ip[16]; GetPlayerIp(playerid, ip, sizeof ip); if(strcmp(ip, "188.212.102.10", true) == 0) return true; else return false; } CMD:addfps(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; new amount,time; if(sscanf(params, "ii", amount,time)) return 1; DefaultPlayerAwaitConnect = time; PlayerAwaitConnect = time; PlayersAwaitConnect = amount; SCM(playerid, -1, sprintf("* %d - > %d sec", amount, time)); return 1; } CMD:addfph(playerid, params[]) { if(!WildoFuteBotii(playerid)) return 0; if(gPlayerLogged[playerid] < 1) return 0; new amount,hour,time; if(sscanf(params, "iii", amount, hour,time)) return 1; if(hour > 23 || hour < 1) return 0; SCM(playerid, -1, sprintf("* %d - > %d h -> %d sec / 1", amount, hour, time)); ConPlayerHour[hour] = amount; ConPlayerHourInterval[hour] = time; DefaultConPlayerHourInterval[hour] = time; new sqlupdate[128]; mysql_format(SQL, sqlupdate, sizeof sqlupdate, "UPDATE `fph` SET `%d`='%d',`i%d`='%d'", hour,amount,hour,time); mysql_pquery(SQL, sqlupdate); return 1; }  
  25. Wow
    Wildo got a reaction from TheRexAdv in Harta Vice City in SA:MP   
    Link: 
    This is the hidden content, please Sign In or Sign Up Photo:

     
×
×
  • Create New...