[PLUGIN-CSS] Dice / Würfeln

03/02/2014 17:22 Marme.##1
Servus die Damen und Herren.

Ich sitze schon seit mehreren Tagen an einem Würfel Plugin aber es will einfach nicht so wie ich das gerne hätte. Ich habe alles soweit eingestellt was ich gerne haben möchte, doch wenn ich die Farben in der Translation ändere bekomme ich einen Consolen fehler: Unknown command: sm_dice

Also ich habe dann die standart Translation wieder eingefügt dann ging es wieder. Ich möchte diese aber nicht so haben.

Ich würde mich auf Hilfe freuen.

Frage 2:
Ich möchte in dem Dice Plugin eine "Super Niete" einfügen. Also Super Niete bekommt man folgendes:

- Man ist langsamer (Weiß ich wie es geht)
- Man kann keine Waffen aufheben (Werden geblockt)

Leider weiß ich nicht wie man macht das einfach die Waffen von dem Client geblockt werden. Ich würde mich da auch freuen.

Mit freundlichen Grüßen
Marme
03/02/2014 20:07 .Bara.#2
Code:
#pragma semicolon 1

#include <sourcemod>
#include <sdkhooks>

public OnPluginStart()
{

	for(new i = 1; i <= MaxClients; i++)
	{
		if(IsClientValid(i))
		{
			SDKHook(i, SDKHook_OnTakeDamage, OnTakeDamage);
			SDKHook(i, SDKHook_WeaponCanUse, OnWeapon);
			SDKHook(i, SDKHook_WeaponSwitch, OnWeapon);
		}
	}
}

public OnClientPutInServer(i)
{
	SDKHook(i, SDKHook_OnTakeDamage, OnTakeDamage);
	SDKHook(i, SDKHook_WeaponCanUse, OnWeapon);
	SDKHook(i, SDKHook_WeaponSwitch, OnWeapon);
}

public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3])
{
	return Plugin_Handled;
}

public Action:OnWeapon(client, weapon)
{
	return Plugin_Handled;
}

stock bool:IsClientValid(client)
{
	if(client > 0 && client <= MaxClients && IsClientInGame(client))
	{
		return true;
	}
	return false;
}
Bewirkt das man kein Schaden macht ( durch ein Bug das man tzd. kein dmg macht), keine Waffen wechseln kann ( falls man mit Waffen spawnt) und keine Waffen aufheben.

Man könnte das ganze noch erweitern, z.B. das nur Knife erlaubt ist:
Code:
#pragma semicolon 1

#include <sourcemod>
#include <sdkhooks>

public OnPluginStart()
{

	for(new i = 1; i <= MaxClients; i++)
	{
		if(IsClientValid(i))
		{
			SDKHook(i, SDKHook_OnTakeDamage, OnTakeDamage);
			SDKHook(i, SDKHook_WeaponCanUse, OnWeapon);
			SDKHook(i, SDKHook_WeaponSwitch, OnWeapon);
		}
	}
}

public OnClientPutInServer(i)
{
	SDKHook(i, SDKHook_OnTakeDamage, OnTakeDamage);
	SDKHook(i, SDKHook_WeaponCanUse, OnWeapon);
	SDKHook(i, SDKHook_WeaponSwitch, OnWeapon);
}

public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3])
{
	decl String:sWeapon[32];
	GetClientWeapon(attacker, sWeapon, sizeof(sWeapon));

	if(StrEqual(sWeapon[6], "knife"))
	{
		return Plugin_Continue;
	}

	return Plugin_Handled;
}

public Action:OnWeapon(client, weapon)
{
	decl String:sWeapon[64];
	GetEntityClassname(weapon, sWeapon, sizeof(sWeapon));

	if(StrEqual(sWeapon[6], "knife"))
	{
		return Plugin_Continue;
	}

	return Plugin_Handled;
}

stock bool:IsClientValid(client)
{
	if(client > 0 && client <= MaxClients && IsClientInGame(client))
	{
		return true;
	}
	return false;
}