Könnte ich noch kurz erfahren wie dieses Plugin heißt?
Das sieht mir stark nach der Globalen Ankündigung aus ![]()
mfg. ![]()
Könnte ich noch kurz erfahren wie dieses Plugin heißt?
Das sieht mir stark nach der Globalen Ankündigung aus ![]()
mfg. ![]()
Mit höchster Wahrscheinlichkeit ein Include mit einer CreatePlayerObject Zeile mit großen/komischen Werten, die einen Fehler im Cheat auslösen.
Interessante Idee...
...aber geht sie auch? Ich meine folgende Probleme:
1. Das Objekt hat dann diese Position...sprich es wäre außerhalb der Map und die meisten Tools würden es gar nicht registrieren...
2. Wenn sie es registrieren...ist das doch auch egal oder? Ich meine, dann haben die halt ein Objekt geklaut und verwenden es evtl, was außerhalb der SA:Map ist mit MAX_INTEGER Koordinaten..
Würde das Programm und den Server doch irgendwie nicht beeinträchtigen oder? ![]()
Er fälscht die Objekte die InGame sind, also das der Spieler nicht die richtigen IDs bekommt, also statt einer Wand bekommt er vllt nur eine Lampe etc.
Und wie will er das anstellen...schließlich müssen die modelids ja für den Clienten richtig sein, damit er sie richtig angezeigt bekommt? ![]()
Sind defines schneller als Funktionen oder wie?
1. Ja sind sie.
Und "Cheat started" oder sonstiges ja vom Cheat.
Willst du etwa von Mods o.ä. die Nachrichten abfangen?
Das kannst du durch Pawn nicht... ![]()
mfg. ![]()
Ich verstehe nicht, was daran so schwer ist und wofür man das braucht.
Mach ein Makro daraus:
#define GetClientMessage(%0,%1,%2) \
SendClientMessage(%0,%1,%2),SendAdminMessage(%2)
mfg. ![]()
Der beste der öffentlich ist
Weißt du wie ein Streamer funktioniert? ![]()
Wenn ja, wüsstest du, dass es der beste ist...
den hab ich ja, es ändert sich trotzdem nichts... oder muss ich etwas Spezielles in meinen Script einbauen?
Ja, du musst CreateDynamicObject verwenden ![]()
mfg. ![]()
Ich brauche etwas, bei dem ich nicht ständig im Internet nach den Funktionen und Parametern schauen muss.
Pawno mal als Administrator ausführen und STRG + Leertaste mal drücken, dann haste das auch ![]()
mfg. ![]()
1. Wähle „Datei“ > „Einstellungen für Veröffentlichungen“ und schau, dass „HTML“ ausgewählt ist.
2. Wähle „HTML“.
3. Wähle im Fenstermodusmenü „Transparent ohne Fenster“, damit der Hintergrund der SWF-Datei in Browsern, die diese Funktion unterstützen, ausgeblendet wird.
4. Fertig
mfg. ![]()
ocmd:heal(playerid,params)
Das muss so lauten:
ocmd:heal(playerid,params[])
Die [] um zu symbolisieren, dass es sich hier um einen String handelt ![]()
mfg. ![]()
Musst es so schreiben:
if(sscanf(params,"uii",pID,pheal,hpreis))return SendClientMessage(playerid,GRAU,"Verwendung: /heal [playerid] [heal] [preis]"); //Fehler zeile
Nur bei s die Länge vom Array angeben ![]()
mfg. ![]()
Also...du lässt einfach während dem Anzeigen eines Dialoges, dem Spieler noch einen Dialog mit anderem content anzeigen...der 1. verschwindet und der 2. wird angezeigt und es sieht so aus, als ob sich der content vom 1. Dialog geändert hätte? ![]()
Gut zu wissen, dass da samp mitspielt ![]()
//Edit:
PS: Verwende anstatt Funktionen Makros:
#define GetPlayerDialog(%0) g_PlayerDialog[%0]
mfg. ![]()
Hier...:
ocmd:invite(playerid, params[])
{
if(!pInfo[playerid][pLeader]) return SendClientMessage(playerid,WEIß,"Du bist kein Leader!");
if(sscanf(params,"u",pID)) return SendClientMessage(playerid,WEIß,"{FFD200}Benutzung:{FEFEFE} /invite [spielerid]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht online !");
if(pID == playerid) return SendClientMessage(playerid,WEIß,"Du kannst dich nicht selber inviten !");
if(pInfo[pID][pMember] || pInfo[pID][pLeader]) return SendClientMessage(playerid,WEIß,"Dieser Spieler ist bereits in einer Fraktion !");
new str[128], name[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME];
GetPlayerName(pID, name, MAX_PLAYER_NAME),GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(str, 128,"Du wurdest von %s in die Fraktion %s invitet!",pname,fraktname);
SendClientMessage(pID,WEIß,str);
format(str, 128,"Du hast %s in deine Fraktion invitet er muss noch Annehmen / Ablehnen!!",name);
SendClientMessage(playerid,WEIß,str);
Eingeladen[pID] = pInfo[playerid][pLeader];
SendClientMessage(pID,GRÜN,"{31FF00} Möchtest du dieser Fraktion beitreten?");
ShowPlayerDialog(pID,DIALOG_INVITE,DIALOG_STYLE_LIST,"{E1FF00}Invite{FEFEFE}","Möchtest du dieser Fraktion beitreten","Annehmen","Ablehnen");
return 1;
}
if(dialogid == DIALOG_INVITE)
{
if(!response) return SendClientMessage(playerid,GRAU,"Du hast die Einladung abgelehnt"),Eingeladen[playerid] = 0;
SendClientMessage(playerid,GRAU,"Du hast bist der Fraktion beigetreten. viel spaß in deiner neuen Fraktion.");
pInfo[playerid][pMember] = Eingeladen[playerid];
pInfo[playerid][pRank] = 1;
SendClientMessage(playerid, GRÜN, " Du kannst mit /hilfe deine Fraktionsbefehle betrachten");
SendClientMessage(playerid, GRÜN, " Wir wünschen dir Viel Spaß und viel Erfolg in deiner neuen Fraktion");
SendClientMessage(playerid, GRÜN, " Höre bitte immer auf deinen Leader. Sei immer nett und Freundlich");
if(pInfo[playerid][pMember]==1) {
SendClientMessage(playerid,GRAU,"Du bist nun in der Fraktion Rettungsdienst.");
SendClientMessage(playerid,GRAU,"Du kannst mit /f den Team Chat benutzen und unter /navi die Fraktion Base finden");
SetPlayerSkin(playerid,276),pInfo[playerid][pSkin] = 276;
SetPlayerColor(playerid,WEIß);
}
Eingeladen[playerid]=0;
}
Hoffe ich konnte dir helfen ![]()
mfg. ![]()
Fabian™
Also, mir ist gerade extrem langweilig also stelle ich dir mal eine kleine ausführliche komplett Lösung zur Verfügung:
//Oben im Script
new frequ[MAX_PLAYERS char];
Also oben erstellen wir eine globale Variable für alle Spieler, deshalb MAX_PLAYERS ich mache es zu einem char-Array, weil dies Speicher spart und da es keine 255 Frequenzen gibt, können wir dies ideal nutzen.
Als nächstes musst du jedem der senden und empfangen soll eine Frequenz zuweisen..halt da wo du das System gebrauchen willst.
//Das würde z.B. so aussehen:
frequ{playerid} = 5; //Dieser Spieler wäre auf Frequenz 5 und könnte zu jedem in dieser Frequenz senden.
Der Command sollte ungefähr so aussehen:
//(Egal,ob strcmp,dcmd,ocmd,zcmd,ycmd,cmd,oder sonst was, denken wir uns das steht hier: "senden")
{
if(!frequ{playerid}) return SendClientMessage(playerid,-1,"Du hast keine Frequenz!");
return SendFrequenzChat(frequ{playerid},color,"Hallo!");
}
So, was macht dieser Command, zuerst prüfen wir ob frequ{playerid} 0 ist, wenn dies der Fall ist, kann er nicht schreiben.
Wenn nicht, senden wir an alle in unserer Frequenz ein "Hallo!" in irgendeiner Farbe!
Du kannst da auch einfach frequid reinschreiben und oben mit sscanf den Text und die id splitten, ich denke das bekommst du hin ![]()
und als letztes noch eine simple Funktion:
stock SendFrequenzChat(frequid,color,text[]) {
for(new i; i<MAX_PLAYERS; i++) {
if(!IsPlayerConnected(i) || frequ{i} != frequid) continue;
SendClientMessage(i,color,text);
}
return 1;
}
Diese Funktion geht einfach nur in einer Schleife alle Spieler durch und prüft ob sie auf dem Server sind und ob sie in der selben Frequenz sind wie die frequid ![]()
Ich hoffe ich konnte dir das so einigermaßen erklären, so das du es gut umsetzten kannst ![]()
mfg. ![]()
Schreib das mal so:
if(!strcmp(cmdtext, "/acar", true))
{
if(!PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid, FARBE_WEISS, "Du bist nicht im Admindienst! (Aduty)");
if(AdminCar[playerid]) return DestroyVehicle(AdminCar[playerid]),SendClientMessage(playerid, FARBE_ROT, "Fahrzeug vernichtet."),AdminCar[playerid] = 0;
return ShowPlayerDialog(playerid, DIALOG_ADMINCAR, DIALOG_STYLE_INPUT,"{FF0000}Admincar","Fahrzeug ID eingeben","Erstellen","Abrechen");
}
und poste mal wie du DIALOG_ADMINCAR definiert hast ![]()
mfg. ![]()
Haut mir Errors rein.
Schau dir mal mein Edit an! ![]()
PS: Da wurde auch oben im Code was verbessert...
mfg. ![]()
Schreib es mal bitte einfach so:
for(new i; i<MAX_TANKSTELLEN; i++)
{
new Tankstellen[200];
format(Tankstellen,sizeof(Tankstellen),"/Tankstellen/%d.ini",i);
if(!fexist(Tankstellen)) continue;
format(Tanke[i][besitzer],MAX_PLAYER_NAME,dini_Get(Tankstellen,"besitzer"));
Tanke[i][tankstellex] = dini_Float(Tankstellen,"tankstellex");
Tanke[i][tankstelley] = dini_Float(Tankstellen,"tankstelley");
Tanke[i][tankstellex] = dini_Float(Tankstellen,"tankstellex");
Tanke[i][produktpreis] = dini_Int(Tankstellen,"produktpreis");
format(Tanke[i][tankstellenname],32,dini_Get(Tankstellen,"tankstellenname"));
Tanke[i][benzinpreis] = dini_Int(Tankstellen,"benzinpreis");
Tanke[i][dieselpreis] = dini_Int(Tankstellen,"dieselpreis");
Tanke[i][superpreis] = dini_Int(Tankstellen,"superpreis");
Tanke[i][kaufpreis] = dini_Int(Tankstellen,"kaufpreis");
Tanke[i][kauflevel] = dini_Int(Tankstellen,"kauflevel");
Tanke[i][kasse] = dini_Int(Tankstellen,"kasse");
Tanke[i][pickupx] = dini_Float(Tankstellen,"pickupx");
Tanke[i][pickupy] = dini_Float(Tankstellen,"pickupy");
Tanke[i][pickupz] = dini_Float(Tankstellen,"pickupz");
Tanke[i][pickupids] = dini_Int(Tankstellen,"pickupids");
Tanke[i][pickupwelt] = dini_Int(Tankstellen,"pickupwelt");
printf("Tankstelle %i wurden geladen.",i);
}
//Edit:
Das enum sollte so aussehen:
enum Tankstelle
{
besitzer[MAX_PLAYER_NAME],
Float:tankstellex,
Float:tankstelley,
Float:tankstellez,
produktpreis,
produkte,
tankstellenname[32],
benzinpreis,
dieselpreis,
superpreis,
kaufpreis,
kauflevel,
kasse,
pickupx,
pickupy,
pickupz,
pickupids,
pickupwelt
};
mfg. ![]()
Müsste ich dafür eine Neue PHP Datei erstellen?
Nein.
Bei mir kommt keine Fehlermeldung, ich möchte das Script nur auf Linux, weil mein Server dann nicht startet wenn mein Server startet dann steht da: Unknown, aber MySQL ist richtig!
Unknown...bedeutet wahrscheinlich es werden nicht alle Plugins richtig geladen...
hast du wirklich alle mit .so in die Server.cfg geschrieben und sind alle .so Plugins im plugin Ordner?
Wenn ja, solltest du den nativechecker mal für Linux downloaden...der spuckt dir dann eine genauere Fehlermeldung aus ![]()
PS: @alle anderen...hackt nicht so auf ihm rum..auch wenn es lustig ist
(das macht man nicht!)
mfg. ![]()