Skripta koju koristim:CLRP
Detaljan opis problema:Pa Ovako , Zelim da Napravim /invite sas Dijalog , ali ne razumem , probao sam ali ne uspije ... Molim vas Pomozite
Dio skripte: /invite
Neke slike/video za lakse dobivanje pomoci(neobavezno): /
if(strcmp(cmd, "/invite", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "{37F906}INFO:{FFFFFF} /invite [Id/Dio Imena Igraca].");
return 1;
}
new para1;
new ftext[20];
para1 = ReturnUser(tmp);
if (PlayerInfo[playerid][pLeader] >= 1)
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
if (gTeam[para1] == TEAM_GREEN && PlayerInfo[para1][pMember] == 0 && PlayerInfo[para1][pFMember] == 255)
{
if(PlayerInfo[playerid][pLeader] == 1) { PlayerInfo[para1][pTeam] = 2; gTeam[para1] = 2; ftext = "PD"; ChosenSkin[para1] = 282; SetPlayerSkin(para1, 282); }
else if(PlayerInfo[playerid][pLeader] == 2) { PlayerInfo[para1][pTeam] = 2; gTeam[para1] = 2; ftext = "FBI"; ChosenSkin[para1] = 24; SetPlayerSkin(para1, 24); }
else if(PlayerInfo[playerid][pLeader] == 3) { PlayerInfo[para1][pTeam] = 2; gTeam[para1] = 2; ftext = "SWAT"; ChosenSkin[para1] = 285; SetPlayerSkin(para1, 285); }
else if(PlayerInfo[playerid][pLeader] == 4) { PlayerInfo[para1][pTeam] = 1; gTeam[para1] = 1; ftext = "MD"; ChosenSkin[para1] = 276; SetPlayerSkin(para1, 276); }
else if(PlayerInfo[playerid][pLeader] == 5) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "Yakuza"; ChosenSkin[para1] = 121; SetPlayerSkin(para1, 121); }
else if(PlayerInfo[playerid][pLeader] == 6) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "LCN"; ChosenSkin[para1] = 112; SetPlayerSkin(para1, 112); }
else if(PlayerInfo[playerid][pLeader] == 7) { PlayerInfo[para1][pTeam] = 7; gTeam[para1] = 7; ftext = "VLADA"; ChosenSkin[para1] = 164; SetPlayerSkin(para1, 164); }
else if(PlayerInfo[playerid][pLeader] == 8) { PlayerInfo[para1][pTeam] = 10; gTeam[para1] = 12; ftext = "Hitman"; ChosenSkin[para1] = 20; SetPlayerSkin(para1, 20); }
else if(PlayerInfo[playerid][pLeader] == 9) { PlayerInfo[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "LSN"; ChosenSkin[para1] = 1; SetPlayerSkin(para1, 1); }
else if(PlayerInfo[playerid][pLeader] == 10) { PlayerInfo[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "Taxi"; ChosenSkin[para1] = 210; SetPlayerSkin(para1, 210); }
else if(PlayerInfo[playerid][pLeader] == 12) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "LSG"; ChosenSkin[para1] = 175; SetPlayerSkin(para1, 175); }
else if(PlayerInfo[playerid][pLeader] == 13) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "Los Surenos"; ChosenSkin[para1] = 175; SetPlayerSkin(para1, 175); }
else if(PlayerInfo[playerid][pLeader] == 14) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "Carbon Racer's"; ChosenSkin[para1] = 23; SetPlayerSkin(para1, 23); }
else if(PlayerInfo[playerid][pLeader] == 15) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "GSF"; ChosenSkin[para1] = 105; SetPlayerSkin(para1, 105); }
else if(PlayerInfo[playerid][pLeader] == 16) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "LSV"; ChosenSkin[para1] = 108; SetPlayerSkin(para1, 108); }
else { return 1; }
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pMember] = PlayerInfo[playerid][pLeader];
PlayerInfo[para1][pRank] = 1;
printf("AdmCmd: %s je pozvao %s-a da se pridruzi %s.", sendername, giveplayer, ftext);
format(string, sizeof(string), "{37F906}INFO:{FFFFFF}Pokanjeti ste u %s, od %s", ftext, sendername);
SendClientMessage(para1, COLOR_WHITE, string);
format(string, sizeof(string), "{37F906}INFO:{FFFFFF}Pokanio si %s da udje u %s.", giveplayer,ftext);
SendClientMessage(playerid, COLOR_WHITE, string);
}
else
{
SendClientMessage(playerid, WHITE, "{FF0000}GRESKA:{FFFFFF}Igrac je vec u org/band/mafiju.");
return 1;
}
}
}
}
else
{
SendClientMessage(playerid, WHITE, "{FF0000}GRESKA:{FFFFFF}Samo Lidere.");
}
}
return 1;
}
Hoces da bude /invite u dialogu i onda da tom igracu kojeg lidera pozove u organizaciju da izbaci dialog i da ga pita da li zeli ili ne zeli?
Ako si to zeleo koristis: ShowPlayerDialog (http://wiki.sa-mp.com/wiki/ShowPlayerDialog) i koristi DIALOG_STYLE_MSGBOX i stavis dva dugmeta normalno. U komandi /invite obrisi:
PlayerInfo[para1][pMember] = PlayerInfo[playerid][pLeader];
PlayerInfo[para1][pRank] = 1;
da nebi igraca odmah ubacilo u organizaciju. I u tu komandu dodaj:
SetPVarInt(para1,"Pozvan",playerid); - da bi zapamtili ko je pozvao tog igraca uradio sam sa PVar-om nece za toliko biti problem
Zatim idi pod OnDialogResponse i napravis dialog:
switch(dialogid)
{
case ID_DIALOG_KOJI_SI_STAVIO://Stavi svoj id
{
if(!response)//Ako pritisne drugo dugme sto znaci sta ce biti ako ga npr. odbije
{
new id = GetPVarInt(playerid,"Pozvan");
SendClientMessage(id,"Igrac je odbio vas pozvi");
SendClientMessage(playerid,"Odbili ste poziv");
return 1;
}
//Sada ovde ide sta ce biti ako prihvati igraca
new id = GetPVarInt(playerid,"Pozvan");//To ce biti ID igraca koji je kucao /invite
PlayerInfo[playerid][pMember] = PlayerInfo[id][pLeader];
PlayerInfo[playerid][pRank] = 1;
SendClientMessage(id,"Igrac je prihvatio vas poziv");
SendClientMessage(playerid,"Prihvatili ste poziv ste poziv");
}
}
Ovo ti je uglavnom objasnjenje da bi shvatio kako se radi jer je cilj da ti naucis :)