bad entry point
Das bedeutet, dir fehlt die Main Methode, schreib das noch in dein Script:
main() {
}
mfg. ![]()
bad entry point
Das bedeutet, dir fehlt die Main Methode, schreib das noch in dein Script:
main() {
}
mfg. ![]()
Benutzung:
Das muss so aussehen:
SetPlayerPos(playerid,tdm_map[rand][coords][0],tdm_map[rand][coords][1],tdm_map[rand][coords][2]);
mfg. ![]()
da müsste man mit Javascript arbeiten.
Um spezifischer zu werden, kann man hier schön mit JQuery arbeiten.
Hier ein schönes Beispiel welches dir weiter helfen sollte (sogar mit Button):
http://stackoverflow.com/quest…/jquery-scroll-to-element
mfg. ![]()
Ich will jetzt keine Märchen verbreiten oder so...aber wenn man Ban(playerid); benutzt, dann bannt das schon automatisch die Ip des Spielers ![]()
mfg. ![]()
wie das gehen soll bzw. was genau die besagte Funktion eig. tut.
Nun, wenn man z.B. DisableInteriorEnterExits(); verwendet, werden alle Interiors die aus dem Singleplayer drinnen sind, deaktiviert.
Sprich auch alle Bots, auch wenn du den Spieler in den selben Interior setzt z.B. Ammunation / Burger Shot o.ä. ist dort kein Bot oder sonst was, der dir was verkauft.
SetPlayerShopName
Diese Funktion sorgt dafür, dass genau in einem bestimmten Laden z.B. nur Ammunation dann da ein Bot steht, der dir Waffen verkauft ![]()
mfg. ![]()
Kaliber das kann nicht sein, da für alle 14 Bots der selbe connect+spawnvorgang ist.
Na, aber irgendwas muss es ja sein, sonst würde es ja funktionieren ![]()
Nutzt du NPC-Plugins...vielleicht nicht alle auf Linux geswitcht? ![]()
liegt das daran?
Nein, allerdings ist es auch nicht gut, seinen heapspace (denn das macht man mit #pragma dynamic) um 100kB zu vergrößern ![]()
Deine Bots connecten, spawnen und disconnecten. Dann print-Debugge doch einfach wo das Problem ist...lässt du sie evtl in irgendeiner Funktion kicken? Evtl Anti-Cheats? Oder halt irgendwo kick(playerid) ...o.ä.?
mfg. ![]()
bzw. eine Idee zur Lösung??
Hast du in der Server.cfg maxpncs auch auf 10 gestellt? ![]()
Wenn ja...poste doch mal den Server Logg, dann können wir dir denke ich mal besser helfen ![]()
mfg. ![]()
Nun, da dort kein Fehler ist, muss er woanders liegen ![]()
invalid function or declaration kommt immer dann, wenn man Blank Code ohne deklaration oder Funktion einfach so in das Script schreibt.
//Beispiel1:
#include <a_samp>
main() {
}
hi
//Output-> error 010: invalid function or declaration
Nun, das bedeutet du hast irgendwo in deinem Script Blank Code stehen...
Du brauchst eigentlich #include <float> und #include <core>...etc nicht schreiben, da das alles schon in der a_samp.inc includiert wird ![]()
Lösche mal das #include <core> raus..vielleicht ist der Fehler dann weg, wenn nicht, dann musst du auf Suche nach Blank-Code gehen ![]()
mfg. ![]()
Es ist kein Fehler in der Include Datei ![]()
Das wird nur nicht ganz richtig angezeigt...der eigentliche Fehler liegt in deinem Gamemode ![]()
Poste mal bitte alle Zeilen, bis zu der Zeile wo #include <core> steht ![]()
mfg. ![]()
und stocks brauchen keine Forwards.
Als erstes solltest du wissen, dass stock nur ein Wort ist, wie verlinkt, dass dafür sorgt, dass der Compiler die Funktion oder Variable ignoriert, falls sie nicht genutzt wird.
Es handelt sich immer noch um eine Funktion. Und wenn eine Funktion einen TAG zurückgibt, sei es Float oder sonst einer, dann macht das forwarden auch einen Sinn.
Schauen wir uns dazu ein Beispiel an:
main() {
printf("%f",getFloat(2));
}
stock Float:getFloat(x) {
return float(x);
}
Wenn wir das genau so machen in dieser Reihenfolge, gibt es ein Problem und zwar bekommen wir diesen Warning:
Das sagt uns, dass wir bevor wir die Funktion nutzen, entweder die Funktion forwarden müssen oder bevor wir die Funktion nutzen die Funktion erstellen.
Aus diesem Grund macht das forwarden zwar nicht direkt darüber einen Sinn, aber wenn man es so macht:
forward Float:getFloat(x);
main() {
printf("%f",getFloat(2));
}
stock Float:getFloat(x) {
return float(x);
}
ist der Warning weg und es hat durchaus seine Richtigkeit ![]()
mfg. ![]()
Wie kann ich auslesen von welchen spielern ein User zu letzt getötet wurde und welche User ein Spieler zuletzt getötet hat?
Hat jemand gerade einen Code/FS da hab schon gesucht doch leider nicht gefunden
Nun, das kannst du über eine globale Variable einfach lösen:
//Oben in dein Script
#define MAX_KILL_STATS 5
#define getKillID(%0) d_idx{%0}
static DeathInfo[MAX_KILL_STATS][MAX_PLAYERS] = {{-1,...},{-1,...},{-1,...},{-1,...},{-1,...}},d_idx[MAX_PLAYERS char];
//Unter dem Callback
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid != INVALID_PLAYER_ID) {
DeathInfo[getKillID(playerid)][playerid] = killerid;
d_idx{playerid}++;
if(getKillID(playerid) == MAX_KILL_STATS) d_idx{playerid} = 0;
}
return 1;
}
stock GetLastKillerName(playerid) //Gibt den Namen von dem Spieler zurück, der ihn zuletzt getötet hat
{
new name[MAX_PLAYER_NAME] = "Nieamnd";
if(DeathInfo[getKillID(playerid)-1][playerid] == -1) return name;
return GetPlayerName(DeathInfo[getKillID(playerid)-1][playerid],name,MAX_PLAYER_NAME),name;
}
stock ListLastKills(playerid) //Listet die Usernamen, von den Spielern die er zuletzt getötet hat (wenn sie noch on sind)
{
new name[MAX_PLAYER_NAME],string[25 + MAX_PLAYER_NAME];
for(new i; i<MAX_PLAYERS; i++) {
if(!IsPlayerConnected(i)) continue;
for(new x; x<MAX_KILL_STATS; x++) {
if(DeathInfo[x][i] == playerid) {
GetPlayerName(i,name,MAX_PLAYER_NAME);
format(string,sizeof string,"Du hast %s getötet gehabt!",name);
SendClientMessage(playerid,-1,string);
}
}
}
return 1;
}
Ist aus dem Kopf geschrieben..weiß nicht ob es funktioniert, kannst es ja mal probieren ![]()
mfg. ![]()
Hier, so machst du es ordentlich:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
<title>Background Bild</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<style type="text/css">
<!--
body {
background-image:url(Bild.png);
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
background-repeat:no-repeat;
}
-->
</style>
</head>
<body>
<!-- Hier dann der content -->
</body>
</html>
Alles anzeigen
mfg. ![]()
local variable "id" shadows a variable at a preceding level
Nenne die Variable id einfach um.
h_text
das muss im enum so stehen:
Text3D:h_text
mfg. ![]()
Ich habe auch nur seinen Code genommen und "angepasst".
Wenn er sich mit PAWN auseinandersetzen möchte, sollte er seinen eigenen Fehler schon selbst bemerken und somit auch, dass "!" eine Negierung ist und abgefragt wird, ob er NICHT in dieser Range ist.
Schau dir mal seinen Code genauer an ![]()
Er hat die ! für IsPlayerInRangeOfPoint verwendet um herauszufinden, ob er nicht in dieser Range ist und dann ein return benutzt um den Code zu beenden.
Wenn es jetzt nur 1ne Abfrage gewesen wäre, dann hätte das auch wunderbar funktioniert...
Doch bei mehreren ist das natürlich so falsch ![]()
mfg. ![]()
Dein Code funktioniert so eigentlich gar nicht...da du nach dem ersten return den Code unterbrichst...
Zudem sind deine permanenten if-Abfragen für den key völlig unnötig...schreibs doch einfach so:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_SECONDARY_ATTACK ) {
if(IsPlayerInRangeOfPoint(playerid,1.0,2265.5400,1675.8618,1090.4453)) {
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,9);
SetPlayerPos(playerid,2268.7078,1675.7773,94.9219);
} else if(IsPlayerInRangeOfPoint(playerid,1.0,2266.0137,1619.4340,1090.4453)) {
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,9);
SetPlayerPos(playerid,2269.3811,1619.5103,94.9219);
} else if(IsPlayerInRangeOfPoint(playerid,1.0,2268.7078,1675.7773,94.9219)) {
SetPlayerInterior(playerid,1);
SetPlayerVirtualWorld(playerid,9);
SetPlayerPos(playerid,2265.5400,1675.8618,1090.4453);
} else if(IsPlayerInRangeOfPoint(playerid,1.0,2269.3811,1619.5103,94.9219)) {
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,9);
SetPlayerPos(playerid,2266.0137,1619.4340,1090.4453);
}
}
return 1;
}
//Edit: Scott_Mitchell:
Dein Code ist falsch...die ! stimmen nicht ![]()
mfg. ![]()
Ich habe eine kleine Frage zu den Defines.
Das machst du dann einfach so:
Create3DTextLabel(test,...); //test wird dann durch den Text "Hallo Welt" ersetzt ;)
mfg. ![]()
Wie bekomme ich das nun hin?
Das wäre meiner Meinung nach die beste Methode in Pawn:
#define sLetter(%0) (((%0) >= 'A' && (%0) <= 'Z') ? ((%0) | 0x20) : (%0))
for(new i,l = strlen(string); i<l; i++) {
string[i] = sLetter(string[i]);
}
mfg. ![]()