Официалният форум на iPlay.bg 

Този раздел е създаден специално за проблеми и въпроси за направата на плъгини или преработката на вече съществуващи кодове.
 #391898  от southdivision
 пет юни 03, 2016 2:46 pm
Код: Избери всички
public key(ent, idcaller, idactivator, use_type, Float: value) {
	if (!is_user_alive(idactivator) || !pev_valid(ent)) return FMRES_IGNORED
	if (is_user_connected(idactivator) && is_user_alive(idactivator) && get_user_flags( idactivator ) & ADMIN_KICK || !pev_valid(ent) ) {
	new classname[32]
	pev(ent, pev_classname, classname, 31)
	if (!equal(classname, item_class_name)) return FMRES_IGNORED
	if (g_bonus[idactivator] == 0) {
		new shans = random_num(0, 100)
		new name[32]
		get_user_name(idactivator, name, 31)
		switch (shans) {
			case 0..10:
				{
					ColorChat(idactivator, BLUE, "[TEST] ^4Specheli bravo")
				}
				
				case 11..21:
				{
					ColorChat(idactivator, RED, "[TEST] ^4 Imash zaguba")
				}
			case 22..100:
				{
					ColorChat(idactivator, RED, "[TEST] ^4Prazno e")
					g_bonus[idactivator]++
				}
		}
	} else {
		ColorChat(idactivator, RED,
			"[TEST] ^4Ne mojesh veche zashtoto si go izpolzval")
	}
	}
	else {
			ColorChat(idactivator, RED,
			"[TEST]^1 Zakupete ^4VIP^1")
			}
	return HAM_SUPERCEDE
}
Незнайно защо като натисна въпросния spawn model към който е този код ... когато съм играч и натисна на всеки бутон на мапа независимо дали е този който е към кода ми изписва съобщението - Да закупя VIP. Искам това да го изписва само когато натисне spawn модела , а не да бърка другите бутони на мапа.
Последна промяна от OciXCrom™ на пон юни 06, 2016 3:33 pm, променено общо 1 път. Причина: Преместена тема.
 #391919  от OciXCrom™
 пет юни 03, 2016 9:44 pm
Код: Избери всички
if (is_user_connected(idactivator) && is_user_alive(idactivator) && get_user_flags( idactivator ) & ADMIN_KICK || !pev_valid(ent) )
Тази проверка не е правилна. Ще ти я преведя: "ако играчът е в сървъра И играчът е жив И играчът има флаг за кик ИЛИ копчето е невалидно". Последното ("ИЛИ копчето е невалидно") трябва да стане "И копчето е валидно", демек || !pev_valid(ent) да стане && pev_valid(ent).
 #392114  от southdivision
 пон юни 06, 2016 2:46 pm
OciXCrom™ написа:
Код: Избери всички
if (is_user_connected(idactivator) && is_user_alive(idactivator) && get_user_flags( idactivator ) & ADMIN_KICK || !pev_valid(ent) ) 
Тази проверка не е правилна. Ще ти я преведя: "ако играчът е в сървъра И играчът е жив И играчът има флаг за кик ИЛИ копчето е невалидно". Последното ("ИЛИ копчето е невалидно") трябва да стане "И копчето е валидно", демек || !pev_valid(ent) да стане && pev_valid(ent).
Код: Избери всички
if (is_user_connected(idactivator) && is_user_alive(idactivator) && get_user_flags( idactivator ) & ADMIN_KICK && pev_valid(ent) ){
 
Така го направих,но не стана .. същата работа е
 #392116  от OciXCrom™
 пон юни 06, 2016 3:32 pm
Код: Избери всички
public key(ent, idcaller, idactivator, use_type, Float: value)
{
   if(pev_valid(ent))
   {
        new classname[32]
        pev(ent, pev_classname, classname, charsmax(classname))
        
        if(!equal(classname, item_class_name))
            return HAM_IGNORED
   }

   if(!(get_user_flags(idactivator) & ADMIN_KICK))
   {
       ColorChat(idactivator, RED, "[TEST]^1 Zakupete ^4VIP^1")
       return HAM_SUPERCEDE
   }
  
   if (g_bonus[idactivator] == 0)
   {
      new shans = random_num(0, 100)
      new name[32]
      get_user_name(idactivator, name, 31)
      switch (shans)
      {
        case 0..10:
           {
           ColorChat(idactivator, BLUE, "[TEST] ^4Specheli bravo")
        }
        
        case 11..21:
        {
           ColorChat(idactivator, RED, "[TEST] ^4 Imash zaguba")
        }
         case 22..100:
        {
           ColorChat(idactivator, RED, "[TEST] ^4Prazno e")
           g_bonus[idactivator]++
        }
      }
   }
   else ColorChat(idactivator, RED, "[TEST] ^4Ne mojesh veche zashtoto si go izpolzval")
   return HAM_IGNORED
} 
  • Първо провери дали бутонът е този, който ти трябва. Като си сложил всички проверки наведнъж, то при всички бутони ще се показва съобщението. Първо добавяш проверката за бутона и ако не е валидна - return HAM_IGNORED.
  • FMRES_* се ползва във fakemeta функции, твоята е hamsandwich, съответно трябва да е HAM_*.
  • return HAM_SUPERCEDE в края на кода ще блокира всички бутони.
 #392120  от southdivision
 пон юни 06, 2016 3:54 pm
Още 100 години да живееш, КРОМЕ ;) :D Благодаря :)