GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Erik3333 - 2012. május 12. - 15:33:15

Cím: Warn-nál ne lehessen mínuszba menni
Írta: Erik3333 - 2012. május 12. - 15:33:15
Helló!
Van egy parancsom, de ha többször beírom, hogy /unwarn ID Indok, akkor mínuszba megy, tehát: -1/3, vagy -5/3.
Hogyan tudnám megcsinálni, hogy ne lehessen mínuszba vinni a warn-t?
Cím: Warn-nál ne lehessen mínuszba menni
Írta: Benceee - 2012. május 12. - 15:34:38
Bemásolnád a parancsot?
Cím: Warn-nál ne lehessen mínuszba menni
Írta: Erik3333 - 2012. május 12. - 15:43:16
Természetesen!  ;D
 
CMD:warn(playerid, params[])
{
if(GetPlayerAdminLevel(playerid) < 1 || !IsAdminSeged(playerid)) return SendClientMessage(playerid, COLOR_ERROR, \"Nem használhatod ezt a parancsot!\");
{
    new player, indok[128];
if(sscanf(params, \"us[128]\", player, indok)) return SendClientMessage(playerid, COLOR_ERROR, \"Használat: /warn [Név/ID] [indok]\");
else if(!IsPlayerConnected(player)) return SendClientMessage(playerid, COLOR_ERROR, \"A játékos nincs csatlakozva!\");
{
   if(GetPlayerAdminLevel(playerid) < GetPlayerAdminLevel(player)) //return SendClientMessage(playerid, COLOR_ERROR, \"Nagyobb admint akarsz kickelni?!\");
   {
            new string[128];
      SendClientMessage(playerid, COLOR_ERROR, \"Nagyobb admint akarsz warnolni?\");
            format(string, sizeof(string), \"%s ki lett kickelve a rendszer által által | Indok: Nagyobb admint akarsz warnolni? Mekkora egy kretén vagy...\", PlayerName(playerid));
      SendClientMessageToAll(COLOR_INFO, string);
             format(string, sizeof(string), \"%s warnolni akart!\", PlayerName(playerid));
      SendClientMessage(player, COLOR_ERROR, string);
      printf(\"<<%s ki lett kickelve a rendszer által által | Indok: Nagyobb admint akarsz warnolni? Mekkora egy kretén vagy... >>\", PlayerName(playerid));
      Kick(playerid);
   }
   new string[128];
   PlayerData[player][Warnings]++;
           if(PlayerData[player][Warnings] <= 2)
          {
      format(string, sizeof(string), \"%s warnolt (%d/3) | Indok: %s\", PlayerName(playerid), PlayerData[player][Warnings], indok);
      SendClientMessage(player, COLOR_INFO, string);
      format(string, sizeof(string), \"Warnoltad %s-t (%d/3) | Indok: %s\", PlayerName(player), PlayerData[player][Warnings], indok);
      SendClientMessage(player, COLOR_WHITE, string);
      format(string, sizeof(string), \"<< %s warnolva lett %s által (%d/3) | Indok: %s >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings], indok);
      SendClientMessageToAdmins(COLOR_RED, string);
      printf(\"<< %s warnolva lett %s által (%d/3) | Indok: %s >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings], indok);
          }
   else
   {
      format(string, sizeof(string), \"%s ki lett kickelve a rendszer által | Indok: Összegyûlt 3 warn\", PlayerName(player));
      SendClientMessageToAll(COLOR_INFO, string);
      SendClientMessage(player, COLOR_RED, \"Összegyûlt a 3 warn-od, ezért kickelt a rendszer!\");
      Kick(player);
   }
}
}
return true;
}
CMD:unwarn(playerid, params[])
{
if(GetPlayerAdminLevel(playerid) <= 0 || !IsAdminSeged(playerid)) return SendClientMessage(playerid, COLOR_ERROR, \"Nem használhatod ezt a parancsot!\");
{
    new player;
if(sscanf(params, \"u\", player)) return SendClientMessage(playerid, COLOR_ERROR, \"Használat: /unwarn [Név/ID]\");
else if(!IsPlayerConnected(player)) return SendClientMessage(playerid, COLOR_ERROR, \"A játékos nincs csatlakozva!\");
{
   new string[128];
   PlayerData[player][Warnings]--;
   format(string, sizeof(string), \"%s unwarnolt (%d/3)\", PlayerName(playerid), PlayerData[player][Warnings]);
   SendClientMessage(player, COLOR_INFO, string);
   format(string, sizeof(string), \"Unwarnoltad %s-t (%d/3)\", PlayerName(player), PlayerData[player][Warnings]);
   SendClientMessage(player, COLOR_WHITE, string);
   format(string, sizeof(string), \"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
   SendClientMessageToAdmins(COLOR_RED, string);
   printf(\"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
}
}
return true;
}
Cím: Warn-nál ne lehessen mínuszba menni
Írta: ZyZu. - 2012. május 12. - 15:52:18
Ezt a sort átírod ++ -ra!
 

PlayerData[player][Warnings]--;
Cím: Warn-nál ne lehessen mínuszba menni
Írta: Erik3333 - 2012. május 12. - 16:00:01
Idézetet írta: ZyZu date=1336830738\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"21345\" data-ipsquote-contentclass=\"forums_Topic
Ezt a sort átírod ++ -ra!
 

PlayerData[player][Warnings]--;

 

Annak sok értelme nem lenne, mert akkor nem ad, hanem elvesz warningot!
Így lehetne megcsinálni?
 
         if(PlayerData[player][Warnings] == 0)
   {
       return SendClientMessage(playerid, COLOR_INFO, \"0-nál kevesebb nem lehet a warning-ja!\");
   }
Cím: Warn-nál ne lehessen mínuszba menni
Írta: Benceee - 2012. május 12. - 19:11:37
Idézetet írta: ZyZu date=1336830738\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"21345\" data-ipsquote-contentclass=\"forums_Topic
Ezt a sort átírod ++ -ra!
 

PlayerData[player][Warnings]--;

 

Ne írj hülyeséget. Nem az a baj, hogy hozzáadja, hanem az, hogy mínuszba megy.
 

CMD:unwarn(playerid, params[])
{
if(GetPlayerAdminLevel(playerid) <= 0 || !IsAdminSeged(playerid)) return SendClientMessage(playerid, COLOR_ERROR, \"Nem használhatod ezt a parancsot!\");
{
    new player;
if(sscanf(params, \"u\", player)) return SendClientMessage(playerid, COLOR_ERROR, \"Használat: /unwarn [Név/ID]\");
else if(!IsPlayerConnected(player)) return SendClientMessage(playerid, COLOR_ERROR, \"A játékos nincs csatlakozva!\");
{
   new string[128];
   PlayerData[player][Warnings]--;
   if(PlayerData[playerid][Warnings] != 0)
   {
   format(string, sizeof(string), \"%s unwarnolt (%d/3)\", PlayerName(playerid), PlayerData[player][Warnings]);
   SendClientMessage(player, COLOR_INFO, string);
   format(string, sizeof(string), \"Unwarnoltad %s-t (%d/3)\", PlayerName(player), PlayerData[player][Warnings]);
   SendClientMessage(playerid, COLOR_WHITE, string);
   format(string, sizeof(string), \"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
   SendClientMessageToAdmins(COLOR_RED, string);
   printf(\"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
   }
   else
   {
        SendClientMessage(player, COLOR_WHITE, \"Le akartak venni egy warnod, de nincs.\");
        SendClientMessage(player, COLOR_WHITE, \"Az illetõnek nicns warnja.\");
   }
}
}
return true;
}
Cím: Warn-nál ne lehessen mínuszba menni
Írta: TengeriMalac - 2012. május 12. - 19:43:11
Idézetet írta: Benceee date=1336842697\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"21345\" data-ipsquote-contentclass=\"forums_Topic

CMD:unwarn(playerid, params[])
{
if(GetPlayerAdminLevel(playerid) <= 0 || !IsAdminSeged(playerid)) return SendClientMessage(playerid, COLOR_ERROR, \"Nem használhatod ezt a parancsot!\");
{
    new player;
if(sscanf(params, \"u\", player)) return SendClientMessage(playerid, COLOR_ERROR, \"Használat: /unwarn [Név/ID]\");
else if(!IsPlayerConnected(player)) return SendClientMessage(playerid, COLOR_ERROR, \"A játékos nincs csatlakozva!\");
{
   new string[128];
   PlayerData[player][Warnings]--;
   if(PlayerData[playerid][Warnings] != 0)
   {
   format(string, sizeof(string), \"%s unwarnolt (%d/3)\", PlayerName(playerid), PlayerData[player][Warnings]);
   SendClientMessage(player, COLOR_INFO, string);
   format(string, sizeof(string), \"Unwarnoltad %s-t (%d/3)\", PlayerName(player), PlayerData[player][Warnings]);
   SendClientMessage(playerid, COLOR_WHITE, string);
   format(string, sizeof(string), \"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
   SendClientMessageToAdmins(COLOR_RED, string);
   printf(\"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
   }
   else
   {
        SendClientMessage(player, COLOR_WHITE, \"Le akartak venni egy warnod, de nincs.\");
        SendClientMessage(player, COLOR_WHITE, \"Az illetõnek nicns warnja.\");
   }
}
}
return true;
}

 

Ebben az a hiba, hogy ígyis-ugyis leveszi a warnt, megy minuszba, csak másik üzenetet ír ki.
A másik, pedig hogy az Admintól venné le
 
PlayerData[playerid][Warnings] != 0

 


CMD:unwarn(playerid, params[])
{
    new string[128], player;
if(GetPlayerAdminLevel(playerid) <= 0 || !IsAdminSeged(playerid)) return SendClientMessage(playerid, COLOR_ERROR, \"Nem használhatod ezt a parancsot!\");
if(sscanf(params, \"u\", player)) return SendClientMessage(playerid, COLOR_ERROR, \"Használat: /unwarn [Név/ID]\");
if(!IsPlayerConnected(player)) return SendClientMessage(playerid, COLOR_ERROR, \"A játékos nincs csatlakozva!\");
if(PlayerData[player][Warnings] == 0) return SendClientMessage(playerid, COLOR_ERROR, \"Ennek a játékosan nincs figyelmeztetése.\");
PlayerData[player][Warnings]--;
format(string, sizeof(string), \"%s unwarnolt (%d/3)\", PlayerName(playerid), PlayerData[player][Warnings]);
SendClientMessage(player, COLOR_INFO, string);
format(string, sizeof(string), \"Unwarnoltad %s-t (%d/3)\", PlayerName(player), PlayerData[player][Warnings]);
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), \"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
SendClientMessageToAdmins(COLOR_RED, string);
printf(\"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
return true;
}
Cím: Warn-nál ne lehessen mínuszba menni
Írta: Erik3333 - 2012. május 12. - 15:33:15
Helló!
Van egy parancsom, de ha többször beírom, hogy /unwarn ID Indok, akkor mínuszba megy, tehát: -1/3, vagy -5/3.
Hogyan tudnám megcsinálni, hogy ne lehessen mínuszba vinni a warn-t?
Cím: Warn-nál ne lehessen mínuszba menni
Írta: Benceee - 2012. május 12. - 15:34:38
Bemásolnád a parancsot?
Cím: Warn-nál ne lehessen mínuszba menni
Írta: Erik3333 - 2012. május 12. - 15:43:16
Természetesen!  ;D
 
CMD:warn(playerid, params[])
{
if(GetPlayerAdminLevel(playerid) < 1 || !IsAdminSeged(playerid)) return SendClientMessage(playerid, COLOR_ERROR, \"Nem használhatod ezt a parancsot!\");
{
    new player, indok[128];
if(sscanf(params, \"us[128]\", player, indok)) return SendClientMessage(playerid, COLOR_ERROR, \"Használat: /warn [Név/ID] [indok]\");
else if(!IsPlayerConnected(player)) return SendClientMessage(playerid, COLOR_ERROR, \"A játékos nincs csatlakozva!\");
{
   if(GetPlayerAdminLevel(playerid) < GetPlayerAdminLevel(player)) //return SendClientMessage(playerid, COLOR_ERROR, \"Nagyobb admint akarsz kickelni?!\");
   {
            new string[128];
      SendClientMessage(playerid, COLOR_ERROR, \"Nagyobb admint akarsz warnolni?\");
            format(string, sizeof(string), \"%s ki lett kickelve a rendszer által által | Indok: Nagyobb admint akarsz warnolni? Mekkora egy kretén vagy...\", PlayerName(playerid));
      SendClientMessageToAll(COLOR_INFO, string);
             format(string, sizeof(string), \"%s warnolni akart!\", PlayerName(playerid));
      SendClientMessage(player, COLOR_ERROR, string);
      printf(\"<<%s ki lett kickelve a rendszer által által | Indok: Nagyobb admint akarsz warnolni? Mekkora egy kretén vagy... >>\", PlayerName(playerid));
      Kick(playerid);
   }
   new string[128];
   PlayerData[player][Warnings]++;
           if(PlayerData[player][Warnings] <= 2)
          {
      format(string, sizeof(string), \"%s warnolt (%d/3) | Indok: %s\", PlayerName(playerid), PlayerData[player][Warnings], indok);
      SendClientMessage(player, COLOR_INFO, string);
      format(string, sizeof(string), \"Warnoltad %s-t (%d/3) | Indok: %s\", PlayerName(player), PlayerData[player][Warnings], indok);
      SendClientMessage(player, COLOR_WHITE, string);
      format(string, sizeof(string), \"<< %s warnolva lett %s által (%d/3) | Indok: %s >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings], indok);
      SendClientMessageToAdmins(COLOR_RED, string);
      printf(\"<< %s warnolva lett %s által (%d/3) | Indok: %s >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings], indok);
          }
   else
   {
      format(string, sizeof(string), \"%s ki lett kickelve a rendszer által | Indok: Összegyûlt 3 warn\", PlayerName(player));
      SendClientMessageToAll(COLOR_INFO, string);
      SendClientMessage(player, COLOR_RED, \"Összegyûlt a 3 warn-od, ezért kickelt a rendszer!\");
      Kick(player);
   }
}
}
return true;
}
CMD:unwarn(playerid, params[])
{
if(GetPlayerAdminLevel(playerid) <= 0 || !IsAdminSeged(playerid)) return SendClientMessage(playerid, COLOR_ERROR, \"Nem használhatod ezt a parancsot!\");
{
    new player;
if(sscanf(params, \"u\", player)) return SendClientMessage(playerid, COLOR_ERROR, \"Használat: /unwarn [Név/ID]\");
else if(!IsPlayerConnected(player)) return SendClientMessage(playerid, COLOR_ERROR, \"A játékos nincs csatlakozva!\");
{
   new string[128];
   PlayerData[player][Warnings]--;
   format(string, sizeof(string), \"%s unwarnolt (%d/3)\", PlayerName(playerid), PlayerData[player][Warnings]);
   SendClientMessage(player, COLOR_INFO, string);
   format(string, sizeof(string), \"Unwarnoltad %s-t (%d/3)\", PlayerName(player), PlayerData[player][Warnings]);
   SendClientMessage(player, COLOR_WHITE, string);
   format(string, sizeof(string), \"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
   SendClientMessageToAdmins(COLOR_RED, string);
   printf(\"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
}
}
return true;
}
Cím: Warn-nál ne lehessen mínuszba menni
Írta: ZyZu. - 2012. május 12. - 15:52:18
Ezt a sort átírod ++ -ra!
 

PlayerData[player][Warnings]--;
Cím: Warn-nál ne lehessen mínuszba menni
Írta: Erik3333 - 2012. május 12. - 16:00:01
Idézetet írta: ZyZu date=1336830738\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"21345\" data-ipsquote-contentclass=\"forums_Topic
Ezt a sort átírod ++ -ra!
 

PlayerData[player][Warnings]--;

 

Annak sok értelme nem lenne, mert akkor nem ad, hanem elvesz warningot!
Így lehetne megcsinálni?
 
         if(PlayerData[player][Warnings] == 0)
   {
       return SendClientMessage(playerid, COLOR_INFO, \"0-nál kevesebb nem lehet a warning-ja!\");
   }
Cím: Warn-nál ne lehessen mínuszba menni
Írta: Benceee - 2012. május 12. - 19:11:37
Idézetet írta: ZyZu date=1336830738\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"21345\" data-ipsquote-contentclass=\"forums_Topic
Ezt a sort átírod ++ -ra!
 

PlayerData[player][Warnings]--;

 

Ne írj hülyeséget. Nem az a baj, hogy hozzáadja, hanem az, hogy mínuszba megy.
 

CMD:unwarn(playerid, params[])
{
if(GetPlayerAdminLevel(playerid) <= 0 || !IsAdminSeged(playerid)) return SendClientMessage(playerid, COLOR_ERROR, \"Nem használhatod ezt a parancsot!\");
{
    new player;
if(sscanf(params, \"u\", player)) return SendClientMessage(playerid, COLOR_ERROR, \"Használat: /unwarn [Név/ID]\");
else if(!IsPlayerConnected(player)) return SendClientMessage(playerid, COLOR_ERROR, \"A játékos nincs csatlakozva!\");
{
   new string[128];
   PlayerData[player][Warnings]--;
   if(PlayerData[playerid][Warnings] != 0)
   {
   format(string, sizeof(string), \"%s unwarnolt (%d/3)\", PlayerName(playerid), PlayerData[player][Warnings]);
   SendClientMessage(player, COLOR_INFO, string);
   format(string, sizeof(string), \"Unwarnoltad %s-t (%d/3)\", PlayerName(player), PlayerData[player][Warnings]);
   SendClientMessage(playerid, COLOR_WHITE, string);
   format(string, sizeof(string), \"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
   SendClientMessageToAdmins(COLOR_RED, string);
   printf(\"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
   }
   else
   {
        SendClientMessage(player, COLOR_WHITE, \"Le akartak venni egy warnod, de nincs.\");
        SendClientMessage(player, COLOR_WHITE, \"Az illetõnek nicns warnja.\");
   }
}
}
return true;
}
Cím: Warn-nál ne lehessen mínuszba menni
Írta: TengeriMalac - 2012. május 12. - 19:43:11
Idézetet írta: Benceee date=1336842697\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"21345\" data-ipsquote-contentclass=\"forums_Topic

CMD:unwarn(playerid, params[])
{
if(GetPlayerAdminLevel(playerid) <= 0 || !IsAdminSeged(playerid)) return SendClientMessage(playerid, COLOR_ERROR, \"Nem használhatod ezt a parancsot!\");
{
    new player;
if(sscanf(params, \"u\", player)) return SendClientMessage(playerid, COLOR_ERROR, \"Használat: /unwarn [Név/ID]\");
else if(!IsPlayerConnected(player)) return SendClientMessage(playerid, COLOR_ERROR, \"A játékos nincs csatlakozva!\");
{
   new string[128];
   PlayerData[player][Warnings]--;
   if(PlayerData[playerid][Warnings] != 0)
   {
   format(string, sizeof(string), \"%s unwarnolt (%d/3)\", PlayerName(playerid), PlayerData[player][Warnings]);
   SendClientMessage(player, COLOR_INFO, string);
   format(string, sizeof(string), \"Unwarnoltad %s-t (%d/3)\", PlayerName(player), PlayerData[player][Warnings]);
   SendClientMessage(playerid, COLOR_WHITE, string);
   format(string, sizeof(string), \"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
   SendClientMessageToAdmins(COLOR_RED, string);
   printf(\"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
   }
   else
   {
        SendClientMessage(player, COLOR_WHITE, \"Le akartak venni egy warnod, de nincs.\");
        SendClientMessage(player, COLOR_WHITE, \"Az illetõnek nicns warnja.\");
   }
}
}
return true;
}

 

Ebben az a hiba, hogy ígyis-ugyis leveszi a warnt, megy minuszba, csak másik üzenetet ír ki.
A másik, pedig hogy az Admintól venné le
 
PlayerData[playerid][Warnings] != 0

 


CMD:unwarn(playerid, params[])
{
    new string[128], player;
if(GetPlayerAdminLevel(playerid) <= 0 || !IsAdminSeged(playerid)) return SendClientMessage(playerid, COLOR_ERROR, \"Nem használhatod ezt a parancsot!\");
if(sscanf(params, \"u\", player)) return SendClientMessage(playerid, COLOR_ERROR, \"Használat: /unwarn [Név/ID]\");
if(!IsPlayerConnected(player)) return SendClientMessage(playerid, COLOR_ERROR, \"A játékos nincs csatlakozva!\");
if(PlayerData[player][Warnings] == 0) return SendClientMessage(playerid, COLOR_ERROR, \"Ennek a játékosan nincs figyelmeztetése.\");
PlayerData[player][Warnings]--;
format(string, sizeof(string), \"%s unwarnolt (%d/3)\", PlayerName(playerid), PlayerData[player][Warnings]);
SendClientMessage(player, COLOR_INFO, string);
format(string, sizeof(string), \"Unwarnoltad %s-t (%d/3)\", PlayerName(player), PlayerData[player][Warnings]);
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), \"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
SendClientMessageToAdmins(COLOR_RED, string);
printf(\"<< %s unwarnolva lett %s által (%d/3) >>\", PlayerName(player), PlayerName(playerid), PlayerData[player][Warnings]);
return true;
}