pawno урок vip - 2 версия
admin Дата: Среда, 08.06.2011, 05:54:47 | Сообщение # 1
Группа: Администраторы
Сообщений: 3869
Здравствуйте. Сегодня как и обещал сделать урок по pawno vip 2 версию с командами только,ну вот и сделал ради вас. Оформлено:в долговом окне. Знаем то что в первом pawno уроке vip сделал так что-бы уровень можно было давать. А во 2 версии vip вас ждет с долговом окном с vip функции и рассчитаны на 1,2,3 лв. У каждого есть свой уровень! И так если вы например уровень 1. То вы не можете использовать vip в долговом окне 2,3 лв. Так же если в RCON админ то вы можете использовать все уровни vip. Ну теперь если хотим установить то следуем см.ниже по инструкции. Верху мода: Код
#include <a_samp> #include <Dini> #include <dutils> #define VIP 150 #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 #define COLOR_GREEN 0x33AA33AA #define COLOR_RED 0xAA3333AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_ORANGE 0xFF9900AA #pragma tabsize 0 #define PlayerFile "VIP/%s.ini" enum PLAYER_MAIN { pName[MAX_PLAYER_NAME], Pip[16], Vip_Level } new Pinfo[MAX_PLAYERS][PLAYER_MAIN];
Теперь ищем Код
public OnPlayerConnect
туда вставляем: Код
SendClientMessage(playerid,COLOR_YELLOW,"На сервере стоит vip система,by 26_RUSSS,сайт samp-pawno.ru"); new file[100],Name[MAX_PLAYER_NAME],Ip[16]; GetPlayerName(playerid,Name,sizeof(Name)); GetPlayerIp(playerid,Ip,sizeof(Ip)); format(file,sizeof(file),PlayerFile,Name); if(!dini_Exists(file)) { dini_Create(file); dini_Set(file,"Name",Name); dini_Set(file,"Ip",Ip); dini_IntSet(file,"Vip_Level",0); } Pinfo[playerid][Vip_Level] = dini_Int(file,"Vip_Level");
public так должен выглядеть: Код
public OnPlayerConnect(playerid) { SendClientMessage(playerid,COLOR_YELLOW,"На сервере стоит vip система. BY - 26_RUSSS"); new file[100],Name[MAX_PLAYER_NAME],Ip[16]; GetPlayerName(playerid,Name,sizeof(Name)); GetPlayerIp(playerid,Ip,sizeof(Ip)); format(file,sizeof(file),PlayerFile,Name); if(!dini_Exists(file)) { dini_Create(file); dini_Set(file,"Name",Name); dini_Set(file,"Ip",Ip); dini_IntSet(file,"Vip_Level",0); } Pinfo[playerid][Vip_Level] = dini_Int(file,"Vip_Level"); return 1; }
Дальше ищем Код
public OnPlayerDisconnect
и туда вставляем: Код
new file[100]; format(file,sizeof(file),PlayerFile,Pinfo[playerid][pName]); dini_Set(file,"Name",Pinfo[playerid][pName]); dini_Set(file,"Ip",Pinfo[playerid][Pip]); dini_IntSet(file,"Vip_Level",Pinfo[playerid][Vip_Level]); Pinfo[playerid][Vip_Level] = 0;
public примерно так должен выглядит: Код
public OnPlayerDisconnect(playerid, reason) { new file[100]; format(file,sizeof(file),PlayerFile,Pinfo[playerid][pName]); dini_Set(file,"Name",Pinfo[playerid][pName]); dini_Set(file,"Ip",Pinfo[playerid][Pip]); dini_IntSet(file,"Vip_Level",Pinfo[playerid][Vip_Level]); Pinfo[playerid][Vip_Level] = 0; return 1; }
Дальше ищем Код
public OnPlayerCommandText
и туда вставляем: Код
new cmd[256]; new idx; cmd = strtok(cmdtext, idx); dcmd(setvip,6,cmdtext); dcmd(viplevel,8,cmdtext); if(strcmp(cmdtext,"/vcmds",true)==0) { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны VIP получить у администратора."); { ShowPlayerDialog(playerid,VIP,DIALOG_STYLE_LIST,"{FF002B}VIP команды","{FF002B}Silver VIP команды:\nЖизни {03F2FF}(/heal)\nБроня {03F2FF}(/armor)\n{FF002B}GOLD VIP команды:\nДеньги {03F2FF}(/money)\nОружия - 1 {03F2FF}(/wp1)\nОружия 2 {03F2FF}(/wp2)\n{FF002B}Premium VIP команды:\nЖизни бога {03F2FF}(/hgod)\nБроня бога {03F2FF}(/agod)","Принять","Отмена"); } return 1; } if(strcmp(cmdtext,"/heal",true)==0) { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны VIP получить у администратора."); { SetPlayerHealth(playerid, 100); GameTextForPlayer(playerid,"~r~HEALTH",4000,3); } return 1; } if(strcmp(cmdtext,"/armor",true)==0) { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны VIP получить у администратора."); { SetPlayerArmour(playerid, 100); GameTextForPlayer(playerid,"~w~ARMOUR",4000,3); } return 1; } if(strcmp(cmdtext,"/money",true)==0) { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 2(Лв)"); { GivePlayerMoney(playerid, 1000000); GameTextForPlayer(playerid,"~g~1M$",4000,3); } return 1; } if(strcmp(cmdtext,"/wp1",true)==0) { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 2(Лв)"); { GameTextForPlayer(playerid,"~y~WEAPON 1",4000,3); GivePlayerWeapon(playerid,22,1000000); GivePlayerWeapon(playerid,25,1000000); GivePlayerWeapon(playerid,29,1000000); } return 1; } if(strcmp(cmdtext,"/wp2",true)==0) { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 2(Лв)"); { GameTextForPlayer(playerid,"~y~WEAPON 2",4000,3); GivePlayerWeapon(playerid,24,1000000); GivePlayerWeapon(playerid,27,1000000); GivePlayerWeapon(playerid,31,1000000); } return 1; } if(strcmp(cmdtext,"/hgod",true)==0) { if(Pinfo[playerid][Vip_Level] <3 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 3(Лв)"); { GameTextForPlayer(playerid,"~r~HEALTH BOGA",4000,3); SetPlayerHealth(playerid,99999); } return 1; } if(strcmp(cmdtext,"/agod",true)==0) { if(Pinfo[playerid][Vip_Level] <3 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 3(Лв)"); { GameTextForPlayer(playerid,"~w~ARMOUR BOGA",4000,3); SetPlayerArmour(playerid,99999); } return 1; }
Примерно вот так должен выглядит public: Код
public OnPlayerCommandText(playerid, cmdtext[]) { new cmd[256]; new idx; cmd = strtok(cmdtext, idx); dcmd(setvip,6,cmdtext); dcmd(viplevel,8,cmdtext); if(strcmp(cmdtext,"/vcmds",true)==0) { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны VIP получить у администратора."); { ShowPlayerDialog(playerid,VIP,DIALOG_STYLE_LIST,"{FF002B}VIP команды","{FF002B}Silver VIP команды:\nЖизни {03F2FF}(/heal)\nБроня {03F2FF}(/armor)\n{FF002B}GOLD VIP команды:\nДеньги {03F2FF}(/money)\nОружия - 1 {03F2FF}(/wp1)\nОружия 2 {03F2FF}(/wp2)\n{FF002B}Premium VIP команды:\nЖизни бога {03F2FF}(/hgod)\nБроня бога {03F2FF}(/agod)","Принять","Отмена"); } return 1; } if(strcmp(cmdtext,"/heal",true)==0) { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны VIP получить у администратора."); { SetPlayerHealth(playerid, 100); GameTextForPlayer(playerid,"~r~HEALTH",4000,3); } return 1; } if(strcmp(cmdtext,"/armor",true)==0) { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны VIP получить у администратора."); { SetPlayerArmour(playerid, 100); GameTextForPlayer(playerid,"~w~ARMOUR",4000,3); } return 1; } if(strcmp(cmdtext,"/money",true)==0) { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 2(Лв)"); { GivePlayerMoney(playerid, 1000000); GameTextForPlayer(playerid,"~g~1M$",4000,3); } return 1; } if(strcmp(cmdtext,"/wp1",true)==0) { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 2(Лв)"); { GameTextForPlayer(playerid,"~y~WEAPON 1",4000,3); GivePlayerWeapon(playerid,22,1000000); GivePlayerWeapon(playerid,25,1000000); GivePlayerWeapon(playerid,29,1000000); } return 1; } if(strcmp(cmdtext,"/wp2",true)==0) { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 2(Лв)"); { GameTextForPlayer(playerid,"~y~WEAPON 2",4000,3); GivePlayerWeapon(playerid,24,1000000); GivePlayerWeapon(playerid,27,1000000); GivePlayerWeapon(playerid,31,1000000); } return 1; } if(strcmp(cmdtext,"/hgod",true)==0) { if(Pinfo[playerid][Vip_Level] <3 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 3(Лв)"); { GameTextForPlayer(playerid,"~r~HEALTH BOGA",4000,3); SetPlayerHealth(playerid,99999); } return 1; } if(strcmp(cmdtext,"/agod",true)==0) { if(Pinfo[playerid][Vip_Level] <3 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 3(Лв)"); { GameTextForPlayer(playerid,"~w~ARMOUR BOGA",4000,3); SetPlayerArmour(playerid,99999); } return 1; } return 0; }
Далее копируйте только вот эти команды и функции что см.ниже идет тоже копируем: Код
dcmd_setvip(playerid, params[])
и Код
dcmd_viplevel(playerid, params[])
далее как команды скопировали в dcmd дальше ищем Код
public OnDialogResponse
Сразу скину вам как должен выглядеть public этот! Код
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(response) { switch(dialogid == VIP) { case 1: { switch(listitem) { case 0: { ShowPlayerDialog(playerid,VIP,DIALOG_STYLE_LIST,"{FF002B}VIP команды","{FF002B}Silver VIP команды:\nЖизни {03F2FF}(/heal)\nБроня {03F2FF}(/armor)\n{FF002B}GOLD VIP команды:\nДеньги {03F2FF}(/money)\nОружия - 1 {03F2FF}(/wp1)\nОружия 2 {03F2FF}(/wp2)\n{FF002B}Premium VIP команды:\nЖизни бога {03F2FF}(/hgod)\nБроня бога {03F2FF}(/agod)","Принять","Отмена"); } case 1: { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны получить VIP у администратора."); { SetPlayerHealth(playerid, 100); GameTextForPlayer(playerid,"~r~HEALTH",4000,3); } } case 2: { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны получить VIP у администратора."); { SetPlayerArmour(playerid, 100); GameTextForPlayer(playerid,"~w~ARMOUR",4000,3); } } case 3: { ShowPlayerDialog(playerid,VIP,DIALOG_STYLE_LIST,"{FF002B}VIP команды","{FF002B}Silver VIP команды:\nЖизни {03F2FF}(/heal)\nБроня {03F2FF}(/armor)\n{FF002B}GOLD VIP команды:\nДеньги {03F2FF}(/money)\nОружия - 1 {03F2FF}(/wp1)\nОружия 2 {03F2FF}(/wp2)\n{FF002B}Premium VIP команды:\nЖизни бога {03F2FF}(/hgod)\nБроня бога {03F2FF}(/agod)","Принять","Отмена"); } case 4: { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны получить у администратора vip 2 (ЛВ)"); { GivePlayerMoney(playerid, 1000000); GameTextForPlayer(playerid,"~g~1M$",4000,3); } } case 5: { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны получить у администратора vip 2 (ЛВ)"); { GameTextForPlayer(playerid,"~y~WEAPON 1",4000,3); GivePlayerWeapon(playerid,22,1000000); GivePlayerWeapon(playerid,25,1000000); GivePlayerWeapon(playerid,29,1000000); } } case 6: { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны получить у администратора vip 2 (ЛВ)"); { GameTextForPlayer(playerid,"~y~WEAPON 2",4000,3); GivePlayerWeapon(playerid,24,1000000); GivePlayerWeapon(playerid,27,1000000); GivePlayerWeapon(playerid,31,1000000); } } case 7: { ShowPlayerDialog(playerid,VIP,DIALOG_STYLE_LIST,"{FF002B}VIP команды","{FF002B}Silver VIP команды:\nЖизни {03F2FF}(/heal)\nБроня {03F2FF}(/armor)\n{FF002B}GOLD VIP команды:\nДеньги {03F2FF}(/money)\nОружия - 1 {03F2FF}(/wp1)\nОружия 2 {03F2FF}(/wp2)\n{FF002B}Premium VIP команды:\nЖизни бога {03F2FF}(/hgod)\nБроня бога {03F2FF}(/agod)","Принять","Отмена"); } case 8: { if(Pinfo[playerid][Vip_Level] <3 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны получить у администратора vip 3(ЛВ)"); { GameTextForPlayer(playerid,"~r~HEALTH BOGA",4000,3); SetPlayerHealth(playerid,99999); } } case 9: { if(Pinfo[playerid][Vip_Level] <3 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны получить у администратора vip 3(ЛВ)"); { GameTextForPlayer(playerid,"~w~ARMOUR BOGA",4000,3); SetPlayerArmour(playerid,99999); } } } } } } return 1; }
Далее снизу мода или снизу FS добавим функцию!
zm-jail.ru Разработка сайта samp-pawno.ru
Сообщение Здравствуйте. Сегодня как и обещал сделать урок по pawno vip 2 версию с командами только,ну вот и сделал ради вас. Оформлено:в долговом окне. Знаем то что в первом pawno уроке vip сделал так что-бы уровень можно было давать. А во 2 версии vip вас ждет с долговом окном с vip функции и рассчитаны на 1,2,3 лв. У каждого есть свой уровень! И так если вы например уровень 1. То вы не можете использовать vip в долговом окне 2,3 лв. Так же если в RCON админ то вы можете использовать все уровни vip. Ну теперь если хотим установить то следуем см.ниже по инструкции. Верху мода: Код
#include <a_samp> #include <Dini> #include <dutils> #define VIP 150 #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 #define COLOR_GREEN 0x33AA33AA #define COLOR_RED 0xAA3333AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_ORANGE 0xFF9900AA #pragma tabsize 0 #define PlayerFile "VIP/%s.ini" enum PLAYER_MAIN { pName[MAX_PLAYER_NAME], Pip[16], Vip_Level } new Pinfo[MAX_PLAYERS][PLAYER_MAIN];
Теперь ищем Код
public OnPlayerConnect
туда вставляем: Код
SendClientMessage(playerid,COLOR_YELLOW,"На сервере стоит vip система,by 26_RUSSS,сайт samp-pawno.ru"); new file[100],Name[MAX_PLAYER_NAME],Ip[16]; GetPlayerName(playerid,Name,sizeof(Name)); GetPlayerIp(playerid,Ip,sizeof(Ip)); format(file,sizeof(file),PlayerFile,Name); if(!dini_Exists(file)) { dini_Create(file); dini_Set(file,"Name",Name); dini_Set(file,"Ip",Ip); dini_IntSet(file,"Vip_Level",0); } Pinfo[playerid][Vip_Level] = dini_Int(file,"Vip_Level");
public так должен выглядеть: Код
public OnPlayerConnect(playerid) { SendClientMessage(playerid,COLOR_YELLOW,"На сервере стоит vip система. BY - 26_RUSSS"); new file[100],Name[MAX_PLAYER_NAME],Ip[16]; GetPlayerName(playerid,Name,sizeof(Name)); GetPlayerIp(playerid,Ip,sizeof(Ip)); format(file,sizeof(file),PlayerFile,Name); if(!dini_Exists(file)) { dini_Create(file); dini_Set(file,"Name",Name); dini_Set(file,"Ip",Ip); dini_IntSet(file,"Vip_Level",0); } Pinfo[playerid][Vip_Level] = dini_Int(file,"Vip_Level"); return 1; }
Дальше ищем Код
public OnPlayerDisconnect
и туда вставляем: Код
new file[100]; format(file,sizeof(file),PlayerFile,Pinfo[playerid][pName]); dini_Set(file,"Name",Pinfo[playerid][pName]); dini_Set(file,"Ip",Pinfo[playerid][Pip]); dini_IntSet(file,"Vip_Level",Pinfo[playerid][Vip_Level]); Pinfo[playerid][Vip_Level] = 0;
public примерно так должен выглядит: Код
public OnPlayerDisconnect(playerid, reason) { new file[100]; format(file,sizeof(file),PlayerFile,Pinfo[playerid][pName]); dini_Set(file,"Name",Pinfo[playerid][pName]); dini_Set(file,"Ip",Pinfo[playerid][Pip]); dini_IntSet(file,"Vip_Level",Pinfo[playerid][Vip_Level]); Pinfo[playerid][Vip_Level] = 0; return 1; }
Дальше ищем Код
public OnPlayerCommandText
и туда вставляем: Код
new cmd[256]; new idx; cmd = strtok(cmdtext, idx); dcmd(setvip,6,cmdtext); dcmd(viplevel,8,cmdtext); if(strcmp(cmdtext,"/vcmds",true)==0) { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны VIP получить у администратора."); { ShowPlayerDialog(playerid,VIP,DIALOG_STYLE_LIST,"{FF002B}VIP команды","{FF002B}Silver VIP команды:\nЖизни {03F2FF}(/heal)\nБроня {03F2FF}(/armor)\n{FF002B}GOLD VIP команды:\nДеньги {03F2FF}(/money)\nОружия - 1 {03F2FF}(/wp1)\nОружия 2 {03F2FF}(/wp2)\n{FF002B}Premium VIP команды:\nЖизни бога {03F2FF}(/hgod)\nБроня бога {03F2FF}(/agod)","Принять","Отмена"); } return 1; } if(strcmp(cmdtext,"/heal",true)==0) { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны VIP получить у администратора."); { SetPlayerHealth(playerid, 100); GameTextForPlayer(playerid,"~r~HEALTH",4000,3); } return 1; } if(strcmp(cmdtext,"/armor",true)==0) { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны VIP получить у администратора."); { SetPlayerArmour(playerid, 100); GameTextForPlayer(playerid,"~w~ARMOUR",4000,3); } return 1; } if(strcmp(cmdtext,"/money",true)==0) { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 2(Лв)"); { GivePlayerMoney(playerid, 1000000); GameTextForPlayer(playerid,"~g~1M$",4000,3); } return 1; } if(strcmp(cmdtext,"/wp1",true)==0) { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 2(Лв)"); { GameTextForPlayer(playerid,"~y~WEAPON 1",4000,3); GivePlayerWeapon(playerid,22,1000000); GivePlayerWeapon(playerid,25,1000000); GivePlayerWeapon(playerid,29,1000000); } return 1; } if(strcmp(cmdtext,"/wp2",true)==0) { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 2(Лв)"); { GameTextForPlayer(playerid,"~y~WEAPON 2",4000,3); GivePlayerWeapon(playerid,24,1000000); GivePlayerWeapon(playerid,27,1000000); GivePlayerWeapon(playerid,31,1000000); } return 1; } if(strcmp(cmdtext,"/hgod",true)==0) { if(Pinfo[playerid][Vip_Level] <3 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 3(Лв)"); { GameTextForPlayer(playerid,"~r~HEALTH BOGA",4000,3); SetPlayerHealth(playerid,99999); } return 1; } if(strcmp(cmdtext,"/agod",true)==0) { if(Pinfo[playerid][Vip_Level] <3 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 3(Лв)"); { GameTextForPlayer(playerid,"~w~ARMOUR BOGA",4000,3); SetPlayerArmour(playerid,99999); } return 1; }
Примерно вот так должен выглядит public: Код
public OnPlayerCommandText(playerid, cmdtext[]) { new cmd[256]; new idx; cmd = strtok(cmdtext, idx); dcmd(setvip,6,cmdtext); dcmd(viplevel,8,cmdtext); if(strcmp(cmdtext,"/vcmds",true)==0) { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны VIP получить у администратора."); { ShowPlayerDialog(playerid,VIP,DIALOG_STYLE_LIST,"{FF002B}VIP команды","{FF002B}Silver VIP команды:\nЖизни {03F2FF}(/heal)\nБроня {03F2FF}(/armor)\n{FF002B}GOLD VIP команды:\nДеньги {03F2FF}(/money)\nОружия - 1 {03F2FF}(/wp1)\nОружия 2 {03F2FF}(/wp2)\n{FF002B}Premium VIP команды:\nЖизни бога {03F2FF}(/hgod)\nБроня бога {03F2FF}(/agod)","Принять","Отмена"); } return 1; } if(strcmp(cmdtext,"/heal",true)==0) { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны VIP получить у администратора."); { SetPlayerHealth(playerid, 100); GameTextForPlayer(playerid,"~r~HEALTH",4000,3); } return 1; } if(strcmp(cmdtext,"/armor",true)==0) { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны VIP получить у администратора."); { SetPlayerArmour(playerid, 100); GameTextForPlayer(playerid,"~w~ARMOUR",4000,3); } return 1; } if(strcmp(cmdtext,"/money",true)==0) { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 2(Лв)"); { GivePlayerMoney(playerid, 1000000); GameTextForPlayer(playerid,"~g~1M$",4000,3); } return 1; } if(strcmp(cmdtext,"/wp1",true)==0) { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 2(Лв)"); { GameTextForPlayer(playerid,"~y~WEAPON 1",4000,3); GivePlayerWeapon(playerid,22,1000000); GivePlayerWeapon(playerid,25,1000000); GivePlayerWeapon(playerid,29,1000000); } return 1; } if(strcmp(cmdtext,"/wp2",true)==0) { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 2(Лв)"); { GameTextForPlayer(playerid,"~y~WEAPON 2",4000,3); GivePlayerWeapon(playerid,24,1000000); GivePlayerWeapon(playerid,27,1000000); GivePlayerWeapon(playerid,31,1000000); } return 1; } if(strcmp(cmdtext,"/hgod",true)==0) { if(Pinfo[playerid][Vip_Level] <3 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 3(Лв)"); { GameTextForPlayer(playerid,"~r~HEALTH BOGA",4000,3); SetPlayerHealth(playerid,99999); } return 1; } if(strcmp(cmdtext,"/agod",true)==0) { if(Pinfo[playerid][Vip_Level] <3 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны у администратора получить vip 3(Лв)"); { GameTextForPlayer(playerid,"~w~ARMOUR BOGA",4000,3); SetPlayerArmour(playerid,99999); } return 1; } return 0; }
Далее копируйте только вот эти команды и функции что см.ниже идет тоже копируем: Код
dcmd_setvip(playerid, params[])
и Код
dcmd_viplevel(playerid, params[])
далее как команды скопировали в dcmd дальше ищем Код
public OnDialogResponse
Сразу скину вам как должен выглядеть public этот! Код
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(response) { switch(dialogid == VIP) { case 1: { switch(listitem) { case 0: { ShowPlayerDialog(playerid,VIP,DIALOG_STYLE_LIST,"{FF002B}VIP команды","{FF002B}Silver VIP команды:\nЖизни {03F2FF}(/heal)\nБроня {03F2FF}(/armor)\n{FF002B}GOLD VIP команды:\nДеньги {03F2FF}(/money)\nОружия - 1 {03F2FF}(/wp1)\nОружия 2 {03F2FF}(/wp2)\n{FF002B}Premium VIP команды:\nЖизни бога {03F2FF}(/hgod)\nБроня бога {03F2FF}(/agod)","Принять","Отмена"); } case 1: { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны получить VIP у администратора."); { SetPlayerHealth(playerid, 100); GameTextForPlayer(playerid,"~r~HEALTH",4000,3); } } case 2: { if(Pinfo[playerid][Vip_Level] <1 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны получить VIP у администратора."); { SetPlayerArmour(playerid, 100); GameTextForPlayer(playerid,"~w~ARMOUR",4000,3); } } case 3: { ShowPlayerDialog(playerid,VIP,DIALOG_STYLE_LIST,"{FF002B}VIP команды","{FF002B}Silver VIP команды:\nЖизни {03F2FF}(/heal)\nБроня {03F2FF}(/armor)\n{FF002B}GOLD VIP команды:\nДеньги {03F2FF}(/money)\nОружия - 1 {03F2FF}(/wp1)\nОружия 2 {03F2FF}(/wp2)\n{FF002B}Premium VIP команды:\nЖизни бога {03F2FF}(/hgod)\nБроня бога {03F2FF}(/agod)","Принять","Отмена"); } case 4: { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны получить у администратора vip 2 (ЛВ)"); { GivePlayerMoney(playerid, 1000000); GameTextForPlayer(playerid,"~g~1M$",4000,3); } } case 5: { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны получить у администратора vip 2 (ЛВ)"); { GameTextForPlayer(playerid,"~y~WEAPON 1",4000,3); GivePlayerWeapon(playerid,22,1000000); GivePlayerWeapon(playerid,25,1000000); GivePlayerWeapon(playerid,29,1000000); } } case 6: { if(Pinfo[playerid][Vip_Level] <2 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны получить у администратора vip 2 (ЛВ)"); { GameTextForPlayer(playerid,"~y~WEAPON 2",4000,3); GivePlayerWeapon(playerid,24,1000000); GivePlayerWeapon(playerid,27,1000000); GivePlayerWeapon(playerid,31,1000000); } } case 7: { ShowPlayerDialog(playerid,VIP,DIALOG_STYLE_LIST,"{FF002B}VIP команды","{FF002B}Silver VIP команды:\nЖизни {03F2FF}(/heal)\nБроня {03F2FF}(/armor)\n{FF002B}GOLD VIP команды:\nДеньги {03F2FF}(/money)\nОружия - 1 {03F2FF}(/wp1)\nОружия 2 {03F2FF}(/wp2)\n{FF002B}Premium VIP команды:\nЖизни бога {03F2FF}(/hgod)\nБроня бога {03F2FF}(/agod)","Принять","Отмена"); } case 8: { if(Pinfo[playerid][Vip_Level] <3 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны получить у администратора vip 3(ЛВ)"); { GameTextForPlayer(playerid,"~r~HEALTH BOGA",4000,3); SetPlayerHealth(playerid,99999); } } case 9: { if(Pinfo[playerid][Vip_Level] <3 && IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,COLOR_RED,"Вы должны получить у администратора vip 3(ЛВ)"); { GameTextForPlayer(playerid,"~w~ARMOUR BOGA",4000,3); SetPlayerArmour(playerid,99999); } } } } } } return 1; }
Далее снизу мода или снизу FS добавим функцию!Автор - admin Дата добавления - 08.06.2011 в 05:54:47
admin Дата: Среда, 08.06.2011, 06:01:47 | Сообщение # 2
Группа: Администраторы
Сообщений: 3869
Code
stock sscanf(string[], format[], {Float,_}:...) { #if defined isnull if (isnull(string)) #else if (string[0] == 0 || (string[0] == 1 && string[1] == 0)) #endif { return format[0]; } #pragma tabsize 4 new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(), delim = ' '; while (string[stringPos] && string[stringPos] <= ' ') { stringPos++; } while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if ('0' <= ch <= '9') { num = (num * 10) + (ch - '0'); } else { return -1; } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new num = 0, ch = string[stringPos]; do { stringPos++; switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } default: { return -1; } } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { new changestr[16], changepos = 0, strpos = stringPos; while(changepos < 16 && string[strpos] && string[strpos] != delim) { changestr[changepos++] = string[strpos++]; } changestr[changepos] = '\0'; setarg(paramPos,0,_:floatstr(changestr)); } case 'p': { delim = format[formatPos++]; continue; } case '\'': { new end = formatPos - 1, ch; while ((ch = format[++end]) && ch != '\'') {} if (!ch) { return -1; } format[end] = '\0'; if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1) { if (format[end + 1]) { return -1; } return 0; } format[end] = '\''; stringPos = ch + (end - formatPos); formatPos = end + 1; } case 'u': { new end = stringPos - 1, id = 0, bool:num = true, ch; while ((ch = string[++end]) && ch != delim) { if (num) { if ('0' <= ch <= '9') { id = (id * 10) + (ch - '0'); } else { num = false; } } } if (num && IsPlayerConnected(id)) { setarg(paramPos, 0, id); } else { #if !defined foreach #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2)) #define __SSCANF_FOREACH__ #endif string[end] = '\0'; num = false; new name[MAX_PLAYER_NAME]; id = end - stringPos; foreach (Player, playerid) { GetPlayerName(playerid, name, sizeof (name)); if (!strcmp(name, string[stringPos], true, id)) { setarg(paramPos, 0, playerid); num = true; break; } } if (!num) { setarg(paramPos, 0, INVALID_PLAYER_ID); } string[end] = ch; #if defined __SSCANF_FOREACH__ #undef foreach #undef __SSCANF_FOREACH__ #endif } stringPos = end; } case 's', 'z': { new i = 0, ch; if (format[formatPos]) { while ((ch = string[stringPos++]) && ch != delim) { setarg(paramPos, i++, ch); } if (!i) { return -1; } } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ') { stringPos++; } while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' ')) { stringPos++; } paramPos++; } do { if ((delim = format[formatPos++]) > ' ') { if (delim == '\'') { while ((delim = format[formatPos++]) && delim != '\'') {} } else if (delim != 'z') { return delim; } } } while (delim > ' '); return 0; }
На этом сохраняем наш (GM)или (FS) если все нормально получилось значит вы нормально сделали ну это еще не все!! теперь качаем архив если у кого даже не получилось можете FS vip глянуть ! все делайте как там в папках раскидайте у себя и все и у вас будет работать vip system лично я делал и проверял у меня на все "ОК" работает! [p.s.так же как все расскидали по папкам откройте server.cfg и там добавьте вот это:plugins sscanf если у вас linux то вот так должно быть: plugins sscanf.so ] Все на этом удачи!урок окончен кому понравилось тот + Автор:26_RUSSS Урок:26_RUSSS
zm-jail.ru Разработка сайта samp-pawno.ru
Сообщение отредактировал [east_side]_trane - Воскресенье, 16.10.2011, 08:40:14
Сообщение Code
stock sscanf(string[], format[], {Float,_}:...) { #if defined isnull if (isnull(string)) #else if (string[0] == 0 || (string[0] == 1 && string[1] == 0)) #endif { return format[0]; } #pragma tabsize 4 new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(), delim = ' '; while (string[stringPos] && string[stringPos] <= ' ') { stringPos++; } while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if ('0' <= ch <= '9') { num = (num * 10) + (ch - '0'); } else { return -1; } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new num = 0, ch = string[stringPos]; do { stringPos++; switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } default: { return -1; } } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { new changestr[16], changepos = 0, strpos = stringPos; while(changepos < 16 && string[strpos] && string[strpos] != delim) { changestr[changepos++] = string[strpos++]; } changestr[changepos] = '\0'; setarg(paramPos,0,_:floatstr(changestr)); } case 'p': { delim = format[formatPos++]; continue; } case '\'': { new end = formatPos - 1, ch; while ((ch = format[++end]) && ch != '\'') {} if (!ch) { return -1; } format[end] = '\0'; if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1) { if (format[end + 1]) { return -1; } return 0; } format[end] = '\''; stringPos = ch + (end - formatPos); formatPos = end + 1; } case 'u': { new end = stringPos - 1, id = 0, bool:num = true, ch; while ((ch = string[++end]) && ch != delim) { if (num) { if ('0' <= ch <= '9') { id = (id * 10) + (ch - '0'); } else { num = false; } } } if (num && IsPlayerConnected(id)) { setarg(paramPos, 0, id); } else { #if !defined foreach #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2)) #define __SSCANF_FOREACH__ #endif string[end] = '\0'; num = false; new name[MAX_PLAYER_NAME]; id = end - stringPos; foreach (Player, playerid) { GetPlayerName(playerid, name, sizeof (name)); if (!strcmp(name, string[stringPos], true, id)) { setarg(paramPos, 0, playerid); num = true; break; } } if (!num) { setarg(paramPos, 0, INVALID_PLAYER_ID); } string[end] = ch; #if defined __SSCANF_FOREACH__ #undef foreach #undef __SSCANF_FOREACH__ #endif } stringPos = end; } case 's', 'z': { new i = 0, ch; if (format[formatPos]) { while ((ch = string[stringPos++]) && ch != delim) { setarg(paramPos, i++, ch); } if (!i) { return -1; } } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ') { stringPos++; } while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' ')) { stringPos++; } paramPos++; } do { if ((delim = format[formatPos++]) > ' ') { if (delim == '\'') { while ((delim = format[formatPos++]) && delim != '\'') {} } else if (delim != 'z') { return delim; } } } while (delim > ' '); return 0; }
На этом сохраняем наш (GM)или (FS) если все нормально получилось значит вы нормально сделали ну это еще не все!! теперь качаем архив если у кого даже не получилось можете FS vip глянуть ! все делайте как там в папках раскидайте у себя и все и у вас будет работать vip system лично я делал и проверял у меня на все "ОК" работает! [p.s.так же как все расскидали по папкам откройте server.cfg и там добавьте вот это:plugins sscanf если у вас linux то вот так должно быть: plugins sscanf.so ] Все на этом удачи!урок окончен кому понравилось тот + Автор:26_RUSSS Урок:26_RUSSS Автор - admin Дата добавления - 08.06.2011 в 06:01:47
Загрузка страницы, займет меньше минуты...
Статистика Форума
Последнии темы
Читаемые темы
Лучшие пользователи
Новые пользователи