Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: mr.co0per poslato Septembar 02, 2012, 03:23:44 PRE PODNE

Naslov: [Pomoc] Dialog
Poruka od: mr.co0per poslato Septembar 02, 2012, 03:23:44 PRE PODNE
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;
}
Naslov: Odg: [Pomoc] Dialog
Poruka od: Stari covek poslato Septembar 02, 2012, 13:29:29 POSLE PODNE
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 :)