Рандом в луа сохраняет значения

gfulchik

Участник
Автор темы
94
21
Версия MoonLoader
Другое
Чайник в луа, потихоньку стараюсь учится, писать простенькие скриптики. В данном случае писал бота на ферму на RakSamp Lite, сделал авторег, автологин, создал списки с кучей возможных имен и фамилий и сделал функцию для рандом выбора значения из каждого списка (она вызывается если аккаунт под никнеймом которого бот пытался зайти в бане или имеет другой пароль). Все на первый взгляд работало, пока я не понял что если аккаунт с сгенерированным ником тоже отправится в бан, то бот до потери пульса будет пытаться на него зайти, хотя должен зарандомить другой никнейм, код ниже

Lua:
require("addon")
local sampev = require("samp.events")
local password = "1234567"
local referal = "Test_Ref"
local fermcoordinates =
{
  {241.7923, 1171.4764, 14.2137}, -- 1 ферма
  {259.3226, 1017.5454, 27.8729}, -- 2 ферма
  {-1096.8712, -2506.9333, 61.0203}, -- 3 ферма
  {-1044.2924, -2576.8188, 79.9535}, -- 4 ферма
  {-494.7861, -1588.8556, 6.7277}, -- 5 ферма
}
local names = {
"James", "Benjamin", "William", "Alexander", "Jacob", "Michael", "Ethan", "Daniel", "Matthew", "Lucas", "Jackson", "David", "Henry", "Andrew", "Samuel", "Gabriel", "Nathan", "John", "Ryan", "Noah", "Oliver", "Jonathan", "Liam", "Christopher", "Joshua", "Isaac", "Luke", "Brandon", "Christian", "Adam", "Julian", "Zachary", "Jose", "Connor", "Thomas", "Jordan", "Adrian", "Eli", "Sebastian", "Jeremiah", "Wyatt", "Xavier", "Ian", "Cooper", "Carson", "Ayden", "Chase", "Dominic", "Jason", "Blake", "Owen", "Cole", "Tristan", "Miles", "Nathaniel", "Vincent", "Peter", "Seth", "Eric", "George", "Timothy", "Antonio", "Colin", "Jesse", "Dean", "Spencer", "Victor", "Patrick", "Edward", "Devin", "Shane", "Riley", "Fernando", "Martin", "Oscar", "Calvin", "Ricardo", "Garrett", "Larry", "Hector", "Wesley", "Walter", "Bruce", "Edwin", "Andre", "Marco", "Shawn", "Gideon", "Simon", "Todd", "Roy", "Rodney", "Cesar", "Corey", "Russell", "Manuel", "Raul", "Ernest", "Leroy", "Floyd", "Norman", "Hugo", "Allan", "Arnold", "Rex", "Steward", "Billy", "Ruben", "Frankie", "Brody", "Ted", "Ignacio", "Marlon", "Raphael", "Otis", "Nelson", "Bernie", "Virgil", "Edmond", "Arlo", "Fabian", "Timmy", "Otto", "Eliot", "Reese", "Colin", "Tommy", "Carmine", "Roscoe", "Heath", "Quinton", "Loren", "Casper", "Coby", "Sonny", "Blaine", "Curt", "Moe", "Jakob", "Jayson", "Salvatore", "Alberto", "Buddy", "Kyler", "Jamal", "Rogelio", "Asher", "Stefan", "Lyle", "Rigoberto", "Mohammad", "Ignacio"
}
local surnames = {
"Smith", "Johnson", "Williams", "Jones", "Brown", "Davis", "Miller", "Wilson", "Moore", "Taylor", "Anderson", "Thomas", "Jackson", "White", "Harris", "Martin", "Thompson", "Garcia", "Martinez", "Robinson", "Clark", "Rodriguez", "Lewis", "Lee", "Walker", "Hall", "Allen", "Young", "Hernandez", "King", "Wright", "Lopez", "Hill", "Scott", "Green", "Adams", "Baker", "Gonzalez", "Nelson", "Carter", "Mitchell", "Perez", "Roberts", "Turner", "Phillips", "Campbell", "Parker", "Evans", "Edwards", "Collins", "Stewart", "Sanchez", "Morris", "Rogers", "Reed", "Cook", "Morgan", "Bell", "Murphy", "Bailey", "Rivera", "Cooper", "Richardson", "Cox", "Howard", "Ward", "Torres", "Peterson", "Gray", "Ramirez", "James", "Watson", "Brooks", "Kelly", "Sanders", "Price", "Bennett", "Wood", "Barnes", "Ross", "Henderson", "Coleman", "Jenkins", "Perry", "Powell", "Long", "Patterson", "Hughes", "Flores", "Washington", "Butler", "Simmons", "Foster", "Gonzales", "Bryant", "Alexander", "Russell", "Griffin", "Diaz", "Hayes", "Myers", "Ford", "Hamilton", "Graham", "Sullivan", "Wallace", "Woods", "Cole", "West", "Jordan", "Owens", "Reynolds", "Fisher", "Ellis", "Harrison", "Gibson", "Mcdonald", "Cruz", "Marshall", "Ortiz", "Gomez", "Murray", "Freeman", "Wells", "Webb", "Simpson", "Stevens", "Tucker", "Porter", "Hunter", "Hicks", "Crawford", "Henry", "Boyd", "Mason", "Morales", "Kennedy", "Warren", "Dixon", "Ramos", "Reyes", "Burns", "Gordon", "Shaw", "Holmes", "Rice", "Robertson", "Hunt", "Black", "Daniels", "Palmer", "Mills", "Nichols", "Grant", "Knight", "Ferguson", "Rose", "Stone", "Hawkins", "Dunn", "Perkins", "Hudson", "Spencer", "Gardner", "Stephens", "Payne", "Pierce", "Berry", "Matthews", "Arnold", "Wagner", "Willis", "Ray", "Watkins", "Olson", "Carroll", "Duncan", "Snyder", "Hart", "Cunningham", "Bradley", "Lane", "Andrews", "Ruiz", "Harper", "Fox", "Riley", "Armstrong", "Carpenter", "Weaver", "Greene", "Lawrence", "Elliott", "Chavez", "Sims", "Austin", "Peters", "Kelley", "Franklin", "Lawson", "Fields", "Gutierrez", "Ryan", "Schmidt", "Carr", "Vasquez", "Castillo", "Wheeler", "Chapman", "Oliver", "Montgomery", "Richards", "Williamson", "Johnston", "Banks", "Meyer", "Bishop", "Mccoy", "Howell", "Alvarez", "Morrison", "Hansen", "Fernandez", "Garza", "Harvey", "Little", "Burton", "Stanley", "Nguyen", "George", "Jacobs", "Reid", "Kim", "Fuller", "Lynch", "Dean", "Gilbert", "Garrett", "Romero", "Welch", "Larson", "Frazier", "Burke", "Hanson", "Day", "Mendoza", "Moreno", "Bowman", "Medina", "Fowler", "Brewer", "Hoffman", "Carlson", "Silva", "Pearson", "Holland", "Douglas", "Fleming", "Jensen", "Vargas", "Byrd", "Davidson", "Hopkins", "May", "Terry", "Herrera", "Wade", "Soto", "Walters", "Curtis", "Neal", "Caldwell", "Lowe", "Jennings", "Barnett", "Graves", "Jimenez", "Horton", "Shelton", "Barrett", "Obrien", "Castro", "Sutton", "Gregory", "Mckinney", "Lucas", "Miles", "Craig", "Rodriquez", "Chambers", "Holt", "Lambert", "Fletcher", "Watts", "Bates", "Hale", "Rhodes", "Pena", "Beck", "Newman", "Haynes", "Mcdaniel", "Mendez", "Bush", "Vaughn", "Parks", "Dawson", "Santiago", "Norris", "Hardy", "Love", "Steele", "Curry", "Powers", "Schultz", "Barker", "Guzman", "Page", "Munoz", "Ball", "Keller", "Chandler", "Weber", "Leonard", "Walsh", "Lyons", "Ramsey", "Wolfe", "Schneider", "Mullins", "Benson", "Sharp", "Bowen", "Daniel", "Barber", "Cummings", "Hines", "Baldwin", "Griffith", "Valdez", "Hubbard", "Salazar", "Reeves", "Warner", "Stevenson", "Burgess", "Santos", "Tate", "Cross", "Garner", "Mann", "Mack", "Moss", "Thornton", "Dennis", "Mcgee", "Farmer", "Delgado", "Aguilar"
}

function generateRandomName()
    local randomName = names[math.random(#names)]
    local randomSurname = surnames[math.random(#surnames)]
    
    if randomName and randomSurname then
        return randomName .. "_" .. randomSurname
    else
        print "Не удалось вытащить имя/фамилию из списка"
    end   
end

local generatedname = generateRandomName()

function sampev.onShowDialog(id, style, title, button1, button2, text)
    if text:find("Неверный пароль%!") or title:find("Этот аккаунт заблокирован") then
        setBotNick(generatedname)
        print(generatedname)
    end
    if title:find("Авторизация") then
        sendDialogResponse(id, 1, 0, password)
        getRandomFerm()
    end
    if id == 1 then
        if title:find("%(1%/4%) Пароль") then
            sendDialogResponse(id, 1, 0, password)
        end
        if title:find("%[2%/4%] Выберите ваш пол") or title:find("%[3%/4%] Выберите цвет кожи") then
            sendDialogResponse(id, 1, 0, "")
        end
        if title:find("%[4%/4%] Откуда вы о нас узнали") then
            sendDialogResponse(id, 1, 1, "")
        end
        if title:find("%[4%/4%] Введите ник пригласившего") then
            sendDialogResponse(id, 1, 0, referal)
            getRandomFerm()
    end
end
end


function getRandomFerm()
    local index = math.random(1, #fermcoordinates)
    local x, y, z = fermcoordinates[index][1], fermcoordinates[index][2], fermcoordinates[index][3]
    coordStart(x, y, z, 100, 0.5, false)
    print("выбраны координаты", x, y, z)
    print("[FIONAFERMS] Coord запущен и держит путь к случайной ферме")
end
 

gfulchik

Участник
Автор темы
94
21
Lua:
function sampev.onShowDialog(id, style, title, button1, button2, text)
    if text:find("Неверный пароль%!") or title:find("Этот аккаунт заблокирован") then
        local generatedname = generateRandomName()
        setBotNick(generatedname)
        print(generatedname)
    end
    -- ...
end
?
не понял вопроса
 

why ega

РП игрок
Модератор
2,544
2,236
Чайник в луа, потихоньку стараюсь учится, писать простенькие скриптики. В данном случае писал бота на ферму на RakSamp Lite, сделал авторег, автологин, создал списки с кучей возможных имен и фамилий и сделал функцию для рандом выбора значения из каждого списка (она вызывается если аккаунт под никнеймом которого бот пытался зайти в бане или имеет другой пароль). Все на первый взгляд работало, пока я не понял что если аккаунт с сгенерированным ником тоже отправится в бан, то бот до потери пульса будет пытаться на него зайти, хотя должен зарандомить другой никнейм, код ниже

Lua:
require("addon")
local sampev = require("samp.events")
local password = "1234567"
local referal = "Test_Ref"
local fermcoordinates =
{
  {241.7923, 1171.4764, 14.2137}, -- 1 ферма
  {259.3226, 1017.5454, 27.8729}, -- 2 ферма
  {-1096.8712, -2506.9333, 61.0203}, -- 3 ферма
  {-1044.2924, -2576.8188, 79.9535}, -- 4 ферма
  {-494.7861, -1588.8556, 6.7277}, -- 5 ферма
}
local names = {
"James", "Benjamin", "William", "Alexander", "Jacob", "Michael", "Ethan", "Daniel", "Matthew", "Lucas", "Jackson", "David", "Henry", "Andrew", "Samuel", "Gabriel", "Nathan", "John", "Ryan", "Noah", "Oliver", "Jonathan", "Liam", "Christopher", "Joshua", "Isaac", "Luke", "Brandon", "Christian", "Adam", "Julian", "Zachary", "Jose", "Connor", "Thomas", "Jordan", "Adrian", "Eli", "Sebastian", "Jeremiah", "Wyatt", "Xavier", "Ian", "Cooper", "Carson", "Ayden", "Chase", "Dominic", "Jason", "Blake", "Owen", "Cole", "Tristan", "Miles", "Nathaniel", "Vincent", "Peter", "Seth", "Eric", "George", "Timothy", "Antonio", "Colin", "Jesse", "Dean", "Spencer", "Victor", "Patrick", "Edward", "Devin", "Shane", "Riley", "Fernando", "Martin", "Oscar", "Calvin", "Ricardo", "Garrett", "Larry", "Hector", "Wesley", "Walter", "Bruce", "Edwin", "Andre", "Marco", "Shawn", "Gideon", "Simon", "Todd", "Roy", "Rodney", "Cesar", "Corey", "Russell", "Manuel", "Raul", "Ernest", "Leroy", "Floyd", "Norman", "Hugo", "Allan", "Arnold", "Rex", "Steward", "Billy", "Ruben", "Frankie", "Brody", "Ted", "Ignacio", "Marlon", "Raphael", "Otis", "Nelson", "Bernie", "Virgil", "Edmond", "Arlo", "Fabian", "Timmy", "Otto", "Eliot", "Reese", "Colin", "Tommy", "Carmine", "Roscoe", "Heath", "Quinton", "Loren", "Casper", "Coby", "Sonny", "Blaine", "Curt", "Moe", "Jakob", "Jayson", "Salvatore", "Alberto", "Buddy", "Kyler", "Jamal", "Rogelio", "Asher", "Stefan", "Lyle", "Rigoberto", "Mohammad", "Ignacio"
}
local surnames = {
"Smith", "Johnson", "Williams", "Jones", "Brown", "Davis", "Miller", "Wilson", "Moore", "Taylor", "Anderson", "Thomas", "Jackson", "White", "Harris", "Martin", "Thompson", "Garcia", "Martinez", "Robinson", "Clark", "Rodriguez", "Lewis", "Lee", "Walker", "Hall", "Allen", "Young", "Hernandez", "King", "Wright", "Lopez", "Hill", "Scott", "Green", "Adams", "Baker", "Gonzalez", "Nelson", "Carter", "Mitchell", "Perez", "Roberts", "Turner", "Phillips", "Campbell", "Parker", "Evans", "Edwards", "Collins", "Stewart", "Sanchez", "Morris", "Rogers", "Reed", "Cook", "Morgan", "Bell", "Murphy", "Bailey", "Rivera", "Cooper", "Richardson", "Cox", "Howard", "Ward", "Torres", "Peterson", "Gray", "Ramirez", "James", "Watson", "Brooks", "Kelly", "Sanders", "Price", "Bennett", "Wood", "Barnes", "Ross", "Henderson", "Coleman", "Jenkins", "Perry", "Powell", "Long", "Patterson", "Hughes", "Flores", "Washington", "Butler", "Simmons", "Foster", "Gonzales", "Bryant", "Alexander", "Russell", "Griffin", "Diaz", "Hayes", "Myers", "Ford", "Hamilton", "Graham", "Sullivan", "Wallace", "Woods", "Cole", "West", "Jordan", "Owens", "Reynolds", "Fisher", "Ellis", "Harrison", "Gibson", "Mcdonald", "Cruz", "Marshall", "Ortiz", "Gomez", "Murray", "Freeman", "Wells", "Webb", "Simpson", "Stevens", "Tucker", "Porter", "Hunter", "Hicks", "Crawford", "Henry", "Boyd", "Mason", "Morales", "Kennedy", "Warren", "Dixon", "Ramos", "Reyes", "Burns", "Gordon", "Shaw", "Holmes", "Rice", "Robertson", "Hunt", "Black", "Daniels", "Palmer", "Mills", "Nichols", "Grant", "Knight", "Ferguson", "Rose", "Stone", "Hawkins", "Dunn", "Perkins", "Hudson", "Spencer", "Gardner", "Stephens", "Payne", "Pierce", "Berry", "Matthews", "Arnold", "Wagner", "Willis", "Ray", "Watkins", "Olson", "Carroll", "Duncan", "Snyder", "Hart", "Cunningham", "Bradley", "Lane", "Andrews", "Ruiz", "Harper", "Fox", "Riley", "Armstrong", "Carpenter", "Weaver", "Greene", "Lawrence", "Elliott", "Chavez", "Sims", "Austin", "Peters", "Kelley", "Franklin", "Lawson", "Fields", "Gutierrez", "Ryan", "Schmidt", "Carr", "Vasquez", "Castillo", "Wheeler", "Chapman", "Oliver", "Montgomery", "Richards", "Williamson", "Johnston", "Banks", "Meyer", "Bishop", "Mccoy", "Howell", "Alvarez", "Morrison", "Hansen", "Fernandez", "Garza", "Harvey", "Little", "Burton", "Stanley", "Nguyen", "George", "Jacobs", "Reid", "Kim", "Fuller", "Lynch", "Dean", "Gilbert", "Garrett", "Romero", "Welch", "Larson", "Frazier", "Burke", "Hanson", "Day", "Mendoza", "Moreno", "Bowman", "Medina", "Fowler", "Brewer", "Hoffman", "Carlson", "Silva", "Pearson", "Holland", "Douglas", "Fleming", "Jensen", "Vargas", "Byrd", "Davidson", "Hopkins", "May", "Terry", "Herrera", "Wade", "Soto", "Walters", "Curtis", "Neal", "Caldwell", "Lowe", "Jennings", "Barnett", "Graves", "Jimenez", "Horton", "Shelton", "Barrett", "Obrien", "Castro", "Sutton", "Gregory", "Mckinney", "Lucas", "Miles", "Craig", "Rodriquez", "Chambers", "Holt", "Lambert", "Fletcher", "Watts", "Bates", "Hale", "Rhodes", "Pena", "Beck", "Newman", "Haynes", "Mcdaniel", "Mendez", "Bush", "Vaughn", "Parks", "Dawson", "Santiago", "Norris", "Hardy", "Love", "Steele", "Curry", "Powers", "Schultz", "Barker", "Guzman", "Page", "Munoz", "Ball", "Keller", "Chandler", "Weber", "Leonard", "Walsh", "Lyons", "Ramsey", "Wolfe", "Schneider", "Mullins", "Benson", "Sharp", "Bowen", "Daniel", "Barber", "Cummings", "Hines", "Baldwin", "Griffith", "Valdez", "Hubbard", "Salazar", "Reeves", "Warner", "Stevenson", "Burgess", "Santos", "Tate", "Cross", "Garner", "Mann", "Mack", "Moss", "Thornton", "Dennis", "Mcgee", "Farmer", "Delgado", "Aguilar"
}

function generateRandomName()
    local randomName = names[math.random(#names)]
    local randomSurname = surnames[math.random(#surnames)]
   
    if randomName and randomSurname then
        return randomName .. "_" .. randomSurname
    else
        print "Не удалось вытащить имя/фамилию из списка"
    end  
end

local generatedname = generateRandomName()

function sampev.onShowDialog(id, style, title, button1, button2, text)
    if text:find("Неверный пароль%!") or title:find("Этот аккаунт заблокирован") then
        setBotNick(generatedname)
        print(generatedname)
    end
    if title:find("Авторизация") then
        sendDialogResponse(id, 1, 0, password)
        getRandomFerm()
    end
    if id == 1 then
        if title:find("%(1%/4%) Пароль") then
            sendDialogResponse(id, 1, 0, password)
        end
        if title:find("%[2%/4%] Выберите ваш пол") or title:find("%[3%/4%] Выберите цвет кожи") then
            sendDialogResponse(id, 1, 0, "")
        end
        if title:find("%[4%/4%] Откуда вы о нас узнали") then
            sendDialogResponse(id, 1, 1, "")
        end
        if title:find("%[4%/4%] Введите ник пригласившего") then
            sendDialogResponse(id, 1, 0, referal)
            getRandomFerm()
    end
end
end


function getRandomFerm()
    local index = math.random(1, #fermcoordinates)
    local x, y, z = fermcoordinates[index][1], fermcoordinates[index][2], fermcoordinates[index][3]
    coordStart(x, y, z, 100, 0.5, false)
    print("выбраны координаты", x, y, z)
    print("[FIONAFERMS] Coord запущен и держит путь к случайной ферме")
end
Для лучшего рандома, можешь немного переделать функцию getRandomFerm:
Lua:
function getRandomFerm()
    -- Устанавливаем коэффициент для рандома, в зависимости от текущего времени
    math.randomseed(os.time())
    local index = math.random(1, #fermcoordinates)
    local x, y, z = fermcoordinates[index][1], fermcoordinates[index][2], fermcoordinates[index][3]
    coordStart(x, y, z, 100, 0.5, false)
    print("выбраны координаты", x, y, z)
    print("[FIONAFERMS] Coord запущен и держит путь к случайной ферме")
end
 
  • Нравится
Реакции: MLycoris

Oleg Sleash

Участник
68
97
не понял вопроса
Я предлагаю Вам генерировать ник не в начале работы скрипта, а в тот момент, когда это требуется, в ином случае ник для бота будет статичен на протяжении всего времени работы скрипта
 
  • Нравится
Реакции: gfulchik

gfulchik

Участник
Автор темы
94
21
Я предлагаю Вам генерировать ник не в начале работы скрипта, а в тот момент, когда это требуется, в ином случае ник для бота будет статичен на протяжении всего времени работы скрипта
спасибо, переделал, все работает, ник меняется