Система не передачи денег
|
|
GoJustGo | Дата: Четверг, 03 Сентября 2015, 23:49:56 | Сообщение # 1 |
4 уровень
Группа: Пользователи
Сообщений: 87
Награды: 0
Репутация: 12
Блокировки:
| В моей AoS карте можно передавать деньги. я поставил через констаты на -1 передачу ресурсов и все вроде бы ничего, но с мап-хаками передавать ресурсы все равно можно и даже врагам.
Просьба и вопрос: сделайте наработку где нельзя передать деньги. я думаю тут должны знать как это сделать. очень прощу всех кто тут профи например сэр-николас и другие кто уже помогал мне.
|
|
|
|
SirNikolas | Дата: Четверг, 03 Сентября 2015, 23:59:09 | Сообщение # 2 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| В стандартной карте "Обелиск" такое реализовано. При передаче ресурсов они забираются и выводится сообщение.
|
|
|
|
GoJustGo | Дата: Пятница, 04 Сентября 2015, 00:26:39 | Сообщение # 3 |
4 уровень
Группа: Пользователи
Сообщений: 87
Награды: 0
Репутация: 12
Блокировки:
| SirNikolas, как они нашли событие передачи ресурсов? где его найти вообще. Добавлено (04 Сентября 2015, 00:09:38) --------------------------------------------- я бы уже давно все сделал если бы видел где событие - игрок передаёт ресурсы(к примеру). Добавлено (04 Сентября 2015, 00:26:39) --------------------------------------------- нашёл вот такой ответ на этом сайте: Единственный способ пресечь передачу посредством МХ, это полный триггерный контроль количества золота игрока, в том числе постоянные проверки, имеет ли игрок золота больше чем должно у него быть.
как сделать полный контроль скиньте наработку.
|
|
|
|
Samedy_ | Дата: Пятница, 04 Сентября 2015, 06:12:24 | Сообщение # 4 |
7 уровень
Группа: Проверенные
Сообщений: 371
Награды: 0
Репутация: 18
Блокировки:
| Тебе же сказали, реализованно в стандартной карте. Стандартные карты не запротекчены. Открывай и смотри.
|
|
|
|
GoJustGo | Дата: Пятница, 04 Сентября 2015, 21:29:49 | Сообщение # 5 |
4 уровень
Группа: Пользователи
Сообщений: 87
Награды: 0
Репутация: 12
Блокировки:
| SirNikolas, как карта точно называется? The Obelisk Survival HD v4.21d ? она? Добавлено (04 Сентября 2015, 21:29:49) --------------------------------------------- если она то в ней с yhack для баттл нет и гарены все равно можно передавать деньги. нет никаких сообщений.
|
|
|
|
Волчачка | Дата: Пятница, 04 Сентября 2015, 23:34:23 | Сообщение # 6 |
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
| Можно типа такого настрочить, но понадобятся ещё логические флаги и чуть гемограмм, чтобы ловила как элитная собака Код library FSB globals private integer array FSB_Gold endglobals function FSBDetector takes integer Plr, integer gold returns nothing local integer FilterGold = 0 local integer pIx = 0 local boolean b = false loop set FilterGold = GetPlayerState( Player(pIx), PLAYER_STATE_RESOURCE_GOLD ) if FilterGold != FSB_Gold[pIx] and Plr != pIx then call SetPlayerState( Player(pIx), PLAYER_STATE_RESOURCE_GOLD, FSB_Gold[pIx] ) set b = true endif set pIx = pIx + 1 exitwhen pIx == 12 or b endloop if gold < 0 then call BJDebugMsg("Игрок \"|cffFF0000" + GetPlayerName(Player(Plr)) +"|r\"[Тот, кто отдал деньги] и игрок \"" + GetPlayerName(Player(pIx-1))+"проводят махинации с деньгами.") else call BJDebugMsg("Игрок \"|cffFF0000" + GetPlayerName(Player(Plr)) +"|r\"[Принимаюшая сторона] и игрок \"" + GetPlayerName(Player(pIx-1))+"проводят махинации с деньгами.") endif endfunction function AddGoldCahe takes integer Plr, integer Gold returns nothing local integer FilterGold = GetPlayerState( Player(Plr), PLAYER_STATE_RESOURCE_GOLD ) if FilterGold != FSB_Gold[Plr] then call SetPlayerState( Player(Plr), PLAYER_STATE_RESOURCE_GOLD, FSB_Gold[Plr] ) call FSBDetector(Plr,FilterGold-FSB_Gold[Plr]) endif set FSB_Gold[Plr] = FSB_Gold[Plr] + Gold endfunction function SubGoldCahe takes integer Plr, integer Gold returns nothing local integer FilterGold = GetPlayerState( Player(Plr), PLAYER_STATE_RESOURCE_GOLD ) if FilterGold != FSB_Gold[Plr] then call SetPlayerState( Player(Plr), PLAYER_STATE_RESOURCE_GOLD, FSB_Gold[Plr] ) call FSBDetector(Plr,FilterGold-FSB_Gold[Plr]) endif set FSB_Gold[Plr] = FSB_Gold[Plr] - Gold endfunction function TotalChecker takes nothing returns nothing local integer FilterGold = 0 local integer pIx = 0 loop set FilterGold = GetPlayerState( Player(pIx), PLAYER_STATE_RESOURCE_GOLD ) if FilterGold != FSB_Gold[pIx] then call SetPlayerState( Player(pIx), PLAYER_STATE_RESOURCE_GOLD, FSB_Gold[pIx] ) call FSBDetector(pIx,FilterGold-FSB_Gold[pIx]) endif set pIx = pIx + 1 exitwhen pIx == 12 endloop endfunction endlibrary Добавлено (04 Сентября 2015, 23:34:23) --------------------------------------------- Хотя, лучше так. Код library FSB globals private integer array FSB_Gold endglobals function FSBDetector takes integer Plr, boolean dFilter returns nothing local integer FilterGold = 0 local integer pIx = 0 local boolean b = false loop set FilterGold = GetPlayerState( Player(pIx), PLAYER_STATE_RESOURCE_GOLD ) if FilterGold != FSB_Gold[pIx] and Plr != pIx then call SetPlayerState( Player(pIx), PLAYER_STATE_RESOURCE_GOLD, FSB_Gold[pIx] ) set b = true endif set pIx = pIx + 1 exitwhen pIx == 12 or b endloop if dFilter then call BJDebugMsg("Игрок \"|cffFF0000" + GetPlayerName(Player(Plr)) +"|r\"[Тот, кто отдал деньги] и игрок \"" + GetPlayerName(Player(pIx-1))+"проводят махинации с деньгами.") else call BJDebugMsg("Игрок \"|cffFF0000" + GetPlayerName(Player(Plr)) +"|r\"[Принимаюшая сторона] и игрок \"" + GetPlayerName(Player(pIx-1))+"проводят махинации с деньгами.") endif endfunction function AddGoldCahe takes integer Plr, integer Gold returns nothing local integer FilterGold = GetPlayerState( Player(Plr), PLAYER_STATE_RESOURCE_GOLD ) if FilterGold != FSB_Gold[Plr] then call SetPlayerState( Player(Plr), PLAYER_STATE_RESOURCE_GOLD, FSB_Gold[Plr] ) call FSBDetector(Plr,FilterGold-FSB_Gold[Plr] < 0) endif set FSB_Gold[Plr] = FSB_Gold[Plr] + Gold endfunction function SubGoldCahe takes integer Plr, integer Gold returns nothing local integer FilterGold = GetPlayerState( Player(Plr), PLAYER_STATE_RESOURCE_GOLD ) if FilterGold != FSB_Gold[Plr] then call SetPlayerState( Player(Plr), PLAYER_STATE_RESOURCE_GOLD, FSB_Gold[Plr] ) call FSBDetector(Plr,FilterGold-FSB_Gold[Plr] < 0) endif set FSB_Gold[Plr] = FSB_Gold[Plr] - Gold endfunction function TotalChecker takes nothing returns nothing local integer FilterGold = 0 local integer pIx = 0 loop set FilterGold = GetPlayerState( Player(pIx), PLAYER_STATE_RESOURCE_GOLD ) if FilterGold != FSB_Gold[pIx] then call SetPlayerState( Player(pIx), PLAYER_STATE_RESOURCE_GOLD, FSB_Gold[pIx] ) call FSBDetector(pIx,FilterGold-FSB_Gold[pIx] < 0) endif set pIx = pIx + 1 exitwhen pIx == 12 endloop endfunction endlibrary
Сообщение отредактировал Волчачка - Пятница, 04 Сентября 2015, 23:26:41 |
|
|
|
GoJustGo | Дата: Суббота, 05 Сентября 2015, 20:47:57 | Сообщение # 7 |
4 уровень
Группа: Пользователи
Сообщений: 87
Награды: 0
Репутация: 12
Блокировки:
| Волчачка, я только на гуи делаю, но не нуб jass знаю что такое. когда кинул в отдельный триггер этот код карта не запустилась.вопрос: что требуется еще сделать чтобы карта запустилась с этим кодом?
|
|
|
|
Волчачка | Дата: Суббота, 05 Сентября 2015, 23:43:48 | Сообщение # 8 |
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
| Цитата GoJustGo ( ) Волчачка, я только на гуи делаю, но не нуб jass знаю что такое. когда кинул в отдельный триггер этот код карта не запустилась.вопрос: что требуется еще сделать чтобы карта запустилась с этим кодом? Ну можно убрать Код library FSB globals private integer array FSB_Gold endglobals
FSB_Gold заменить на udg_FSB_Gold и кинуть всё это в нестандартный сценарий карты и создать в переменных FSB_Gold целочисленное массив а потом вызывать эти фунуции через Custom Script: call Add\SubGoldCahe( udg_*имя переменной*, udg_*имя переменной*) целое,целое А в таймере прописать Custom Script: call TotalChecker ()
|
|
|
|
GoJustGo | Дата: Понедельник, 14 Сентября 2015, 23:12:24 | Сообщение # 9 |
4 уровень
Группа: Пользователи
Сообщений: 87
Награды: 0
Репутация: 12
Блокировки:
| Волчачка, а не проще ты бы кинул наработку?
|
|
|
|