Скриптинг курилка

Значит на оба вопроса ответ - никак.
Reply

Ребят, не подскажите какую нибудь проверку на состояние автомобиля (заведен ли двигатель или нет).

p.s Буду "пихать" в OnPlayerKeyStateChange
Reply

Quote:

Ребят, не подскажите какую нибудь проверку на состояние автомобиля (заведен ли двигатель или нет).

p.s Буду "пихать" в OnPlayerKeyStateChange

new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParams(idcar,engine,lights,alarm,doors,b onnet,boot,objective);


У кого нибудь есть старые версии плагина crashdetect? Нужна версия 4.1.1.
Reply

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Значит на оба вопроса ответ - никак.
Чо эт никак-то?

SetVehicleVelocity
Reply

Quote:
Originally Posted by Evansive
Посмотреть сообщение
Чо эт никак-то?

SetVehicleVelocity

1 фейспалма тут не хватает
Reply

Для чего нужна функция - SetTeamCount(кол-во команд)?
И работает ли / исправили SetPlayerTeam? Т.к. работала она нестабильно.
Reply

Quote:
Originally Posted by Evansive
Посмотреть сообщение
Чо эт никак-то?

SetVehicleVelocity
Для выскочки выделил:
Quote:
Originally Posted by Be$$0n
Посмотреть сообщение
Возможно ли скриптово остановить поезд/трамвай? SetVehicleVelocity и замораживать игрока не тормозят.
Quote:
Originally Posted by Baks
Посмотреть сообщение
Для чего нужна функция - SetTeamCount(кол-во команд)?
И работает ли / исправили SetPlayerTeam? Т.к. работала она нестабильно.
Для установки количества команд на сервере.
Ни о каких проблемах с функцией SetPlayerTeam ни когда не наблюдал, какую нестабильность вы в ней увидели?
Reply

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Для установки количества команд на сервере.
Ни о каких проблемах с функцией SetPlayerTeam ни когда не наблюдал, какую нестабильность вы в ней увидели?
Все просто, последний раз ее использовал на 0.3b или 0.3c (не помню), ставил в OnplayerSpawn (как указано в вики), но довольно часто срабатывала не правильно (можно было грохнуть игрока из своей команды). Спрашивал, вроде, здесь же (http://forum.sa-mp.com/showthread.ph...am#post1226606), ответили, что работа этой функции нестабильна.

Хотя, вроде, исправили, порылся в поиске, увидел следующее - "Fix for SetPlayerTeam() sometimes desyncing and allowing friendly fire."
Reply

Quote:
Originally Posted by Baks
Посмотреть сообщение
Все просто, последний раз ее использовал на 0.3b или 0.3c (не помню), ставил в OnplayerSpawn (как указано в вики), но довольно часто срабатывала не правильно (можно было грохнуть игрока из своей команды). Спрашивал, вроде, здесь же (http://forum.sa-mp.com/showthread.ph...am#post1226606), ответили, что работа этой функции нестабильна.

Хотя, вроде, исправили, порылся в поиске, увидел следующее - "Fix for SetPlayerTeam() sometimes desyncing and allowing friendly fire."
Совершенно верно, работа данной ф-ции нестабильна уже сколько версий сампа вышло, а разработчики так и не исправили, может потому что она не востребована среди скриптеров, вместо этого я использую PVar.
Reply

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Разве это не очевидно:
pawn Код:
YCMD:test(playerid, params[], help)
{
    new string[32], amount;
    sscanf(params, "s[32]i", string, amount);
    if(!strcmp(string, "buy", true))
    {
        if (!amount) return SendClientMessage(playerid, COLOR_GREY, "Use /test [text] [amount]!");
        //Здесь параметр 'amount' используется
    }
    else if(!strcmp(string, "buy2", true))
    {
        //Здесь параметр 'amount' не нужен
    }
    else return SendClientMessage(playerid, COLOR_GREY, "Use /test [text] [amount]!");
}
А если более сложная конструкция, на подобии:
pawn Код:
YCMD:test(playerid, params[], help)
{
    new string[32], amount;
    sscanf(params, "s[32]iuii", string, amount,giveplayerid,amount2,amount3);
    if(!strcmp(string, "buy", true))
    {
        if (!amount3) return SendClientMessage(playerid, COLOR_GREY, "Use /test [text] [amount]!");
        //Здесь параметр 'amount3' используется
    }
    else if(!strcmp(string, "buy2", true))
    {
        //Здесь параметр 'amount' не нужен
    }
    else return SendClientMessage(playerid, COLOR_GREY, "Use /test [text] [amount]!");
}
Где в команде /test buy [amount3] - Используется параметр: amount3. Который можно вызвать, набрав команду: /test buy [amount] [giveplayerid] [amount2] [и только потом amount3]

Как быть в данном случае? Как убрать необходимость ввода предыдущих параметров?
Reply

Quote:
Originally Posted by RAEN
View Post
А если более сложная конструкция, на подобии:
Code:
YCMD:test(playerid, params[], help)
{
	new string[32], amount;
	sscanf(params, "s[32]iuii", string, amount,giveplayerid,amount2,amount3);
	if(!strcmp(string, "buy", true))
	{
		if (!amount3) return SendClientMessage(playerid, COLOR_GREY, "Use /test [text] [amount]!");
		//Здесь параметр 'amount3' используется
	}
	else if(!strcmp(string, "buy2", true))
	{
		//Здесь параметр 'amount' не нужен
	}
	else return SendClientMessage(playerid, COLOR_GREY, "Use /test [text] [amount]!");
}
Где в команде /test buy [amount3] - Используется параметр: amount3. Который можно вызвать, набрав команду: /test buy [amount] [giveplayerid] [amount2] [и только потом amount3]

Как быть в данном случае? Как убрать необходимость ввода предыдущих параметров?
Ещё элементарней: отказаться от столь сложной логики.
Смотри на функционал с точки зрения пользователя, а это по сути дети, им лень вводить по 3-4 параметра в консоль, да даже 2 это чаще всего много, дайте им графическое меню и селекторы.
Reply

Quote:
Originally Posted by Stepashka
View Post
Ещё элементарней: отказаться от столь сложной логики.
Смотри на функционал с точки зрения пользователя, а это по сути дети, им лень вводить по 3-4 параметра в консоль, да даже 2 это чаще всего много, дайте им графическое меню и селекторы.
Графическое меню это понятно, но тут нужно вывод с помощью команды делать. А то, что перед параметром amount3, стоят ещё другие параметры никто не знает. Поэтому команду будет набрать невозможно. Если другого выхода нет, кроме как вывод информации через меню, то это печально...
Reply

Quote:
Originally Posted by RAEN
View Post
Графическое меню это понятно, но тут нужно вывод с помощью команды делать. А то, что перед параметром amount3, стоят ещё другие параметры никто не знает. Поэтому команду будет набрать невозможно. Если другого выхода нет, кроме как вывод информации через меню, то это печально...
Печально то что вы вывод информации через меню считаете печальным.
Информация к размышлению: почему люди отказались от консольных приложений в пользу графического интерфейса?!
Reply

Quote:

strmid(PlayerInfo[playerid][pEmail], inputtext,0,strlen(inputtext), 255);

Даю значение к pEmail то что ввел с диалога. При сохранение в таблице только выводится первая буква.

К примеру вводил abcd@mail.ru
Сохраняется только буква a

Почему?
Reply

А так:
Code:
PlayerInfo[playerid][pEmail][0] = EOS;
strcat(PlayerInfo[playerid][pEmail], inputtext);
и ещё, куда сохраняется, может проблема в сохранении?
Reply

Quote:
Originally Posted by Stepashka
View Post
Печально то что вы вывод информации через меню считаете печальным.
Информация к размышлению: почему люди отказались от консольных приложений в пользу графического интерфейса?!
Я не считаю его печальным Я просто всегда стараюсь оставлять альтернативу для староверов. Кому-то удобно так, кому-то иначе, вкусы разные.
Reply

Quote:
Originally Posted by Stepashka
View Post
А так:
Code:
PlayerInfo[playerid][pEmail][0] = EOS;
strcat(PlayerInfo[playerid][pEmail], inputtext);
и ещё, куда сохраняется, может проблема в сохранении?
Не помогло. Сразу компилятор дал ошибку на [0] - Его удалил, всё норм, но ничего не сохраняет.

PHP Code:
stock SaveAccount1(playerid)
// Сохранение аккаунта.
    
if(PlayerInfo[playerid][pLogged] == true)
    { 
// Проверка, если аккаунт авторизован.
        
CheckMySQLConnection(); // Проверяем, подключена ли БД.
        
new query[800], sqlname[MAX_PLAYER_NAME], sqlpass[64], string[800];
        new 
origin PlayerInfo[playerid][pOrigin];
        new 
house PlayerInfo[playerid][pHouse];
        new 
autos PlayerInfo[playerid][pAuto];
        new 
timer PlayerInfo[playerid][pTime];
        new 
exp PlayerInfo[playerid][pExp];
        new 
chas PlayerInfo[playerid][pChas];
        new 
bank PlayerInfo[playerid][pBank];
        new 
bizz PlayerInfo[playerid][pBizz];
        new 
sex PlayerInfo[playerid][pSex];
        new 
zvezdi PlayerInfo[playerid][pZvezdi];
        new 
timezv PlayerInfo[playerid][pTimeZv];
        new 
jailed PlayerInfo[playerid][pJailed];
        new 
jtime PlayerInfo[playerid][pJailTime];
        new 
pmail PlayerInfo[playerid][pEmail];
        
mysql_real_escape_string(PlayerInfo[playerid][pName], sqlname);
        
mysql_real_escape_string(PlayerInfo[playerid][pPassword], sqlpass);
        
strcat(string,"UPDATE `Accounts` SET `Origin` = '%i', `House` = '%i', `Auto` = '%i', `Time` = '%i', `Exp` = '%i', `Chas` = '%i'",sizeof(string));
        
strcat(string,", `Bank` = '%i', `Bizz` = '%i', `Sex` = '%i', `Zvezdi` = '%i', `TimeZv` = '%i', `Jailed` = '%i', `JailTime` = '%i', `Mail` = '%s' WHERE `ID` = '%i'",sizeof(string));
        
format(querysizeof(query),string,origin,house,autos,timer,exp,chas,bank,bizz,sex,zvezdi,timezv,jailed,jtime,pmail,PlayerInfo[playerid][pID]);
        
mysql_debug(1);
        
mysql_query(query); // Отправляем запрос
    
}
    return 
1;

Вот сохранение
Reply

У тебя pEmail не массив, а переменная, поэтому и будет хранить всего лишь один символ
Reply

Quote:
Originally Posted by DartfoL
View Post
У тебя pEmail не массив, а переменная, поэтому и будет хранить всего лишь один символ
Помоги нубу тогда))) ЧТо нужно изменить
Reply

Quote:
Originally Posted by Hawkins
View Post
Помоги нубу тогда))) ЧТо нужно изменить
Ну удали сервер, мод, и будь игроком, спасешь и себя и всех

По сабжу:
Code:
stock SaveAccount1(playerid)
{
	if(PlayerInfo[playerid][pLogged] == true)
	{
		CheckMySQLConnection();
		new query[800], sqlname[MAX_PLAYER_NAME], sqlpass[64];
		mysql_real_escape_string(PlayerInfo[playerid][pName], sqlname);//а эти нам сохранять не надо и без них хорошо
		mysql_real_escape_string(PlayerInfo[playerid][pPassword], sqlpass);//а эти нам сохранять не надо и без них хорошо
		format(query, sizeof(query),"UPDATE `Accounts` SET\
		`Origin` = '%i', `House` = '%i', `Auto` = '%i', `Time` = '%i', `Exp` = '%i',\
		`Chas` = '%i', `Bank` = '%i', `Bizz` = '%i', `Sex` = '%i', `Zvezdi` = '%i',\
		`TimeZv` = '%i', `Jailed` = '%i', `JailTime` = '%i', `Mail` = '%s' WHERE `ID` = '%i'",
		PlayerInfo[playerid][pOrigin],
		PlayerInfo[playerid][pHouse],
		PlayerInfo[playerid][pAuto],
		PlayerInfo[playerid][pTime],
		PlayerInfo[playerid][pExp],
		PlayerInfo[playerid][pChas],
		PlayerInfo[playerid][pBank],
		PlayerInfo[playerid][pBizz],
		PlayerInfo[playerid][pSex],
		PlayerInfo[playerid][pZvezdi],
		PlayerInfo[playerid][pTimeZv],
		PlayerInfo[playerid][pJailed],
		PlayerInfo[playerid][pJailTime],
		PlayerInfo[playerid][pEmail],
		PlayerInfo[playerid][pID]);
		mysql_debug(1);
		mysql_query(query);
	}
	return 1;
}
Скажи кстати IP сервера буду периодически заходить и базу дропать.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)