06:23
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
Модератор форума: AXE, Weddew  
[Архив #1] Вопросы по SAMP скриптам
PHPДата: Пятница, 18.04.2008, 22:44 | Сообщение # 1
Советчик
Группа: Пользователи
Сообщений: 1246
Награды: 71
Город: 1164
Замечания: 0%
Статус:
Задавайте вопросы, попробуем помочь!


Сообщение отредактировал Weddew - Понедельник, 09.06.2014, 03:17
theAloneДата: Четверг, 26.06.2008, 18:43 | Сообщение # 556
Долгожитель
Группа: Пользователи
Сообщений: 1380
Награды: 1
Город: Москва
Репутация: 92
Замечания: 0%
Статус:
нет не жгу
Code

public OnPlayerExitVehicle(playerid, vehicleid)
{
     new veh;
     veh = GetPlayerVehicleID(playerid);
     SetPlayerPos(playerid,0.0,0.0,0.0);
     PutPlayerInVehicle(playerid,veh,0);
  M(playerid,COLOR_RED,"СИДЕТЬ!!!");
  return 0;
}

Безв ас разобралсо lol

riverДата: Четверг, 26.06.2008, 19:22 | Сообщение # 557
Уверенный в себе
Группа: Продвинутые
Сообщений: 284
Награды: 1
Город: Москва
Репутация: 37
Замечания: 0%
Статус:
молодец crazy


slayerДата: Пятница, 27.06.2008, 01:24 | Сообщение # 558
Местный
Группа: I'm V.I.P.
Сообщений: 668
Награды: 12
Город: Tallinn
Репутация: 172
Замечания: 0%
Статус:
Code

public OnPlayerCommandText(playerid, cmdtext[])
{
new playermoney;
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new cmd[256];
new giveplayerid, moneys, idx;

cmd = strtok(cmdtext, idx);

if(strcmp(cmd, "/givecash", true) == 0) {
new tmp[256];
tmp = strtok(cmdtext, idx);

if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "I"e`?e`: /givecash [id e`a~?i^e^a`] [n~o'i`i`a`]");
return 1;
}
giveplayerid = strval(tmp);

tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "I"e`?e`: /givecash [id e`a~?i^e^a`] [n~o'i`i`a`]");          <======Строчка (436)
return 1;
}
moneys = strval(tmp);

if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
playermoney = GetPlayerMoney(playerid);
if (moneys > 0 && playermoney >= moneys) {
GivePlayerMoney(playerid, (0 - moneys));
GivePlayerMoney(giveplayerid, moneys);
format(string, sizeof(string), " A^u^ i"a*?a*a"a`e"e` %s(ID: %d), $%d.", giveplayer,giveplayerid, moneys);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), " A^u^ i"i^e"o'?e`e"e` $%d i^o` %s(ID: %d).", moneys, sendername, playerid);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
printf("%s(ID:%d) i"a*?a*a"a`e" %d e`a~?i^e^o' %s(ID:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
}
else {
SendClientMessage(playerid, COLOR_YELLOW, " I'a*a^a*?i'a`y" n~o'i`i`a`.");
}
}
else {
format(string, sizeof(string), "%d i'a* a`e^o`e`a^i'u^e' e`a~?i^e^.", giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
return 1;
}
if(strcmp(cmdtext, "/dopen", true) == 0) {
MoveObject(gate,2774.337,-2463.110,14.590,1.0);
MoveObject(gate1,2774.345,-2448.415,14.079,1.0);
return 1;
}
if(strcmp(cmdtext, "/dclose", true) == 0) {
MoveObject(gate,2774.337,-2459.349,14.590,1.0);
MoveObject(gate1,2774.345,-2452.624,14.079,1.0);
return 1;
}

И вот такая ошибочка:

Code

C:\Documents and Settings\Администратор\Рабочий стол\SLAYERDM.pwn(436) : error 001: expected token: "-string end-", but found "-identifier-"
C:\Documents and Settings\Администратор\Рабочий стол\SLAYERDM.pwn(436) : error 017: undefined symbol "e"
C:\Documents and Settings\Администратор\Рабочий стол\SLAYERDM.pwn(436) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Администратор\Рабочий стол\SLAYERDM.pwn(436) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase

4 Errors.

OKStyle™Дата: Пятница, 27.06.2008, 07:10 | Сообщение # 559
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус:
Quote (slayer)
...."I"e`?....

Скорее всего из-за символов.... видишь, там знак " стоит в строке, что завершает сообщение... Неужели у тебя так и было написано в павно? Кодировка другая...

В общем, попробуй так:

Code
public OnPlayerCommandText(playerid, cmdtext[])  
{  
  new playermoney;  
  new sendername[MAX_PLAYER_NAME];  
  new giveplayer[MAX_PLAYER_NAME];  
  new cmd[256];  
  new giveplayerid, moneys, idx;  

  cmd = strtok(cmdtext, idx);  

   if(strcmp(cmd, "/givecash", true) == 0)
   {  
    new tmp[256],tmp2[30];
    moneys = strval(tmp2);
    tmp = strtok(cmdtext, idx);
    tm2p = strtok(cmdtext, idx);
    giveplayerid = strval(tmp);

    if(!strlen(tmp)||!strlen(tmp2)) return SendClientMessage(playerid, COLOR_WHITE, " Синтаксис: /givecash [id] [сумма]");  

   if(IsPlayerConnected(giveplayerid))
   {  
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));  
    GetPlayerName(playerid, sendername, sizeof(sendername));  
    playermoney = GetPlayerMoney(playerid);  
     if (moneys > 0 && playermoney >= moneys)
     {  
      GivePlayerMoney(playerid, (0 - moneys));  
      GivePlayerMoney(giveplayerid, moneys);  
      format(string, sizeof(string), " Выпередали игроку %s(ID: %d) $%d.", giveplayer,giveplayerid, moneys);  
      SendClientMessage(playerid, COLOR_YELLOW, string);  
      format(string, sizeof(string), " Вы получили $%d от игрока %s(ID: %d).", moneys, sendername, playerid);  
      SendClientMessage(giveplayerid, COLOR_YELLOW, string);  
     }  
     else
     {  
      SendClientMessage(playerid, COLOR_YELLOW, " Неверная сумма");  
     }  
   }  
   else return format(string, sizeof(string), " Игрок с ID:%d не существует.", giveplayerid) SendClientMessage(playerid, COLOR_YELLOW, string);  
   return 1;  
   }

   if(!strcmp(cmdtext, "/dopen", true))
   {  
    MoveObject(gate,2774.337,-2463.110,14.590,1.0);  
    MoveObject(gate1,2774.345,-2448.415,14.079,1.0);  
   return 1;  
   }

   if(!strcmp(cmdtext, "/dclose", true))
   {  
    MoveObject(gate,2774.337,-2459.349,14.590,1.0);  
    MoveObject(gate1,2774.345,-2452.624,14.079,1.0);  
   return 1;  
   }



Да потому что когда человек делает на заказ он не старается. © kRiSyo
Кланяимся нофаму королю анимаций =))))))) © Manusya
В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
slayerДата: Пятница, 27.06.2008, 10:37 | Сообщение # 560
Местный
Группа: I'm V.I.P.
Сообщений: 668
Награды: 12
Город: Tallinn
Репутация: 172
Замечания: 0%
Статус:
Абсолютно ничего не помогает :(
Code

public OnPlayerCommandText(playerid, cmdtext[])
{
   new playermoney;
   new sendername[MAX_PLAYER_NAME];
   new giveplayer[MAX_PLAYER_NAME];
   new cmd[256];
   new giveplayerid, moneys, idx;

   cmd = strtok(cmdtext, idx);

if(strcmp(cmd, "/givecash", true) == 0)                    <============(431)
{
new tmp[256],tmp2[30];
moneys = strval(tmp2);
tmp = strtok(cmdtext, idx);
giveplayerid = strval(tmp);

if(!strlen(tmp)||!strlen(tmp2)) return SendClientMessage(playerid, COLOR_WHITE, " Синтаксис: /givecash [id] [сумма]");

if(IsPlayerConnected(giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
playermoney = GetPlayerMoney(playerid);
if (moneys > 0 && playermoney >= moneys)
{
GivePlayerMoney(playerid, (0 - moneys));
GivePlayerMoney(giveplayerid, moneys);
format(string, sizeof(string), " Выпередали игроку %s(ID: %d) $%d.", giveplayer,giveplayerid, moneys);         <=====(449
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), " Вы получили $%d от игрока %s(ID: %d).", moneys, sendername, playerid);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, " Неверная сумма");
}
}
else return format(string, sizeof(string), " Игрок с ID:%d не существует.", giveplayerid) SendClientMessage(playerid, COLOR_YELLOW, string);
return 1;
}

Раньше были ошибки в одной строке, теперь в нескольких:

Code

C:\Documents and Settings\Администратор\Рабочий стол\SLAYERDM.pwn(431) : warning 217: loose indentation
C:\Documents and Settings\Администратор\Рабочий стол\SLAYERDM.pwn(449) : error 017: undefined symbol "string"
C:\Documents and Settings\Администратор\Рабочий стол\SLAYERDM.pwn(449) : error 017: undefined symbol "string"
C:\Documents and Settings\Администратор\Рабочий стол\SLAYERDM.pwn(449) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Администратор\Рабочий стол\SLAYERDM.pwn(449) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase

4 Errors.

riverДата: Пятница, 27.06.2008, 10:48 | Сообщение # 561
Уверенный в себе
Группа: Продвинутые
Сообщений: 284
Награды: 1
Город: Москва
Репутация: 37
Замечания: 0%
Статус:
Code
public OnPlayerCommandText(playerid, cmdtext[])
{
    new playermoney;
    new sendername[MAX_PLAYER_NAME];
    new giveplayer[MAX_PLAYER_NAME];
    new cmd[256];
    new giveplayerid, moneys, idx;

    cmd = strtok(cmdtext, idx);

if(strcmp(cmd, "/givecash", true) == 0)                    <============(431)
{
new string[256];
new tmp[256],tmp2[30];
moneys = strval(tmp2);
tmp = strtok(cmdtext, idx);
giveplayerid = strval(tmp);

if(!strlen(tmp)||!strlen(tmp2)) return SendClientMessage(playerid, COLOR_WHITE, " Синтаксис: /givecash [id] [сумма]");

if(IsPlayerConnected(giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
playermoney = GetPlayerMoney(playerid);
if (moneys > 0 && playermoney >= moneys)
{
GivePlayerMoney(playerid, (0 - moneys));
GivePlayerMoney(giveplayerid, moneys);
format(string, sizeof(string), " Выпередали игроку %s(ID: %d) $%d.", giveplayer,giveplayerid, moneys);         <=====(449
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), " Вы получили $%d от игрока %s(ID: %d).", moneys, sendername, playerid);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, " Неверная сумма");
}
}
else return format(string, sizeof(string), " Игрок с ID:%d не существует.", giveplayerid) SendClientMessage(playerid, COLOR_YELLOW, string);
return 1;
}



slayerДата: Пятница, 27.06.2008, 10:57 | Сообщение # 562
Местный
Группа: I'm V.I.P.
Сообщений: 668
Награды: 12
Город: Tallinn
Репутация: 172
Замечания: 0%
Статус:
Все равно Error, но уже 1.
Code

public OnPlayerCommandText(playerid, cmdtext[])
{
     new playermoney;
     new sendername[MAX_PLAYER_NAME];
     new giveplayer[MAX_PLAYER_NAME];
     new cmd[256];
     new giveplayerid, moneys, idx;

     cmd = strtok(cmdtext, idx);

if(strcmp(cmd, "/givecash", true) == 0)                            <==============431      
{
new string[256];
new tmp[256],tmp2[30];
moneys = strval(tmp2);
tmp = strtok(cmdtext, idx);
giveplayerid = strval(tmp);

if(!strlen(tmp)||!strlen(tmp2)) return SendClientMessage(playerid, COLOR_WHITE, " Синтаксис: /givecash [id] [сумма]");

if(IsPlayerConnected(giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
playermoney = GetPlayerMoney(playerid);
if (moneys > 0 && playermoney >= moneys)
{
GivePlayerMoney(playerid, (0 - moneys));
GivePlayerMoney(giveplayerid, moneys);
format(string, sizeof(string), " Выпередали игроку %s(ID: %d) $%d.", giveplayer,giveplayerid, moneys);         
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), " Вы получили $%d от игрока %s(ID: %d).", moneys, sendername, playerid);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, " Неверная сумма");
}
}
else return format(string, sizeof(string), " Игрок с ID:%d не существует.", giveplayerid) SendClientMessage(playerid, COLOR_YELLOW, string);          <===============460

return 1;
}

Code

C:\Documents and Settings\Администратор\Рабочий стол\SLAYERDM.pwn(431) : warning 217: loose indentation
C:\Documents and Settings\Администратор\Рабочий стол\SLAYERDM.pwn(460) : error 001: expected token: ";", but found "-identifier-"
C:\Documents and Settings\Администратор\Рабочий стол\SLAYERDM.pwn(681) : warning 203: symbol is never used: "ret_memcpy"
Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase

1 Error.

Строки 681 нету это уже конец

riverДата: Пятница, 27.06.2008, 11:01 | Сообщение # 563
Уверенный в себе
Группа: Продвинутые
Сообщений: 284
Награды: 1
Город: Москва
Репутация: 37
Замечания: 0%
Статус:
Code
public OnPlayerCommandText(playerid, cmdtext[])
{
     new playermoney;
     new sendername[MAX_PLAYER_NAME];
     new giveplayer[MAX_PLAYER_NAME];
     new cmd[256];
     new giveplayerid, moneys, idx;
     cmd = strtok(cmdtext, idx);
if(strcmp(cmd, "/givecash", true) == 0)
{

new tmp[256],tmp2[30];
moneys = strval(tmp2);
tmp = strtok(cmdtext, idx);
giveplayerid = strval(tmp);
new string[256];

if(!strlen(tmp)||!strlen(tmp2)) return SendClientMessage(playerid, COLOR_WHITE, " Ñèíòàêñèñ: /givecash [id] [ñóììà]");

if(IsPlayerConnected(giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
playermoney = GetPlayerMoney(playerid);
if (moneys > 0 && playermoney >= moneys)
{

GivePlayerMoney(playerid, (0 - moneys));
GivePlayerMoney(giveplayerid, moneys);
format(string, sizeof(string), " Âûïåðåäàëè èãðîêó %s(ID: %d) $%d.", giveplayer,giveplayerid, moneys);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), " Âû ïîëó÷èëè $%d îò èãðîêà %s(ID: %d).", moneys, sendername, playerid);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, " Íåâåðíàÿ ñóììà");
}
}
else return format(string, sizeof(string), " Èãðîê ñ ID:%d íå ñóùåñòâóåò.", giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
return 1;
}



OKStyle™Дата: Пятница, 27.06.2008, 11:16 | Сообщение # 564
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус:
slayer, и в начало: #pragma unused rem_memcpy. И обнови павно.


Да потому что когда человек делает на заказ он не старается. © kRiSyo
Кланяимся нофаму королю анимаций =))))))) © Manusya
В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
brain13Дата: Пятница, 27.06.2008, 15:23 | Сообщение # 565
Новенький
Группа: Продвинутые
Сообщений: 28
Награды: 1
Репутация: 2
Замечания: 0%
Статус:
как сделать чтобы определенную команду можно было вводить только один раз при жизни игрока (есстественно виртуальной жизни lol ) ?


Сообщение отредактировал brain13 - Пятница, 27.06.2008, 15:24
ExcessДата: Пятница, 27.06.2008, 15:39 | Сообщение # 566
Уверенный в себе
Группа: Продвинутые
Сообщений: 217
Награды: 1
Город: Екатеринбург
Репутация: 19
Замечания: 0%
Статус:
brain13,
Вот это в начало:
Code
new igrok = INVALID_PLAYER_ID;

Code
public OnPlayerCommandText(playerid, cmdtext[])
{
     if (strcmp("/mycommand", cmdtext, true, 10) == 0)
     {
       if (igrok == INVALID_PLAYER_ID)
        {
      // действия происходящие при запуске команды
      igrok = playerid;
      return 1;
     }
     }
     return 0;
}

Потом вот это:
Code
if (igrok == playerid)
             {
                  igrok = INVALID_PLAYER_ID;
                  return 1;
              }

Требуется воткнуть в этот паблик public OnPlayerDeath(playerid, killerid, reason)
Теперь эту команду можно водить только раз в жизни, для повторного ввода команды требуется сдохнуть. Если помог, то приму благодарность в виде плюсега lol




Хостинг предоставлен игровым порталом Gameway http://gameway.ru


Сообщение отредактировал Excess - Пятница, 27.06.2008, 15:45
brain13Дата: Пятница, 27.06.2008, 16:08 | Сообщение # 567
Новенький
Группа: Продвинутые
Сообщений: 28
Награды: 1
Репутация: 2
Замечания: 0%
Статус:
Excess, все отлично работает, но вот только один раз вабще за всю игру, если зайти и ввести команду то действие выполняется, дальше уже после смерти и ввода этой команды сервер пишет что нет такой комы О_о
theAloneДата: Пятница, 27.06.2008, 16:21 | Сообщение # 568
Долгожитель
Группа: Пользователи
Сообщений: 1380
Награды: 1
Город: Москва
Репутация: 92
Замечания: 0%
Статус:
да игрока нет mda
OKStyle™Дата: Пятница, 27.06.2008, 16:26 | Сообщение # 569
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус:
brain13, вот так:

В начало:

Code
new AlreadyUse[MAX_PLAYERS];

В OnPlayerCommandText:

Code
if(!strcmp("/mycommand", cmdtext, true, 10))    
{    
  if(AlreadyUse[playerid] == 0)    
  {
    AlreadyUse[playerid]=1;
    ... // действия происходящие при запуске команды
  }
  else return SendClientMessage(playerid,0xFF0000AA," Данной командой можно пользоваться только 1 раз в жизни!");
return 1;    
}

В OnPlayerDeath:

Code
if(AlreadyUse[playerid]==1)
{
    AlreadyUse[playerid]=0;
}

И в OnPlayerConnect, OnGameModeExit:

Code
AlreadyUse[playerid]=0;



Да потому что когда человек делает на заказ он не старается. © kRiSyo
Кланяимся нофаму королю анимаций =))))))) © Manusya
В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR


Сообщение отредактировал okstyle - Пятница, 27.06.2008, 16:28
brain13Дата: Пятница, 27.06.2008, 16:33 | Сообщение # 570
Новенький
Группа: Продвинутые
Сообщений: 28
Награды: 1
Репутация: 2
Замечания: 0%
Статус:
Окс второй раз уже выручил :)
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua