У меня есть один массив:
$logins= array("login1", "login2", "login3"I;
У меня есть событие, где все логин (логин1, логин2, логин3) имеют доступ.
Теперь login1, login2, login3 могут кликать по событию неограниченное количество раз.
Я уменьшу доступ к событию максимум в 2 раза.
вот код:
function replaychargeClick($aseco, $command) {
global $replaycharge, $replaybills;$coppers = $replaycharge['coppers'];
$playerid = $command[0];
$login = $command[1];
$answer = $command[2].'';
$aseco->client->query('GetDetailedPlayerInfo', $login);
$player = $aseco->client->getResponse();
$nickname = $player['NickName'];
if ($answer == '234561') {
$aseco->client->query('GetCurrentChallengeInfo');
$thistrack = $aseco->client->getResponse();
$aseco->client->query('GetNextChallengeInfo');
$nexttrack = $aseco->client->getResponse();
// Check if already being replayed
if ($thistrack['FileName'] != $nexttrack['FileName']) {
// Check for TMF server
if ($aseco->server->getGame() == 'TMF') {
// check for TMUF server
if ($aseco->server->rights) {
// check for TMUF player
if ($player['OnlineRights'] >= 0 ) {
// start the transaction
$message = 'You need to pay '.$coppers.' coppers to replay the track';
$aseco->client->query('SendBill', $login, $coppers, $message, '');
$replaybillid = $aseco->client->getResponse();
$replaybills[$replaybillid] = array($login, $nickname, $coppers);
} else {
$message = formatText($aseco->getChatMessage('UNITED_ONLY'), 'account');
$aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login);
}
} else {
$message = formatText($aseco->getChatMessage('UNITED_ONLY'), 'server');
$aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login);
}
} else {
$message = $aseco->getChatMessage('FOREVER_ONLY');
$aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login);
}
} else {
$message = '>$f00 This track is already being replayed';
$aseco->client->query('ChatSendServerMessageToLogin', $message, $login);
}
}
}
Так как я могу добавить счетчик для каждого входа?
Если вы хотите сохранить счетчик для всех логинов, просто добавьте ключ в массив.
$loginsWithCount = array({
key: "login1,
count: 0
}, {
key: "login2,
count: 0
}, {
key: "login3,
count: 0
});
Теперь вы можете обновить счетчик, просматривая массив и находя правильный объект входа в систему и обновляя его счет. Для оптимизации вы можете создать хеш и сделать это.
$keyToUpdate = 'login1';
$countToUpdate = 10;
foreach ($array as $item) {
if ($item->key === $keyToUpdate) {
$item['count'] = $countToUpdate;
}
}
Других решений пока нет …