←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Klasa z taskiem

  • +
  • -
nns's Photo nns 01.11.2011

Problem w ogóle nie związany z cod modem i nie wiem czemu dałem go w tym dziale ale jakos mi tak pasowało ....
Korzystając z poradników na forum i nie tylko na nim chciałem zrobić klasę, która będzie dostępna od iluś tam postów na forum. Napisałem więc takie cóś:
#pragma semicolon 0
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <sockets>

new const nazwa[] = "BETA ANG Korzon Winemaker";
new const opis[] = "Dla uzytkownikow forum majacych wiecej niz 5 postow, a dalej nie wiadomo ";
new const bronie = (1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_USP)|(1<<CSW_M4A1)|(1<<CSW_AK47)|(1<<CSW_DEAGLE);
new const zdrowie = 50;
new const kondycja = 50;
new const inteligencja = 50;
new const wytrzymalosc = 50;

new const frakcja[] = "Premium";

#define SITE "/postynaforum.php?nick="
#define HOST "krzeszowickikill.tk"
new g_Socket;
new ma_klase[33];
new ile_ma_postow[33];
public plugin_init()
{
register_plugin(nazwa, "1.0", "No-Skill");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, frakcja);
}
public client_putinserver(id){
new iError,szSendBuffer[512]
g_Socket = socket_open(HOST, 80, SOCKET_TCP, iError)
switch (iError)
{
case 1:
{
log_amx("Unable to create socket.")
return ;
}
case 2:
{
log_amx("Unable to connect to hostname.")
return ;
}
case 3:
{
log_amx("Unable to connect to the HTTP port.")
return ;
}
}
new name[33];
get_user_info(id, "name", name, 32);
format(szSendBuffer, charsmax(szSendBuffer), "GET %s%s^nHost:%s^r^n^r^n", SITE, name, HOST)
socket_send(g_Socket, szSendBuffer, charsmax(szSendBuffer))
set_task(1.5, "socketAnswer", id, "b")
}
public socketAnswer(id){
if (socket_change(g_Socket)) {
new szData[4]
socket_recv(g_Socket, szData, charsmax(szData) )
//log_amx(szData);
ile_ma_postow[id] = szData;
socket_close(g_Socket);
}
}
public client_disconnect(id)
{
ile_ma_postow[id] = 0;
}
public cod_class_enabled(id)
{
if(ile_ma_postow[id] < 5)
{
client_print(id, print_chat, "[ANG Korzon Winemaker] Masz %s postow na forum, musisz miec 5",ile_ma_postow[id]);
return COD_STOP;
}
ma_klase[id] = true;

return COD_CONTINUE;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}

a błąd mam taki:
NPP_EXEC: "AMXX Complic"
CD: C:\Program Files\Valve\cstrike\addons\amxmodx\scripting
Current directory: C:\Program Files\Valve\cstrike\addons\amxmodx\scripting
"C:\Program Files\Valve\cstrike\addons\amxmodx\scripting\amxxpc.exe" "codclass_winiarz.SMA" -; -(
Process started >>>
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

codclass_winiarz.SMA(34) : warning 217: loose indentation
codclass_winiarz.SMA(69) : error 006: must be assigned to an array

1 Error.
Could not locate output file codclass_winiarz.amx (compile failed).
<<< Process finished.
================ READY ================


Dodam iż nie znam się na PAWN'nie czy amxx czy jak się to fachowo nazywa

Z góry dzięki
Quote

  • +
  • -
Na 5tyk's Photo Na 5tyk 01.11.2011

Usuń
  ile_ma_postow[id] = szData;

I sprawdź czy będzie działało.
Quote

  • +
  • -
Goliath's Photo Goliath 02.11.2011

ile_ma_postow[id] = str_to_num(szData);

Spróbuj tak.
Quote

  • +
  • -
pixel's Photo pixel 02.11.2011




#pragma semicolon 0

#include <amxmodx>

#include <amxmisc>

#include <codmod>

#include <sockets>



new const nazwa[]   = "BETA ANG Korzon Winemaker";

new const opis[]    = "Dla uzytkownikow forum majacych wiecej niz 5 postow, a dalej nie wiadomo ";

new const bronie    = (1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_USP)|(1<<CSW_M4A1)|(1<<CSW_AK47)|(1<<CSW_DEAGLE);

new const zdrowie   = 50;

new const kondycja  = 50;

new const inteligencja = 50;

new const wytrzymalosc = 50;



new const frakcja[] = "Premium";



#define SITE                        "/postynaforum.php?nick="

#define HOST                                "krzeszowickikill.tk"

new g_Socket;

new ma_klase[33];

new ile_ma_postow[33];

public plugin_init()

{

register_plugin(nazwa, "1.0", "No-Skill");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, frakcja);

}

public client_putinserver(id){

new iError,szSendBuffer[512]

g_Socket = socket_open(HOST, 80, SOCKET_TCP, iError)

switch (iError)

{

  case 1:

  {

   log_amx("Unable to create socket.")

   return ;

  }

  case 2:

  {

   log_amx("Unable to connect to hostname.")

   return ;

  }

  case 3:

  {

   log_amx("Unable to connect to the HTTP port.")

   return ;

  }

}

new name[33];

get_user_info(id, "name", name, 32);

format(szSendBuffer, charsmax(szSendBuffer), "GET %s%s^nHost:%s^r^n^r^n", SITE, name, HOST)

socket_send(g_Socket, szSendBuffer, charsmax(szSendBuffer))

set_task(1.5, "socketAnswer", id, "b")

}

public socketAnswer(id){

if (socket_change(g_Socket)) {

  new szData[4]

  socket_recv(g_Socket, szData, charsmax(szData) )

  //log_amx(szData);

  ile_ma_postow[id] = str_to_num(szData);

  socket_close(g_Socket);

}

}

public client_disconnect(id)

{

    ile_ma_postow[id] = 0;

}

public cod_class_enabled(id)

{

if(ile_ma_postow[id] < 5)

{

  client_print(id, print_chat, "[ANG Korzon Winemaker] Masz %s postow na forum, musisz miec 5",ile_ma_postow[id]);

  return COD_STOP;

}

ma_klase[id] = true;



return COD_CONTINUE;

}

public cod_class_disabled(id)

{

         ma_klase[id] = false;

}
Quote

  • +
  • -
NiFreZ's Photo NiFreZ 02.11.2011

A jak wygląda kod php ?
Quote

  • +
  • -
nns's Photo nns 02.11.2011

#up,
a na co ci krypt php jak on zwraca samą liczbę??

#nastyk
bez tego będzie działało, tylko ,że nie będę dalej znał liczby postów, więc trochę to chyba bez sensu nie?

#reszta

sprawdzę jak wrócę do domu czyli koło 18
Quote