 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
[Архив #1] Вопросы по SAMP скриптам
| |
| PHP | Дата: Пятница, 18.04.2008, 22:44 | Сообщение # 1 |
|
Советчик
Группа:
Пользователи
Сообщений: 1246
Награды: 71
Город: 1164
Замечания: 0%
Статус: 
| Задавайте вопросы, попробуем помочь!
Сообщение отредактировал Weddew - Понедельник, 09.06.2014, 03:17 |
| |
|
|
| river | Дата: Четверг, 26.06.2008, 01:12 | Сообщение # 541 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 284
Награды: 1
Город: Москва
Репутация: 37
Замечания: 0%
Статус: 
| Code //------------------------------------------------------------------------------ if(strcmp(cmd, "/givecash", true) == 0) { tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [èä èãðîêà] [ñêîëüêî]"); return 1; } giveplayerid = strval(tmp);
tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [èä èãðîêà] [ñêîëüêî]"); 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), "*Âû îòïðàâèëè %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); printf("%s(ID:%d) ïåðåäàë %d èãðîêó %s(ID:%d)",sendername, playerid, moneys, giveplayer, giveplayerid); } else { SendClientMessage(playerid, COLOR_YELLOW, "*Íåïðàâèëüíàÿ ñóììà."); } } else { format(string, sizeof(string), "%d íå àêòèâíûé èãðîê.", giveplayerid); SendClientMessage(playerid, COLOR_YELLOW, string); } return 1; }
Сообщение отредактировал river - Четверг, 26.06.2008, 01:13 |
| |
|
|
| neversmile | Дата: Четверг, 26.06.2008, 04:11 | Сообщение # 542 |
|
Новенький
Группа:
Пользователи
Сообщений: 27
Награды: 1
Город: Нарва
Репутация: 5
Замечания: 0%
Статус: 
| Quote (okstyle) neversmile, проверь определение переменных. Quote (DJSashoK59) Понятней скажу, выравнивай их, сделай на одном уровне, чтоб строчки ровные были спасибо 5 из 6 исчезло))
|
| |
|
|
| Excess | Дата: Четверг, 26.06.2008, 07:37 | Сообщение # 543 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 217
Награды: 1
Город: Екатеринбург
Репутация: 19
Замечания: 0%
Статус: 
| slayer, Держи Code public OnVehicleDeath(vehicleid, killerid) { new string[256]; format(string,sizeof(string),"Vehicle death VehicleID %d KillerID %d",vehicleid,killerid); SendClientMessageToAll(0xFFFF00AA,string); DestroyVehicle(GetPlayerVehicleID(killerid)); return 1; } Вроде то что надо.
Хостинг предоставлен игровым порталом Gameway http://gameway.ru
|
| |
|
|
| slayer | Дата: Четверг, 26.06.2008, 09:19 | Сообщение # 544 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 668
Награды: 12
Город: Tallinn
Репутация: 172
Замечания: 0%
Статус: 
| Блин в последнее время уже начинает бесить, вроде все правильно в итоге все равно Туева-Куча ошибок. Code //=====================ON PLAYER COMMAND TEXT===================================
public OnPlayerCommandText(playerid, cmdtext[]){ { new playermoney; new sendername[MAX_PLAYER_NAME]; new giveplayer[MAX_PLAYER_NAME]; new cmd[256]; new giveplayerid, moneys, idx; if(strcmp(cmd, "/givecash", true) == 0) {
cmd = strtok(cmdtext, idx); <===(425)
tmp = strtok(cmdtext, idx); <===(427)
if(!strlen(tmp)) { <====(429) SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [e`a" e`a~?i^e^a`] [n~e^i^e"u"e^i^]"); <===(430) return 1; } giveplayerid = strval(tmp);
tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [e`a" e`a~?i^e^a`] [n~e^i^e"u"e^i^]"); 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^o`i"?a`a^e`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*i"?a`a^e`e"u"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; } Code C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(425) : error 017: undefined symbol "strtok" C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(425) : error 033: array must be indexed (variable "cmd") C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(427) : error 017: undefined symbol "tmp" C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(427) : error 017: undefined symbol "strtok" C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(429) : error 017: undefined symbol "tmp" C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(430) : error 001: expected token: "-string end-", but found "-identifier-" C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(430) : error 017: undefined symbol "e" C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(430) : error 029: invalid expression, assumed zero C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(430) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
9 Errors.
|
| |
|
|
| river | Дата: Четверг, 26.06.2008, 09:26 | Сообщение # 545 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 284
Награды: 1
Город: Москва
Репутация: 37
Замечания: 0%
Статус: 
| это вот так должно быть public OnPlayerCommandText(playerid, cmdtext[]){ { new tmp[256]; new giveplayerid, moneys, idx; new giveplayer[MAX_PLAYER_NAME]; new sendername[MAX_PLAYER_NAME]; new string[256]; new playermoney; в конец Code strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; }
new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; }
Сообщение отредактировал river - Четверг, 26.06.2008, 09:28 |
| |
|
|
| slayer | Дата: Четверг, 26.06.2008, 10:17 | Сообщение # 546 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 668
Награды: 12
Город: Tallinn
Репутация: 172
Замечания: 0%
Статус: 
| Code public OnPlayerCommandText(playerid, cmdtext[]){ { new tmp[256]; new giveplayerid, moneys, idx; new giveplayer[MAX_PLAYER_NAME]; new sendername[MAX_PLAYER_NAME]; new string[256]; new playermoney; if(strcmp(cmd, "/givecash", true) == 0) { tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [e`a" e`a~?i^e^a`] [n~e^i^e"u"e^i^]"); return 1; } giveplayerid = strval(tmp);
tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [e`a" e`a~?i^e^a`] [n~e^i^e"u"e^i^]"); 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^o`i"?a`a^e`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*i"?a`a^e`e"u"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; } strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; }
new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; }
Вот так должно быть, все точь в точь сделал и все равно ошибки Code C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(424) : error 017: undefined symbol "cmd" C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(425) : error 017: undefined symbol "strtok" C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(425) : error 033: array must be indexed (variable "tmp") C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(428) : error 001: expected token: "-string end-", but found "-identifier-" C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(428) : error 017: undefined symbol "e" C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(428) : error 029: invalid expression, assumed zero C:\Downloads\Файлы\SAMP0.2.2 Server&Client\DeathMatchServer\gamemodes\SLAYERDM.pwn(428) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
7 Errors.
|
| |
|
|
| Orange | Дата: Четверг, 26.06.2008, 10:39 | Сообщение # 547 |
|
Уважаемый человек
Группа:
Продвинутые
Сообщений: 945
Награды: 6
Город: San Fierro
Репутация: 101
Замечания: 0%
Статус: 
| Code strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; }
new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; }
public OnPlayerCommandText(playerid, cmdtext[]) {//1 new playermoney; new sendername[MAX_PLAYER_NAME]; new giveplayer[MAX_PLAYER_NAME]; new cmd[256]; new tmp[256]; new string[256]; new giveplayerid, moneys, idx; cmd = strtok(cmdtext, idx); tmp = strtok(cmdtext, idx); if(strcmp(cmd, "/givecash", true) == 0) {//2 if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash"); return 1; }
giveplayerid = strval(tmp); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash"); return 1;
} moneys = strval(tmp); if (IsPlayerConnected(giveplayerid)) {//3 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), " %s(ID: %d).", moneys, sendername, playerid); SendClientMessage(giveplayerid, COLOR_YELLOW, string); printf("%s(ID:%d) %s(ID:%d)",sendername, playerid, moneys, giveplayer, giveplayerid); } else { SendClientMessage(playerid, COLOR_YELLOW, ""); }
}//3 else { format(string, sizeof(string), "", giveplayerid); SendClientMessage(playerid, COLOR_YELLOW, string); } return 0; }//2 return 1; }//1
|
| |
|
|
| slayer | Дата: Четверг, 26.06.2008, 12:33 | Сообщение # 548 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 668
Награды: 12
Город: Tallinn
Репутация: 172
Замечания: 0%
Статус: 
| Компилится без ошибок и варнингов на сервере при попытке передать деньги сервер Крэшится.
|
| |
|
|
| OKStyle™ | Дата: Четверг, 26.06.2008, 13:46 | Сообщение # 549 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус: 
| slayer, добавь перед всеми командами: Code new cmd[30]; new idx; cmd = strtok(cmdtext, idx); затем, определение strtok должно стоять ВНЕ public'ов, т.е. ты забыл перед ней поставить:
Да потому что когда человек делает на заказ он не старается. © kRiSyo Кланяимся нофаму королю анимаций =))))))) © Manusya В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
|
| |
|
|
| brain13 | Дата: Четверг, 26.06.2008, 14:03 | Сообщение # 550 |
|
Новенький
Группа:
Продвинутые
Сообщений: 28
Награды: 1
Репутация: 2
Замечания: 0%
Статус: 
| помогите реализовать такую фишку: как только деньги заходят за минус - фраги перестают набиратся и выводится текстовое сообщение З.Ы. + поставлю ;)
|
| |
|
|
| OKStyle™ | Дата: Четверг, 26.06.2008, 14:45 | Сообщение # 551 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус: 
| brain13, функция OnPlayerDeath будет выглядеть примерно следующим образом: Code ... if(GetPlayerMoney(killerid)>0) { SetPlayerScore(killerid,GetPlayerScore(killerid)+1); } else { SendClientMessage(killerid,0xFF0000AA," У вас минусовой баланс. Фраги не набираются."); } .... return 1; }
Да потому что когда человек делает на заказ он не старается. © kRiSyo Кланяимся нофаму королю анимаций =))))))) © Manusya В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
|
| |
|
|
| brain13 | Дата: Четверг, 26.06.2008, 14:50 | Сообщение # 552 |
|
Новенький
Группа:
Продвинутые
Сообщений: 28
Награды: 1
Репутация: 2
Замечания: 0%
Статус: 
| спс =)
|
| |
|
|
| slayer | Дата: Четверг, 26.06.2008, 16:25 | Сообщение # 553 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 668
Награды: 12
Город: Tallinn
Репутация: 172
Замечания: 0%
Статус: 
| блин бред какой то...
|
| |
|
|
| theAlone | Дата: Четверг, 26.06.2008, 18:26 | Сообщение # 554 |
|
Долгожитель
Группа:
Пользователи
Сообщений: 1380
Награды: 1
Город: Москва
Репутация: 92
Замечания: 0%
Статус: 
| Помогите плиз, как сделать чтобы игрок не смог выйти из машины? естественно с меня + 
|
| |
|
|
| river | Дата: Четверг, 26.06.2008, 18:32 | Сообщение # 555 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 284
Награды: 1
Город: Москва
Репутация: 37
Замечания: 0%
Статус: 
| обычно люди просят чтоб войти нельзя было но выйти жжёшь
|
| |
|
|
|
 |
|
 | |
| |
|