Equipment Viewer für SA / SL / GA only?

01/03/2017 00:14 Samael#1
[Only registered and activated users can see links. Click Here To Register...]

möglich einzustellen das nur Leute mit [SL] , [SA] etc ingame auf Ausrüstung bei den Spielern klicken können? Dort wird angegeben das jeder mit [ im namen das aufrufen kann, das ist kontraproduktiv. Jemand ne idee?

PS: "[SL]" statt "[" habe ich bereits versucht, dann klappt es garnicht mehr. Sysrr gibt keine meldung aus.
01/03/2017 01:19 </nQQpls>#2
[Only registered and activated users can see links. Click Here To Register...]
01/03/2017 01:42 Samael#3
Quote:
Originally Posted by </nQQpls> View Post
[Only registered and activated users can see links. Click Here To Register...]

nicht hilfreich. Wird auch als spam geahndet und gemeldet.
01/03/2017 02:35 rollback#4
Sowas solltest du generell nicht Clientside lösen, denn dann kann letzendlich jeder auf den EQ Viewer zugreifen.

Wenn du es doch Clientside machen willst:
Code:
import re

matcher = re.match("^\[(.+?)\].*$", player.GetName())
if matcher != None and matcher.group(1) in ["SA", "SL"]:
	self.showblabla
01/03/2017 14:35 Nick#5
Quote:
Originally Posted by xSaito View Post
nicht hilfreich. Wird auch als spam geahndet und gemeldet.
Hilfreich schon, dir scheinen nur die nötigen Kenntnisse zu fehlen, um das Ganze umzusetzen - wofür dich auch niemand verurteilt, allerdings solltest du keinen fertigen Code erwarten, man ist schließlich freiwillig hier.

Quote:
Originally Posted by xSaito View Post
[..] PS: "[SL]" statt "[" habe ich bereits versucht, dann klappt es garnicht mehr. Sysrr gibt keine meldung aus.
Damit würdest du abfragen, ob das allererste Zeichen im Namen "[SL]" ist, was schlecht möglich ist - der Button wird nicht angezeigt.

Zeichen:

Code:
if str(player.GetName())[0] == "[":
Segment:

Code:
if str(player.GetName())[0:4] == "[SL]":
Ich würde auch von einer clientseitigen Lösung abraten.
01/03/2017 19:52 Samael#6
Ich weis das Clientlösungen nicht so schlau sind. Ist ja alles nur testweise. Danke euch beiden für die hilfreichen beiträge. :)
01/03/2017 22:26 Czny.#7
Hey,
hab damals dasselbe Problem gehabt, ich habs so gelöst dass ich ne Python Funktion(in Source) ersetzt habe.

PythonCharacterModule.cpp

Eigentliche Funktion :

Code:
PyObject * chrIsGameMaster(PyObject* poSelf, PyObject* poArgs)
{
	int iVirtualID;
	if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
		return Py_BuildException();

	CInstanceBase * pInstance = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
	if (!pInstance)
		return Py_BuildValue("i", 0);

	return Py_BuildValue("i", pInstance->IsGameMaster());
}
Meine :
Code:
PyObject * chrIsGameMaster(PyObject* poSelf, PyObject* poArgs)
{
	CInstanceBase * pInstance = CPythonPlayer::Instance().NEW_GetMainActorPtr();
	if (!pInstance)
		return Py_BuildValue("i", 0);

	return Py_BuildValue("i", pInstance->IsGameMaster());
}
Füge noch unter den Includes das hinzu:
Code:
#include "PythonPlayer.h"

Nun kannst du mit einer if abfrage ob der main Charakter ein Gamemaster ist.

Beispiel :
Code:
import chr
import chat
if chr.IsGameMaster():
	chat.AppendChat(1, "Du bist GM!")
else:
	chat.AppendChat(1, "Du bist kein GM!")