[ Новые сообщения · Участники · Правила форума · Поиск · RSS ] |
|
Форум - Сообщество любителей игры GTA:MP » SA-MP Scripting » Школа PAWNO » создание [ gf ][ Простенький тайник ] |
создание [ gf ][ Простенький тайник ] |
Дата: 07.05.2011, Суббота, 09:25:41 | Сообщение # $NUMBER
Представляю вашему вниманию, тайник в который игрок может класть деньги\материалы\наркотики
Код подойдёт для GameModels:Gf, Larp ну и их модефикаций. Код обязательно надо вписать в мод. Начнём: 1) Ищем строчку enum pInfoи добавляем: Code ptMoney, ptDrugs, ptMats, 2) Ищем public OnPlayerConnect и добавляем: Code PlayerInfo[playerid][ptMoney] = 0; PlayerInfo[playerid][ptDrugs] = 0; PlayerInfo[playerid][ptMats] = 0; 3) Ищем public OnPlayerRegister и добавляем: Code format(var, 32, "TanikMoney=%d\n",PlayerInfo[playerid][ptMoney]);fwrite(hFile, var); format(var, 32, "TanikDrugs=%d\n",PlayerInfo[playerid][ptDrugs]);fwrite(hFile, var); format(var, 32, "TanikMats=%d\n",PlayerInfo[playerid][ptMats]);fwrite(hFile, var); 4) После public OnPlayerRegister есть public SavePlayer у меня он называеться так у некоторых может называться public OnPlayerUpdate_GF или как то по другому туда добавляем: Code format(var, 32, "TanikMoney=%d\n",PlayerInfo[playerid][ptMoney]);fwrite(hFile, var); format(var, 32, "TanikDrugs=%d\n",PlayerInfo[playerid][ptDrugs]);fwrite(hFile, var); format(var, 32, "TanikMats=%d\n",PlayerInfo[playerid][ptMats]);fwrite(hFile, var); 5) Ищем public OnPlayerLogin и добавляем: Code if( strcmp( key , "TanikMoney" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][ptMoney] = strval( val ); } if( strcmp( key , "TanikDrugs" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][ptDrugs] = strval( val ); } if( strcmp( key , "TanikMats" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][ptMats] = strval( val ); } 6) Ищем public OnPlayerCommandText и добавляем команды: Code if(strcmp(cmd, "/tinfo", true) == 0)// Команда показывает что лежит в тайнике { if(IsPlayerConnected(playerid)) { if(PlayerToPoint(5.0,playerid,539.8622,-506.1435,25.5234))// кординаты заменяйте на свои { SendClientMessage(playerid,COLOR_YELLOW,"*** Тайник ***"); format(string,sizeof(string),"Деньги: %d$",PlayerInfo[playerid][ptMoney]); SendClientMessage(playerid,COLOR_WHITE,string); format(string,sizeof(string),"Наркотики: %d",PlayerInfo[playerid][ptDrugs]); SendClientMessage(playerid,COLOR_WHITE,string); format(string,sizeof(string),"Материалы: %d",PlayerInfo[playerid][ptMats]); SendClientMessage(playerid,COLOR_WHITE,string); } } return 1; } if(strcmp(cmd, "/tgive", true) == 0)// Командой класть вещи в тайник { if(IsPlayerConnected(playerid)) { new x_job[256]; x_job = strtok(cmdtext, idx); if(!strlen(x_job)) { SendClientMessage(playerid, COLOR_WHITE, "|__________________ Положить в тайник __________________|"); SendClientMessage(playerid, COLOR_WHITE, "Используйте: /tgive [Название] [Кол-во]"); SendClientMessage(playerid, COLOR_GREY, "Доступно: money, drugs, mats"); SendClientMessage(playerid, COLOR_WHITE, "|____________________________________________|"); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /tgive [Название] [Кол-во]"); return 1; } new kolvo = strval(tmp); if(PlayerToPoint(5.0,playerid,539.8622,-506.1435,25.5234))// кординаты заменяйте на свои { if(strcmp(x_job,"money",true) == 0) { if(kolvo > GetPlayerMoney(playerid)) { SendClientMessage(playerid,COLOR_GREY,"У тебя нет такой суммы."); return 1; } format(string,sizeof(string),"Вы положили %d$ в тайник",kolvo); SendClientMessage(playerid,COLOR_WHITE,string); PlayerInfo[playerid][ptMoney] += kolvo; GivePlayerMoney(playerid,-kolvo);// ваша переменная на получение денег } else if(strcmp(x_job,"drugs",true) == 0) { if(kolvo > PlayerInfo[playerid][pDrugs]) { SendClientMessage(playerid,COLOR_GREY,"У тебя нет столько наркотиков."); return 1; } format(string,sizeof(string),"Вы положили %d грам наркоты в тайник",kolvo); SendClientMessage(playerid,COLOR_WHITE,string); PlayerInfo[playerid][ptDrugs] += kolvo; PlayerInfo[playerid][pDrugs] -= kolvo; } else if(strcmp(x_job,"mats",true) == 0) { if(kolvo > PlayerInfo[playerid][pMats]) { SendClientMessage(playerid,COLOR_GREY,"У тебя нет столько материалов."); return 1; } format(string,sizeof(string),"Вы положили %d материалов в тайник",kolvo); SendClientMessage(playerid,COLOR_WHITE,string); PlayerInfo[playerid][ptMats] += kolvo; PlayerInfo[playerid][pMats] -= kolvo; } } } return 1; } if(strcmp(cmd, "/ttake", true) == 0)// Командой брать вещи из тайника { if(IsPlayerConnected(playerid)) { new x_job[256]; x_job = strtok(cmdtext, idx); if(!strlen(x_job)) { SendClientMessage(playerid, COLOR_WHITE, "|__________________ Взять из тайника __________________|"); SendClientMessage(playerid, COLOR_WHITE, "Используйте: /ttake [Название] [Кол-во]"); SendClientMessage(playerid, COLOR_GREY, "Доступно: money, drugs, mats"); SendClientMessage(playerid, COLOR_WHITE, "|____________________________________________|"); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /ttake [Название] [Кол-во]"); return 1; } new kolvo = strval(tmp); if(PlayerToPoint(5.0,playerid,539.8622,-506.1435,25.5234))// кординаты заменяйте на свои { if(strcmp(x_job,"money",true) == 0) { if(kolvo > PlayerInfo[playerid][ptMoney]) { SendClientMessage(playerid,COLOR_GREY,"У тебя в хранилище нет такой суммы."); return 1; } format(string,sizeof(string),"Вы взяли %d$ из тайника",kolvo); SendClientMessage(playerid,COLOR_WHITE,string); PlayerInfo[playerid][ptMoney] -= kolvo; GivePlayerMoney(playerid,kolvo);// ваша переменная на дачю денег } else if(strcmp(x_job,"drugs",true) == 0) { if(kolvo > PlayerInfo[playerid][ptDrugs]) { SendClientMessage(playerid,COLOR_GREY,"У тебя в хранилище нет столько наркотиков."); return 1; } format(string,sizeof(string),"Вы взяли %d грам наркоты из тайника",kolvo); SendClientMessage(playerid,COLOR_WHITE,string); PlayerInfo[playerid][ptDrugs] -= kolvo; PlayerInfo[playerid][pDrugs] += kolvo; } else if(strcmp(x_job,"mats",true) == 0) { if(kolvo > PlayerInfo[playerid][ptMats]) { SendClientMessage(playerid,COLOR_GREY,"У тебя в хранилище нет столько материалов."); return 1; } format(string,sizeof(string),"Вы взяли %d материалов из тайника",kolvo); SendClientMessage(playerid,COLOR_WHITE,string); PlayerInfo[playerid][ptMats] -= kolvo; PlayerInfo[playerid][pMats] += kolvo; } } } return 1; } 7) Ну и для красоты ищем public OnGameModeInit и добавляем: Code Create3DTextLabel("[Тайник]\nИспользуйте /tgive что бы положить в тайник\nИспользуйте /ttake что бы забрать из тайника\nИспользуйте /tinfo информация о тайнике",0x0000FFAA,539.8622,-506.1435,25.5234,40.0,0, 1);// Текст так же вставьте свои кординаты AddStaticPickup(1239, 1, 539.8622,-506.1435,25.5234);// Пикап так же вставьте свои кординаты Автор: Kseon |
| |||
| |||