 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
[Архив #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; } Безв ас разобралсо 
|
| |
|
|
| river | Дата: Четверг, 26.06.2008, 19:22 | Сообщение # 557 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 284
Награды: 1
Город: Москва
Репутация: 37
Замечания: 0%
Статус: 
| молодец
|
| |
|
|
| 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%
Статус: 
| как сделать чтобы определенную команду можно было вводить только один раз при жизни игрока (есстественно виртуальной жизни ) ?
Сообщение отредактировал 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) Теперь эту команду можно водить только раз в жизни, для повторного ввода команды требуется сдохнуть. Если помог, то приму благодарность в виде плюсега
Хостинг предоставлен игровым порталом 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%
Статус: 
| да игрока нет
|
| |
|
|
| 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%
Статус: 
| Окс второй раз уже выручил
|
| |
|
|
|
 |
|
 | |
| |
|