[Pomoc] Uporedjivanje string sa textom


Započeo Ermin., Mart 16, 2013, 16:57:49 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: 0
Detaljan opis problema: pa ovako uzeo sam HitSys iz GFa ofc, i sve sam prilagodio modu, osim sledeceg
if(ConnectedToPC[playerid] == 255)
   {
      new idx,tmp;
       tmp = strtok(text, idx); // error 006: must be assigned to an array
      // i na ostalim mjestima gdje je tmp
       if ((strcmp("Contracts", text, true, strlen(text)) == 0) && (strlen(text) == strlen("Contracts")))
      {
          if(PlayerInfo[playerid][pRank] < 4)
          {
              SendClientMessage(playerid, COLOR_GREY, "  Samo ubojice sa visokim iskustvom mogu traziti i dodjeljivati mete !");
              return 0;
          }
          SearchingHit(playerid);
         return 0;
      }
      else if ((strcmp("Givehit", text, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("Givehit")))
      {
          if(PlayerInfo[playerid][pRank] < 4)
          {
              SendClientMessage(playerid, COLOR_GREY, "   Morate biti rank 4 ili vei da dodjeljujete mete hitmanima !");
              return 0;
          }
          if(hitfound == 0)
          {
              SendClientMessage(playerid, COLOR_GREY, "   Trenutno nema meta, koristi Contracts prvo");
              return 0;
          }
          tmp = strtok(text, idx);
          if(!strlen(tmp))
         {
            SendClientMessage(playerid, COLOR_GRAD1, "Koristi: Givehit [playerid/DioImena]");
            return 0;
         }
         giveplayerid = ReturnUser(tmp);
         if(IsPlayerConnected(giveplayerid))
         {
             if(giveplayerid != INVALID_PLAYER_ID)
             {
                if(PlayerInfo[giveplayerid][pMember] !=
                {
                    SendClientMessage(playerid, COLOR_GREY, "   Taj igrac nije ubojica !");
                  return 0;
                }
                if(GoChase[giveplayerid] < 999)
                {
                    SendClientMessage(playerid, COLOR_GREY, "   Taj igrac vec ima metu !");
                  return 0;
                }
                if(IsPlayerConnected(hitid))
                {
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    GetPlayerName(giveplayerid, giver, sizeof(giver));
                    GetPlayerName(hitid, giveplayer, sizeof(giveplayer));
                   format(string, sizeof(string), "* Hitman %s, je zaposlio %s da ubije: %s(ID:%d), za $%d.", sendername, giver, giveplayer, hitid, PlayerInfo[hitid][pHeadValue]);
                   SendFamilyMessage(8, COLOR_YELLOW, string);
                   GoChase[giveplayerid] = hitid;
                   GetChased[hitid] = giveplayerid;
                   GotHit[hitid] = 1;
                   hitid = 0;
                   hitfound = 0;
                    return 0;
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   Meta je offline, koristi Contracts ponovo!");
                    return 0;
                }
            }
            return 0;
         }
         else
         {
             SendClientMessage(playerid, COLOR_GREY, "   Taj hitman nije online, ili nije Hitman !");
             return 0;
         }
      }
      else if ((strcmp("Ranks", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("Ranks")))
      {
         SendClientMessage(playerid, COLOR_WHITE, "|__________________ Rankovi Agencije __________________|");
          for(new i=0; i < MAX_PLAYERS; i++)
         {
            if(IsPlayerConnected(i))
            {
                if(PlayerInfo[i][pMember] == 8||PlayerInfo[i][pLeader] ==
                {
                  GetPlayerName(i, giveplayer, sizeof(giveplayer));
                    format(string, sizeof(string), "* %s: Rank %d", giveplayer,PlayerInfo[i][pRank]);
                  SendClientMessage(playerid, COLOR_GREY, string);
               }
            }
         }
      }
      else if ((strcmp("Order", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("Order")))
      {
          tmp = strtok(text, idx);
          if ((strcmp("1", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("1")))
         {
             if(PlayerInfo[playerid][pRank] < 1) { SendClientMessage(playerid, COLOR_GREY, "   Nisi dovoljan rank za taj paket !"); return 0; }
             if(GetPlayerMoney(playerid) > 499)
             {
                 SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Narucili ste paket 1 ($500), paket je bacen iz helikoptera i nalazi se kod vas.");
                 GivePlayerWeapon(playerid, 24, 50); GivePlayerWeapon(playerid, 29, 500); GivePlayerWeapon(playerid, 25, 50); GivePlayerWeapon(playerid, 4, 1);
                    GivePlayerMoney(playerid, - 500);
                 return 0;
             }
             else
             {
                 SendClientMessage(playerid, COLOR_GREY,"   Ne mozes si priustiti taj paket !");
                 return 0;
             }
         }
         else if ((strcmp("2", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("2")))
         {
            if(PlayerInfo[playerid][pRank] < 2){ SendClientMessage(playerid, COLOR_GREY, "   Nisi dovoljan rank za taj paket !"); return 0; }
             if(GetPlayerMoney(playerid) > 599)
             {
                 SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Narucili ste paket 2 ($600), paket je bacen iz helikoptera i nalazi se kod vas.");
                 GivePlayerWeapon(playerid, 24, 50); GivePlayerWeapon(playerid, 29, 500); GivePlayerWeapon(playerid, 25, 50); GivePlayerWeapon(playerid, 31, 500); GivePlayerWeapon(playerid, 4, 1);
                    GivePlayerMoney(playerid, - 600);
                 return 0;
             }
             else
             {
                 SendClientMessage(playerid, COLOR_GREY,"   Ne mozes si priustiti taj paket !");
                 return 0;
             }
         }
         else if ((strcmp("3", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("3")))
         {
             if(PlayerInfo[playerid][pRank] < 2) { SendClientMessage(playerid, COLOR_GREY, "   Nisi dovoljan rank za taj paket !"); return 0; }
             if(GetPlayerMoney(playerid) > 599)
             {
                 SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Narucili ste paket 3 ($600), paket je bacen iz helikoptera i nalazi se kod vas.");
                 GivePlayerWeapon(playerid, 24, 50); GivePlayerWeapon(playerid, 29, 500); GivePlayerWeapon(playerid, 25, 50); GivePlayerWeapon(playerid, 30, 500); GivePlayerWeapon(playerid, 4, 1);
                    GivePlayerMoney(playerid, - 600);
                 return 0;
             }
             else
             {
                 SendClientMessage(playerid, COLOR_GREY,"   Ne mozes si priustiti taj paket !");
                 return 0;
             }
         }
         else if ((strcmp("4", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("4")))
         {
             if(PlayerInfo[playerid][pRank] < 3) { SendClientMessage(playerid, COLOR_GREY, "   Nisi dovoljan rank za taj paket !"); return 0; }
             if(GetPlayerMoney(playerid) > 699)
             {
                 SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Narucili ste paket 4 ($700), paket je bacen iz helikoptera i nalazi se kod vas.");
                 GivePlayerWeapon(playerid, 24, 50); GivePlayerWeapon(playerid, 29, 500); GivePlayerWeapon(playerid, 25, 50); GivePlayerWeapon(playerid, 31, 500); GivePlayerWeapon(playerid, 4, 1); GivePlayerWeapon(playerid, 34, 20);
                    GivePlayerMoney(playerid, - 700);
                 return 0;
             }
             else
             {
                 SendClientMessage(playerid, COLOR_GREY,"   Ne mozes si priustiti taj paket !");
                 return 0;
             }
         }
         else if ((strcmp("5", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("5")))
         {
             if(PlayerInfo[playerid][pRank] < 3) { SendClientMessage(playerid, COLOR_GREY, "   Nisi dovoljan rank za taj paket !"); return 0; }
             if(GetPlayerMoney(playerid) > 799)
             {
                 SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Narucili ste paket 5 ($800), paket je bacen iz helikoptera i nalazi se kod vas.");
                 GivePlayerWeapon(playerid, 24, 50); GivePlayerWeapon(playerid, 29, 500); GivePlayerWeapon(playerid, 25, 50); GivePlayerWeapon(playerid, 30, 500); GivePlayerWeapon(playerid, 4, 1); GivePlayerWeapon(playerid, 34, 20);
                    GivePlayerMoney(playerid, - 800);
                 return 0;
             }
             else
             {
                 SendClientMessage(playerid, COLOR_GREY,"   Ne mozes si priustiti taj paket !");
                 return 0;
             }
         }
         else if ((strcmp("6", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("6")))
         {
             if(PlayerInfo[playerid][pRank] < 4) { SendClientMessage(playerid, COLOR_GREY, "   Nisi dovoljan rank za taj paket !"); return 0; }
             if(GetPlayerMoney(playerid) > 849)
             {
                 SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Narucili ste paket 6 ($850), paket je bacen iz helikoptera i nalazi se kod vas.");
                 GivePlayerWeapon(playerid, 24, 50); GivePlayerWeapon(playerid, 29, 500); GivePlayerWeapon(playerid, 25, 50); GivePlayerWeapon(playerid, 31, 500); GivePlayerWeapon(playerid, 4, 1); GivePlayerWeapon(playerid, 34, 20);
               GivePlayerMoney(playerid, - 850);
                 return 0;
             }
             else
             {
                 SendClientMessage(playerid, COLOR_GREY,"   Ne mozes si priustiti taj paket !");
                 return 0;
             }
         }
         else if ((strcmp("7", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("7")))
         {
             if(PlayerInfo[playerid][pRank] < 4) { SendClientMessage(playerid, COLOR_GREY, "   Nisi dovoljan rank za taj paket !"); return 0; }
             if(GetPlayerMoney(playerid) > 899)
             {
                 SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Narucili ste paket 7 ($900), paket je bacen iz helikoptera i nalazi se kod vas.");
                 GivePlayerWeapon(playerid, 24, 50); GivePlayerWeapon(playerid, 29, 500); GivePlayerWeapon(playerid, 25, 50); GivePlayerWeapon(playerid, 30, 500); GivePlayerWeapon(playerid, 4, 1); GivePlayerWeapon(playerid, 34, 20);
                    GivePlayerMoney(playerid, - 900);
                 return 0;
             }
             else
             {
                 SendClientMessage(playerid, COLOR_GREY,"   Ne mozes si priustiti taj paket !");
                 return 0;
             }
         }
         else
         {
             SendClientMessage(playerid, COLOR_WHITE, "|__________________ Dostupni paketi __________________|");
             if(PlayerInfo[playerid][pRank] >= 1) { SendClientMessage(playerid, COLOR_GREY, "|(1) ($500 ) Rank 1 - 5: Knife, Desert Eagle, MP5, Shotgun"); }
             if(PlayerInfo[playerid][pRank] >= 2) { SendClientMessage(playerid, COLOR_GREY, "|(2) ($600 ) Rank 2 - 5: Knife, Desert Eagle, M4, MP5, Shotgun"); }
             if(PlayerInfo[playerid][pRank] >= 2) { SendClientMessage(playerid, COLOR_GREY, "|(3) ($600 ) Rank 2 - 5: Knife, Desert Eagle, AK47, MP5, Shotgun"); }
             if(PlayerInfo[playerid][pRank] >= 3) { SendClientMessage(playerid, COLOR_GREY, "|(4) ($700) Rank 3 - 5: Knife, Desert Eagle, M4, MP5, Shotgun, Sniper"); }
             if(PlayerInfo[playerid][pRank] >= 3) { SendClientMessage(playerid, COLOR_GREY, "|(5) ($800) Rank 3 - 5: Knife, Desert Eagle, AK47, MP5, Shotgun, Sniper"); }
             if(PlayerInfo[playerid][pRank] >= 4) { SendClientMessage(playerid, COLOR_GREY, "|(6) ($850) Rank 4 - 5: Knife, Desert Eagle, M4, MP5, Shotgun, Sniper"); }
             if(PlayerInfo[playerid][pRank] >= 4) { SendClientMessage(playerid, COLOR_GREY, "|(7) ($900) Rank 4 - 5: Knife, Desert Eagle, AK47, MP5, Shotgun, Sniper"); }
             SendClientMessage(playerid, COLOR_WHITE, "|________________________________________________________|");
             return 0;
         }
      }
      else if ((strcmp("Logout", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("Logout")))
      {
          SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Ugasili ste laptop, i diskonektovali se sa agencije.");
            ConnectedToPC[playerid] = 0;
          return 0;
      }
      else
      {
          SendClientMessage(playerid, COLOR_WHITE, "|___ Hitman Agency ___|");
          SendClientMessage(playerid, COLOR_YELLOW2, "| - News");
          SendClientMessage(playerid, COLOR_YELLOW2, "| - Contracts");
          SendClientMessage(playerid, COLOR_YELLOW2, "| - Givehit");
          SendClientMessage(playerid, COLOR_YELLOW2, "| - Backup");
          SendClientMessage(playerid, COLOR_YELLOW2, "| - Order");
          SendClientMessage(playerid, COLOR_YELLOW2, "| - Ranks");
          SendClientMessage(playerid, COLOR_YELLOW2, "| - Logout");
          SendClientMessage(playerid, COLOR_YELLOW2, "|");
         SendClientMessage(playerid, COLOR_WHITE, "|______________|00:00|");
          return 0;
      }
       return 0;
   }

Probao san nes skontat, al posto sam bot, kontam valjda cete mi malo pomoc, da skontam, xD
Dio skripte:
Neke slike/video za lakse dobivanje pomoci(neobavezno):

ahaha pa nije komanda, ovo je samo uzeto iz GF Moda

ovo ide pod OnPlayerText, kada je igracu ukljucen laptop(/portable)

znas i sam da ne mozes kad u GFu


evo pogledaj ovo malo

if ((strcmp("Contracts", text, true, strlen(text)) == 0) && (strlen(text) == strlen("Contracts")))


ja sam zamjenio "tmp" iz GFa sa "text" (parametar iz callbacka, uneseni text)
znas da tmp, returnuser i ostala sranja koja su dolje su iz GFa, i treba ih prilagoit modu od 0
mod mi je obican, kao vecina modova od 0, nista posebno

nesto mi glupo da pravim komande posebno npr  /givehit [hitmanid] | /order [paket] | /contracts
Kad je svugdje sa textom.

Pa znam, evo sta sam uradio, pogledaj dal to ima smisla, jbg

YCMD:contracts(playerid, params[], help)
{
	#pragma unused help
	#pragma unused params
	if(PlayerInfo[playerid][pMember] != 8 || PlayerInfo[playerid][pLeader] != 8)
	    return SendClientMessage(playerid, COLOR_RED, "[Odbijeno!] {C3C3C3}Nisi ubojica");
	else if(GetPVarInt(playerid, "Ulogiran") == 0)
	    return SendClientMessage(playerid, COLOR_GRAD1, "Nisi logiran!");
	else if(PlayerInfo[playerid][pRank] < 4)
	    return SendClientMessage(playerid, COLOR_GRAD2, "*Odbijeno* Samo ubojice sa vecim iskustvom mogu traziti mete {ff0000}(R4+)");
	SearchingHit(playerid);
	return 1;
}

YCMD:givehit(playerid, params[], help)
{
	#pragma unused help
	new hitmanid;
	if(PlayerInfo[playerid][pMember] != 8 || PlayerInfo[playerid][pLeader] != 8)
	    return SendClientMessage(playerid, COLOR_RED, "[Odbijeno!] {C3C3C3}Nisi ubojica");
	else if(GetPVarInt(playerid, "Ulogiran") == 0)
	    return SendClientMessage(playerid, COLOR_GRAD1, "Nisi logiran!");
	else if(PlayerInfo[playerid][pRank] < 4)
		return SendClientMessage(playerid, COLOR_GRAD2, "*Odbijeno* Samo ubojice sa vecim iskustvom mogu dodjeljivati mete {ff0000}(R4+)");
	else if(hitfound == 0)
	    return SendClientMessage(playerid, COLOR_GREY, "Trenutno nema meta, koristi /contracts prvo");
	else if(sscanf(params, "u", hitmanid))
		return SendClientMessage(playerid, COLOR_GRAD1, "Koristi: /givehit [hitmanid]");
	else if(PlayerInfo[hitmanid][pLeader] != 8 || PlayerInfo[hitmanid][pMember] != 8)
	    return SendClientMessage(playerid, COLOR_GREY, "    Taj igrac nije ubojica!");
	else if(GoChase[hitmanid] < 999)
	    return SendClientMessage(playerid, COLOR_GREY, "Taj igrac vec ima metu!");
    format(string, sizeof(string), "* Hitman %s, je zaposlio %s da ubije: %s(ID:%d), za $%d.", PlayerName(playerid), PlayerName(hitmanid), PlayerName(hitid), hitid, HeadValue[hitid]);
	SendFamilyMessage(8, COLOR_YELLOW, string);
	GoChase[hitmanid] = hitid;
	GetChased[hitid] = hitmanid;
	GotHit[hitid] = 1;
	hitid = 0;
	hitfound = 0;
 	return 1;
}

YCMD:contract(playerid, params[], help)
{
        #pragma unused help
        if(GetPVarInt(playerid, "Ulogiran") == 0)
            return SCM(playerid, COLOR_GRAD1, "Nisi logiran!");
        new igrac, kolicina, string[128];
        else if(sscanf(params, "ui", igrac, kolicina))
            return SCM(playerid, COLOR_GRAD2, "Koristi: /contract [playerid/DioImena] [kolicina]");
        else if(kolicina < 1000 || kolicina > 100000)
                return SCM(playerid, COLOR_GREY, "Ugovor ne moze biti ispod $1000 ili preko $100.000");
        else if(!IsPlayerConnected(igrac))
            return SCM(playerid, COLOR_GRAD1, "Pogresan ID");
        else if(GetPVarInt(igrac, "Ulogiran") == 0)
            return SCM(playerid, COLOR_GREY, "Igrac nije logiran jos!");
        new cl, le, ml, mc;
        cl = PlayerInfo[igrac][pMember];
        le = PlayerInfo[igrac][pLeader];
        ml = PlayerInfo[playerid][pLeader];
        mc = PlayerInfo[playerid][pMember];
        else if((cl == 8 || le == 8) && (ml != 8 || mc != 8))
            return SCM(playerid, COLOR_GRAD1, "Ne mozete naruciti ubojstvo Hitmana!");
        else if(cl == 8 || le == 8 && ml == 8 || mc == 8)
            return SCM(playerid, COLOR_GRAD1, "Ne mozete naruciti ubojstvo clana svoje agencije!");
        else if(kolicina < 100000 && (cl == 1 || le == 1 || cl == 2 || le == 2 || cl == 3 || le == 3))
            return SCM(playerid, COLOR_GREY, "Za drzavnog sluzbenika najmanja cijena je 100.000!");
        else if(igrac == playerid)
            return SCM(playerid, COLOR_GREY, "Ne mozes naruciti svoje ubojstvo!");
        else if(kolicina > GetPlayerMoney(playerid))
            return SCM(playerid, COLOR_GREY, "Nemas dovoljno novaca!");
        PlayerInfo[playerid][pMoney] -= kolicina;
        GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
        HeadValue[igrac]+=kolicina;
        format(string, sizeof(string), "%s je narucio ubojstvo na %s, Za: %d$.", PlayerName(playerid), PlayerName(igrac), kolicina);
        SendFamilyMessage(8, COLOR_YELLOW, string);
        return 1;
}