Arbeite mit strfind, strdel & strins
mfg
Arbeite mit strfind, strdel & strins
mfg
Ah einer meiner Lieblings Versionen.
//beim einloggen
new name[24];
GetPlayerName(playerid,name,24);
mysql_real_escape_string(name, name);
format(query, sizeof query, "SELECT `banned` FROM `usertabelle` WHERE `Name` = '%s'", name);
mysql_query(query);
mysql_store_result();
new banned=mysql_fetch_int();
mysql_free_result();
if(banned)return Kick(playerid);
Dies ist nur ein beispiel code
mfg
Welche MySQL Version benutzt du ? (Plugin + Include Version)
mfg
if(IsPlayerInRangeOfPoint(playerid,5.0,252.2642,70.2172,1003.6406) || if(IsPlayerInRangeOfPoint(playerid,7,252.2642,70.2172,1003.6406))return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht an den Snack-Automaten!");
zu
if(IsPlayerInRangeOfPoint(playerid,5.0,252.2642,70.2172,1003.6406) || IsPlayerInRangeOfPoint(playerid,7,252.2642,70.2172,1003.6406))return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht an den Snack-Automaten!");
mfg
enum varData{Float:x,Float:y,Float:z,};
new snackautomaten[][varData] = {
{0.0,0.0,0.0},
};
if(!strcmp(cmdtext,"/snack"))){
for(new x, o = sizeof snackautomaten; x != o;
if(GetPlayerDistanceFromPoint(playerid, snackautomaten[x][x], snackautomaten[x][y], snackautomaten[x][z]) <= 2.1)return ShowPlayerDialog(playerid,DIALOG_SNACK,DIALOG_STYLE_LIST,"Snack Automat","...","Weiter","Beenden");
if((x == o && o == sizeof snackautomaten))break;
}
return SendClientMessage(playerid,-1,"Du bist nicht in der Nähe eines Snack ATMS!");
}
@John_Alvarez
Dies ist nur ein Beispiel code!
mfg
Mit GetPlayerVehicleID lässt du ja auch nur die vID auslesen nicht die Modelid.
new newcar = GetPlayerVehicleID(playerid);
zu
new newcar = GetVehicleModel(GetPlayerVehicleID(playerid));
mfg
JTimer[playerid] = SetTimerEx(...);
KillTimer(JTimer[playerid]);
#HANDY
mfg
So überschreibst du die Variable 'id' nur..
new id[wert];
id[0]=CreateObject(...);
id[1]=CreateObject(...);
#Handy
mfg
Du musst die Objekte ja auch beim Exit Destroyen lassen!
mfg
if(!strcmp(cmdtext, "/text", true)){
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid,-1,"Du musst Fahrer eines Fahrzeugs sein!");
new Text3D:textlabel = Create3DTextLabel("text blabla", -1, 0, 0, 0, 20.0, GetPlayerVirtualWorld(playerid), 1);
Attach3DTextLabelToVehicle(textlabel, GetPlayerVehicleID(playerid), 0.0, 0.0, 0.4);
return SendClientMessage(playerid,-1,"du hast ein text3d label über dem fahrzeug erstellt.");
}
Dies hier ist einmal Beispiel Code, schau ihn dir mal genau an
//Edit Code verändert
mfg
Hiermal ein paar Funktionsnamen dafür:
TogglePlayerControllable
SetTimer/ex
CreateObect
DestroyObect
SetVehiclePos
CreateVehicle
mfg
Ich verstehe nicht genau was du meinst, bei mir wird in die Datenbank nichts eingetragen, also auch keine Daten von der ersten Gangzone. Wie mach ich das denn genau?
Er meint, dass du UPDATE verwendest, aber wenn es noch keine Zeile zum Updaten gibt ?
Deswegen REPLACE INTO oder so.
EDIT://
Bist du blind ?
22:01:02] CMySQLHandler::Query(UPDATE gangwar SET owner='',maxX='2029.726684',maxY='1330.839477',minX='2053.801269',minY='1365.484130',flaggeX='2045.354370',flaggeY='1340.911376',flaggeZ='10.671875',erstellt='' WHERE id='0') - Successfully executed.
mfg
Lass den NPC's ruhig länger aufnehmen. Bei so kurzer Zeit verlässt der NPC direkt wieder den Server, da er die .rec Datei durchgelaufen ist.
Er durchgeht die .rec Datei unendlich lang, und der bot war die ganze Zeit da!
EDIT://
Jetzt funktionierst, habe es einfach beim connecten gemacht, der print hat mir geholfen!
@ConnectNPC(_count);
@ConnectNPC(_count){
switch(_count){
case 0:{
ConnectNPC("Joe", "Joe");
for(new playerid; playerid < MAX_PLAYERS; playerid ++){
if(!IsPlayerConnected(playerid))continue;
if(!IsPlayerNPC(playerid))continue;
//printf("joe is connected, skin: %i", GetPlayerSkin(playerid));
SetPlayerSkin(playerid, 33);
//printf("joe is connected, skin: %i", GetPlayerSkin(playerid));
}
}
}
}
mfg
Die aufnahme von joe ist auch nur eine sekunde lang
mfg
Hast du diese pwn kompiliert?
Hast du die rec Datei bei den npcmodes drin?
Falls beides ja, lade die rec Datei hier mal als Anhang hoch.
Dein Wunsch ging in Erfüllung!
mfg
Kannst ja mal posten.
Hast du den Bot als im Fahrzeug oder als zu Fuß aufgenommen?
Hast du andere NPCs ingame, bei denen es klappt?
#include <a_npc>
main(){}
#define RECORDING "Joe"
#define RECORDING_TYPE 2
public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);
public OnNPCExitVehicle()StopRecordingPlayback();
public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
Das wäre mein 1ter NPC!
Ich habe ihn per /ofrecord zu Fuß aufgenommen.
mfg
Alles anzeigenVerbindet sich der NPC überhaupt auf den Server?
Hast du den NPC auch richtig aufgenommen?
Klappt es, wenn du bei OnPlayerConnect:
if(IsPlayerNPC(playerid)) SpawnPlayer(playerid);
setzt?
Hast du NPCs ingame, bei denen es klappt?
Nein es funktioniert so auch irgendwie auch nicht.
Was ist nur mit dem NPC los ??
Möchtest du vielleicht mal die Joe.pwn sehen ? (Quellcode)
mfg
Alles anzeigenSpawnPlayer bei OnPlayerSpawn ist eine schlechte Idee.
if(IsPlayerNPC(playerid)){
printf("Name = %s", getName(playerid));
if(!strcmp(getName(playerid), "Joe", true)){
printf("Skin 33 zu ID %d", playerid);
RepairAnims(playerid);
SetPlayerSkin(playerid, 33);
ApplyAnimation(playerid, "SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0, 0);
}
return 1;
}
Was wird geprintet, wenn du es so laufen lässt?
Es wird nichts geprintet, er führt das Callback OnPlayerSpawn nicht aus!
stock RepairAnims(playerid){
PreloadAnimLib(playerid,"AIRPORT");
PreloadAnimLib(playerid,"Attractors");
PreloadAnimLib(playerid,"BAR");
PreloadAnimLib(playerid,"BASEBALL");
PreloadAnimLib(playerid,"BD_FIRE");
PreloadAnimLib(playerid,"BEACH");
PreloadAnimLib(playerid,"benchpress");
PreloadAnimLib(playerid,"BF_injection");
PreloadAnimLib(playerid,"BIKED");
PreloadAnimLib(playerid,"BIKEH");
PreloadAnimLib(playerid,"BIKELEAP");
PreloadAnimLib(playerid,"BIKES");
PreloadAnimLib(playerid,"BIKEV");
PreloadAnimLib(playerid,"BIKE_DBZ");
PreloadAnimLib(playerid,"BLOWJOBZ");
PreloadAnimLib(playerid,"BMX");
PreloadAnimLib(playerid,"BOMBER");
PreloadAnimLib(playerid,"BOX");
PreloadAnimLib(playerid,"BSKTBALL");
PreloadAnimLib(playerid,"BUDDY");
PreloadAnimLib(playerid,"BUS");
PreloadAnimLib(playerid,"CAMERA");
PreloadAnimLib(playerid,"CAR");
PreloadAnimLib(playerid,"CARRY");
PreloadAnimLib(playerid,"CASINO");
PreloadAnimLib(playerid,"CHAINSAW");
PreloadAnimLib(playerid,"CHOPPA");
PreloadAnimLib(playerid,"CLOTHES");
PreloadAnimLib(playerid,"COACH");
PreloadAnimLib(playerid,"COLT45");
PreloadAnimLib(playerid,"COP_AMBIENT");
PreloadAnimLib(playerid,"COP_DVBYZ");
PreloadAnimLib(playerid,"CRACK");
PreloadAnimLib(playerid,"CRIB");
PreloadAnimLib(playerid,"DAM_JUMP");
PreloadAnimLib(playerid,"DANCING");
PreloadAnimLib(playerid,"DEALER");
PreloadAnimLib(playerid,"DILDO");
PreloadAnimLib(playerid,"DODGE");
PreloadAnimLib(playerid,"DOZER");
PreloadAnimLib(playerid,"DRIVEBYS");
PreloadAnimLib(playerid,"FAT");
PreloadAnimLib(playerid,"FIGHT_B");
PreloadAnimLib(playerid,"FIGHT_C");
PreloadAnimLib(playerid,"FIGHT_D");
PreloadAnimLib(playerid,"FIGHT_E");
PreloadAnimLib(playerid,"FINALE");
PreloadAnimLib(playerid,"FINALE2");
PreloadAnimLib(playerid,"FLAME");
PreloadAnimLib(playerid,"Flowers");
PreloadAnimLib(playerid,"FOOD");
PreloadAnimLib(playerid,"Freeweights");
PreloadAnimLib(playerid,"GANGS");
PreloadAnimLib(playerid,"GHANDS");
PreloadAnimLib(playerid,"GHETTO_DB");
PreloadAnimLib(playerid,"goggles");
PreloadAnimLib(playerid,"GRAFFITI");
PreloadAnimLib(playerid,"GRAVEYARD");
PreloadAnimLib(playerid,"GRENADE");
PreloadAnimLib(playerid,"GYMNASIUM");
PreloadAnimLib(playerid,"HAIRCUTS");
PreloadAnimLib(playerid,"HEIST9");
PreloadAnimLib(playerid,"INT_HOUSE");
PreloadAnimLib(playerid,"INT_OFFICE");
PreloadAnimLib(playerid,"INT_SHOP");
PreloadAnimLib(playerid,"JST_BUISNESS");
PreloadAnimLib(playerid,"KART");
PreloadAnimLib(playerid,"KISSING");
PreloadAnimLib(playerid,"KNIFE");
PreloadAnimLib(playerid,"LAPDAN1");
PreloadAnimLib(playerid,"LAPDAN2");
PreloadAnimLib(playerid,"LAPDAN3");
PreloadAnimLib(playerid,"LOWRIDER");
PreloadAnimLib(playerid,"MD_CHASE");
PreloadAnimLib(playerid,"MD_END");
PreloadAnimLib(playerid,"MEDIC");
PreloadAnimLib(playerid,"MISC");
PreloadAnimLib(playerid,"MTB");
PreloadAnimLib(playerid,"MUSCULAR");
PreloadAnimLib(playerid,"NEVADA");
PreloadAnimLib(playerid,"ON_LOOKERS");
PreloadAnimLib(playerid,"OTB");
PreloadAnimLib(playerid,"PARACHUTE");
PreloadAnimLib(playerid,"PARK");
PreloadAnimLib(playerid,"PAULNMAC");
PreloadAnimLib(playerid,"PED");
PreloadAnimLib(playerid,"PLAYER_DVBYS");
PreloadAnimLib(playerid,"PLAYIDLES");
PreloadAnimLib(playerid,"POLICE");
PreloadAnimLib(playerid,"POOL");
PreloadAnimLib(playerid,"POOR");
PreloadAnimLib(playerid,"PYTHON");
PreloadAnimLib(playerid,"QUAD");
PreloadAnimLib(playerid,"QUAD_DBZ");
PreloadAnimLib(playerid,"RAPPING");
PreloadAnimLib(playerid,"RIFLE");
PreloadAnimLib(playerid,"RIOT");
PreloadAnimLib(playerid,"ROB_BANK");
PreloadAnimLib(playerid,"ROCKET");
PreloadAnimLib(playerid,"RUSTLER");
PreloadAnimLib(playerid,"RYDER");
PreloadAnimLib(playerid,"SCRATCHING");
PreloadAnimLib(playerid,"SHAMAL");
PreloadAnimLib(playerid,"SHOP");
PreloadAnimLib(playerid,"SHOTGUN");
PreloadAnimLib(playerid,"SILENCED");
PreloadAnimLib(playerid,"SKATE");
PreloadAnimLib(playerid,"SMOKING");
PreloadAnimLib(playerid,"SNIPER");
PreloadAnimLib(playerid,"SPRAYCAN");
PreloadAnimLib(playerid,"STRIP");
PreloadAnimLib(playerid,"SUNBATHE");
PreloadAnimLib(playerid,"SWAT");
PreloadAnimLib(playerid,"SWEET");
PreloadAnimLib(playerid,"SWIM");
PreloadAnimLib(playerid,"SWORD");
PreloadAnimLib(playerid,"TANK");
PreloadAnimLib(playerid,"TATTOOS");
PreloadAnimLib(playerid,"TEC");
PreloadAnimLib(playerid,"TRAIN");
PreloadAnimLib(playerid,"TRUCK");
PreloadAnimLib(playerid,"UZI");
PreloadAnimLib(playerid,"VAN");
PreloadAnimLib(playerid,"VENDING");
PreloadAnimLib(playerid,"VORTEX");
PreloadAnimLib(playerid,"WAYFARER");
PreloadAnimLib(playerid,"WEAPONS");
PreloadAnimLib(playerid,"WUZI");
}
mfg
Funktioniert immer noch nicht!
if(IsPlayerNPC(playerid)){
if(!strcmp(getName(playerid), "Joe", true)){
RepairAnims(playerid);
SetPlayerSkin(playerid, 33);
SetSpawnInfo(playerid, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),SpawnPlayer(playerid);
ApplyAnimation(playerid, "SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0, 0);
}
return 1;
}
Also die Anim führt er aus (kann aber auch an der .rec datei liegen!)
mfg